Upgrading unix kernel to eliminate camera lag issues


#1

As of the 2.6 version of the ROV, we have had lag issues in the camera. The 2.5 software eliminated most of the issues related to using computers that did not have enough processing power to drive video in the browser. We have however been left with a hardware based issue that exhibits itself as video freeze in high contrast lighting situations.

My current theory is that this is a result of several bugs and lack of DMA on the USB port of the beaglebone in the 3.8 version of the kernel we are using. Dom managed to build a new image with a more recent kernel and the problem went away.

My plan is to move the kernel used in the next release of the image. If you want to test the fix right now, it is rather painless to make the change.

Assuming you connect your ROV to a router or use another technique to get direct internet access from the ROV.

SSH in to the ROV:

1) wget https://rcn-ee.net/deb/wheezy-armhf/v3.15.5-bone4/install-me.sh

2) chmod +x install-me.sh

3) sudo ./install-me.sh

4) sudo reboot

This installs version 3.15 of the kernel and appears to work well.

### UPDATE July-22-2014 ####

There is an issue that seems to require an additional configuration tweak with the new kernel. In some cases the O/S comes back up with the drive in read-only mode. This sometimes requires you to reboot several times before the system comes up correctly. Codewithpassion has been busy and applied the following configuration change to try and take care of that issue. I recommend doing the same and letting us know if you still see any problems related to having to do multiple reboots to get the ROV to come up again:

SSH in to the ROV:

5) sudo tune2fs -o journal_data_writeback /dev/mmcblk0p2

-Brian


#2

Great news, I just upgraded the kernel with no issues. If I run into any issues I will post them here.


#3

For those following the thread, I have in my testing dropped back to the

install-me.sh which is v3.14.15-bone6 to try and get around the boot up issues I was seeing on 3.15.5-bone4.

#4

I upgraded the kernel.. It worked fine for a while. But now the system boots in read only all the time.

I cant downgrade, because of that,too.

Do i have to restart it again and again until it boots in read & write?

Tobias


#5

Got it ;-)

I just reinstalled the image --> had the camera lagging again..

I am upgardeing to v3.14.15-bone6


#6

Hey Tobias, I see you simply re-imaged, but for anyone else, yes you would need to reboot until it was in normal mode again to change the kernel around again. Were you using v3.15.5-bone4 when it was going in to readonly mode all of the time?


#7

exactly, it was v3.15.5-bone4

As i wrote, i re-imaged the sd. Now i have this lagging camera again.

Is there any other solution?


#8

Hi Brian,

just to keep things related to the kernel update within this thread, I want to repeat here what I found for myself about it (which I posted it here).

The video performance is much, much better after cunducting the kernel update! The fact that activating DMA for USB does improve this, confirms what I found a longer time ago (see here) but I never managed to solve (I'm not familiar with kernel compilation). So I'm very happy about this improvement!

The only downside is that for the 'old' BB white, the serial communication with the cape does not work any more (BBW and BBB do have differnent ways of serial port implenetation, I assume that in the new kernel the old way is not implemented any more).

Can you put me in the right direction how I can solve this? Or may Dominik find a quick solution? This would help a lot!

Thanks,

-Stefan


#9

Interesting, this sounds like the problem I have been having with my video. It freezes frequently, but not if I turn the lights down in the room. However I think i have a much newer version of the software than in this older thread:

Rover version 2.5
Software version 30.0.2 , though hovering over “Cockpit” onscreen shows 30.0.0~163.0dec0ba.

Is the kernel updated with that software version, or do I need to do it separately?

Andy


#10

Hey Andrew, that version of the code is using the up to date kernel. There are several reports of camera lag via hi contrast scenes that are still surfacing, but not in anyway as bad as it used to be with the prior kernel.

If you get a chance, you can help in tracking down the issue by running this command on your beaglebone from the ssh command line:

dmesg | grep fifo

If will return setup fifo_mode, with either a 4 or 5.

and then:

hexdump -e '8/1 "%c"' "/sys/bus/i2c/devices/0-0050/eeprom" -s 13 -n 3 2>&1

which should dump the model revision number of your beaglebone.


#11

Ok, the answers are
Fifo_mode 4
00b

The second one required sudo to make it work. Does that help?