USB Web Cam does not show up in /dev

Jetpack 3.1 is installed in my tx2 and I tried to connect a usb webcam (sony eye) but it does not show up in /dev. I was expecting it as /dev/video1 since the onboard camera is dedicated as /dev/video0, but nothing detected in /dev. But I was able to detect it using lsusb.
Any thoughts?

Probably this webcam needs a driver that is currently not available on your Jetson.
You may find it from the web and install it as a kernel module.

If you run “lsusb” you will see an ID next to each USB device. To see a verbose listing of lsusb for just this device, use a command like this (but the ID is a contrived example…adjust for your case):

lsusb -d 0955:7c18 -vvv

This will provide information as to whether the device reports itself as a USB Video Class (UVC), and thus if default drivers would work with it, or it would verify if custom drivers are needed.

Regardless of whether the device uses standard UVC or custom drivers, you may find that udev does not name the device special file the way you expect. For this you will need to watch “dmesg --follow” while the device is connected…there should be a message about any drivers or devices related to connecting the device.

Hi lee.daewon,
Probably the onboard camera is not detected. Can you remove the onboard camera and see if /dev/video0 is present?

It is known issue on r28.1
https://devtalk.nvidia.com/default/topic/1021428/jetson-tx1/-quot-no-cameras-available-quot-error-after-installing-jetpack-3-1/post/5204299/#5204299

@DaneLLL

/dev/video0 still exist after remove the onboard camera and the usb camera. How could it happen?

The onboard camera is working with the following command:

gst-launch-1.0 nvcamerasrc fpsRange="30.0 30.0" ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! nvtee ! nvvidconv flip-method=2 ! 'video/x-raw(memory:NVMM), format=(string)I420' ! nvoverlaysink -e

but it doesn’t work with I only attach the usb camera.

Then I think the usbcam probably needs a driver as @Honey_Patouceul said. We have verified with Logitech c920 and c930e and both get detected and work fine.

Yes, I’ve made a Sony Eye Toy work on Jetson; I had to build the appropriate USB UVC module for it.
It was one of the OmniVision ones if I recall correctly.
To re-build the kernel with an updated config file to build more modules (drivers,) see the threads about that topic.

@snarky

Re-built the kernel so that now it has Omnivision driver.

gunzip < /proc/config.gz | egrep ‘CONFIG_SOC_CAMERA_OV’
CONFIG_SOC_CAMERA_OV2640=y
CONFIG_SOC_CAMERA_OV5642=y
CONFIG_SOC_CAMERA_OV6650=y
CONFIG_SOC_CAMERA_OV772X=y
CONFIG_SOC_CAMERA_OV9640=y
CONFIG_SOC_CAMERA_OV9740=y

But still the sony eye is not detected in /dev…

Any suggestion would be very helpful.

Please other users can share experience.

FYI, Logitech C920 works well but Sony is not working yet.

Do you have exact information on the Sony model? Or the verbose lsusb output? This might hint at which driver is used.

Sony eye uses OV772x, and it seems like the driver has installed.

ref:
(http://image-sensors-world.blogspot.com/2010/10/omnivision-vga-sensor-inside-sony-eye.html)
(http://nuigroup.com/forums/viewthread/12445/)

gunzip < /proc/config.gz | egrep 'CONFIG_SOC_CAMERA_OV772X'

CONFIG_SOC_CAMERA_OV772X=y

And the result of ‘lsusb’ is the following:

nvidia@tegra-ubuntu:~$ lsusb
Bus 002 Device 002: ID 2109:8110 VIA Labs, Inc. Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 05d5:6781 Super Gate Technology Co., Ltd 
Bus 001 Device 005: ID 1415:2000 Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc. Sony Playstation Eye
Bus 001 Device 002: ID 2109:2811 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Thanks!

What does config say about CONFIG_USB_CONFIGFS_F_UVC and CONFIG_USB_VIDEO_CLASS ?

@snarky

gunzip < /proc/config.gz | egrep ‘CONFIG_USB_VIDEO_CLASS’
CONFIG_USB_VIDEO_CLASS=y
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
nvidia@tegra-ubuntu:/dev$ gunzip < /proc/config.gz | egrep ‘CONFIG_USB_CONFIGFS_F_UVC’
CONFIG_USB_CONFIGFS_F_UVC=y

but still not detected in /dev…

Perhaps it uses a hardware-specific driver and is not UVC. Check:

sudo lsusb -d 1415:2000 -vvv

EDIT: I forgot the “-vvv”…this and sudo are both important.

Maybe some models have sensor ov534. You may enable CONFIG_USB_GSPCA_OV534 (and maybe CONFIG_USB_GSPCA_VICAM).