With lot of efforts and support from beagle board community I could able to solve many USB issues on beagle board.
Here are some of my previous posts for your refference,
Now I want to test USB webcam with beagle board. I am using ‘Logitech Pro 5000’. Beagle board is connected to HUB (self powered) to which webcam is connected.
As beagle board BSP doesn’t support USB video class(UVC), I downloaded source code from http://svn.berlios.de/viewcvs/linux-uvc/linux-uvc/ and cross compiled for OMAP. This module is getting inserted properly and detecting webcam.
To test the set up I am using ‘uvccapture’ from http://staticwave.ca/source/uvccapture/uvccapture-0.5.tar.bz2.
Above ‘uvccapture’ works fine, when I capture MJPEG video streams at all possible resolutions (VGA,QVGA etc).
But when I try to capture RAW (YUV) stream, USB is not able to capture. It was failing in ‘usb_submit_urb’ function. I suspected bandwidth issue, so I applied patch for high bandwidth isochronous endpoint support from http://gitweb.openembedded.net/?p=openembedded.git;a=tree;f=packages/linux/linux-omap;h=e56ed500ba61ea636a2dd14ada76821320fb5eb8;hb=HEAD/musb-support-high-bandwidth.patch.eml.
After that, it’s not failing in ‘usb_submit_urb’, but its not capturing frame(and aslo not returning any error). It captured one frame once, (though it took long time to capture) which had lot of garbage. I think there is loss of data.
Is there bandwidth issue? Because, VGA RAW datarate can go up to 100Mbps. If anyone has tried RAW video capture and faced similar issue or solved it, please let me know.
I'm able to receive raw frames on my Quickcam Pro 9000. I'd recommend
testing on a standard Linux PC to rule out drive/app/camera
limitations. However, you should apply all of the musb- patches in
the folder you linked before giving up. I had serious issues with
camera support until applying the "iso dma" patch. Even then it was
pretty unstable until I applied the "iso-in-unlink" patch.
Thank you Nathan. I’ll apply the patches and get back to you.
I was trying to apply those patches. Issue is I am using kernel version 2.6.22. I applied endpoint muxing patch and HB-ISO patch with some modifications. They worked. But now for ISO-in-unlink patch some of the functions (like usb_hcd_unlink_urb_from_ep)
are not present. Can these patches be applied to 2.6.22 with some changes? For some reasons, I don’t want to migrate to 2.6.26 or 2.6.27.
May be reasons are valid, but lot of activity has happened for USB on
2.6.27, may be you need to take a diff of musb directory and the
associated board file integrate the changes.
Still I am not able to capture RAW video from Logitech Pro 5000. I applied all the musb patches from
While applying ‘ISO-in-unlink patch’ function ‘usb_hcd_unlink_urb_from_ep’ was missing from 2.6.22. So I applied one more patch
found at http://email@example.com/msg56557.html. After that my kernel got built and working
fine. But even with all these patches, I am unable to capture RAW video. It takes long time to capture single frame and that is also with lot of garbage data.
I think, I am missing something which is present in 2.6.27 kernel but not present in 2.6.22.
I don’t have any Ubuntu machine with all prerequisites mentioned in OE documentation.
Can anybody provide me the source code for 2.6.27 kernel patched for beagle. I will use ‘musb’ part from 2.6.27 and retain my rest 2.6.22 kernel. And will give final try.
If anyone have faced similar issue or have any pointers regarding this please let me know.