I tried two old USB webcams (logitech quickam pro 4000 and PS3 camera) and both did not work. The Linux for Tegra (L4T) detect the USB device (messages in dmesg) but didn’t have the proper driver for them. I tried to use “Cheese” program to view the camera stream and the application was not able to detect either of the camera. Also, both camera works on my regular Ubuntu desktop.
Just wonder if there are certain type USB camera that will work right out of the box or if there is an easier way of installing the camera driver without having to recompile the kernel.
Kernel may detect the USB device but may not have a driver for it. Many USB cameras use the standard UVC interface. You can check if that’s included in the default kernel:
zgrep USB_VIDEO_CLASS /proc/config.gz
If not or your USB cameras need some other driver, you need to compile it.
I’m having the same issue, I have several USB 1.0/2.0 cameras (Logitech Quick Cams and ZC0305) work for laptop Ubuntu 14.04.1 but not for Jetson K1. They are detected by “lsusb” but not “/dev/video*”.
I have tegra-ubuntu 3.10.40.
I checked /proc/config.gz, both “CONFIG_USB_VIDEO_CLASS” and “CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV” were set to ‘y’.
There are several packages which might be needed for video. How are you trying to display the cams? I can use a Logitech C920 via guvcview on an unmodified default R21.4 kernel…which leads to the second question, which version of L4T are you using? Version available via “head -n 1 /etc/nv_tegra_release” (same kernel for other L4T versions but there may be other differences).
I used cheese. As I understand, if I can’t see “/dev/video*” I won’t be able to use cheese or other SW to display the video. The same cameras have been tested on laptop Ubuntu and Raspberry Pi using cheese or VLC.
I’m using the same release, and although I probably have a few extra packages installed, the kernel would be the same as yours. When I connect my C920 Logitech webcam via USB, /dev/video0 is created. You are correct that you need this /dev file.
For cheese to work for me, I had to remove ~/.cache/gstreamer-1.0. It seems sometimes cache will get in the way, you might try removing that if it exists. So far as /dev/video0 missing, once the USB hotplug layer sees the device, then the module and udev should get together and dynamically create the video device. You said that lsusb shows the devices, so the hotplug layer should have passed on the info for the rest of the system to create the video device. My C920 does this without any work on my part (the default kernel works), but may use a different driver than what you use. Do you have URLs to the exact models (this could help looking up information)?