Can't get any UVC camera to work with BeagleBone

Once upon a time, before I upgraded a zillion Angstrom packages re
video libs, my UVC-able webcam (Gearhead) worked OK at 320x200 with
the Motion software. Post the upgrades, I can' get this camera or a
Logitech webcam, both of which work with my x86 Ubuntu system, to work
at all with any video app software on the Beaglebone.

Tried Motion, also Mjpeg_streamer. Each just hangs and eventually
times out without retrieving any image from the camera.

mjpeg_streamer generates the following in dmesg:

[315724.391608] uvcvideo: Found UVC 1.00 device <unnamed> (046d:0819)
[315724.492940] input: UVC Camera (046d:0819) as /devices/platform/
[316166.789571] uvcvideo: Failed to resubmit video URB (-1).
[316168.790155] uvcvideo: Failed to resubmit video URB (-1).
[316200.013265] musb_host_rx 1601: RX14 dma busy, csr 2020
[316204.511377] uvcvideo: Failed to resubmit video URB (-1).
[316295.902053] usb_process_rx_queue 1466: Invalid PD popped from Rx
completion queue
[316327.166354] gadget: high speed config #1: Linux File-Backed
[316500.031569] uvcvideo: Deprecated UVCIOC_CTRL_{ADD,MAP_OLD,GET,SET}
ioctls will be removed in 2.6.42.
[316500.031596] uvcvideo: See
for upgrade instructions.

Version of Motion, built from recent SVN snapshot hangs like this:

[1] [NTC] [VID] vid_v4lx_start: Using videodevice /dev/video0 and
input -1
[1] [NTC] [VID] v4l2_get_capability:

I have a UVC webcam (Logitect C270) which appears to be working well – reports as /dev/video0 in dmesg and in the /dev directory

→ FLUFFY – upgrading to latest kernel (e.g. on 2/14/2012 Angstrom build) looks to be advice on the boards on the easiest way to get UVC working. Experts, is that right?

My question – Now I have my UVC webcam, working …
Are there pre-built (opkg packages) of mjpeg-streamer or motion for BeagleBone?

I’ve looked at gstreamer but I’m baffled by the configuration

Simple streaming of video from UVC webcam on the BeagleBone to a browser would be great which is what mjpeg-streamer looks to do

Any suggestions?

I haven’t yet done any compilation of source on the 'Bone so I can see mjpeg-streamer on Github but I’m confused how to proceed

→ Documentation request – a walk-through of how to download source from Github and configure and run compile/make on the 'Bone under Angstrom would be VERY HELPFUL for those of us learning and moving up from Arduino, etc


I have had on/off experiences with the Beaglebone kernels regarding UVC streaming especially with memory mapped YUYV captures. Someone mentioned that it was an issue with DMA being disabled by default. I never got to the root cause, but I have an intermediate kernel that works for me. If you would like this please mail me off list and I can send it (without warranty :wink: ).

In the meantime I am hoping that the Beaglebone gurus will get this fixed once the kernel matures.



I believe the newer kernels have USB isochronous DMA disabled by default.