Webcam on Angström
Devices attached to buses such as PCI, PCMCIA and USB have an identifier that uniquely encode the manufacturer and model. Modules that contain drivers for devices attached to these buses contain information about the devices they support, in the form of a list of PCI identifiers, USB identifiers, PCMCIA identifiers, etc. When the kernel detects a device on one of these buses, it tries to load a driver for this particular identifier. More precisely, the kernel tries to load a module called (say) usb:somelongstring
where the long string encodes the device's USB identifier. When you compile or install a kernel, the depmod
program reads all the module file (.ko
) that you have and generates a modules.alias
file in /lib/module/$VERSION/
containing lines like
alias usb:somelongstring uvcvideo
It looks like on your system, you have a driver that supports your device but the modules.alias
file does not declare the right alias. First, run depmod -a
to make sure that this file is up to date.
If, after than, the module is not automatically loaded but does work when it is loaded manually, then what's going on is that you have a slightly more recent model that has an unknown identifier but works with the same driver because it is sufficiently compatible with known models. In that case, report your success to the upstream developer so that the identifier is added to the next version of the driver. In the meantime, add the alias manually. You'll find the long string in /sys/bus/usb/devices/2-2.4.3/modalias
. Create a file called /etc/modprobe.d/local-aliases.conf
and add the lines
# Microsoft LifeCam Cinema
alias usb:somelongstring uvcvideo
There is a good write-up of modalias in the Arch wiki.
Related videos on Youtube
mustafa
Updated on September 18, 2022Comments
-
mustafa over 1 year
I am running Angström on my BeagleBoard-xm. I want to use a webcam (I have Microsoft LifeCam Cinema and Logitech C310). I installed
v4l-utils
,libv4l-dev
andkernel-module-uvcvideo
with opkg. But the webcams don't appear in the/dev
folder.cheese
can't find them too.Here is the output of
dmesg
:[ 8925.347137] usb 2-2.4.3: new high speed USB device using ehci-omap and address 8 [ 8925.489044] usb 2-2.4.3: New USB device found, idVendor=045e, idProduct=075d [ 8925.496490] usb 2-2.4.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 8925.504333] usb 2-2.4.3: Product: Microsoft�� LifeCam Cinema(TM) [ 8925.510528] usb 2-2.4.3: Manufacturer: Microsoft [ 8926.635742] 8:3:1: cannot get freq at ep 0x82
and here is the output of
lsusb
:# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 002 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 002 Device 004: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB Bus 002 Device 005: ID 04d9:1603 Holtek Semiconductor, Inc. Bus 002 Device 006: ID 045e:0040 Microsoft Corp. Wheel Mouse Optical Bus 002 Device 008: ID 045e:075d Microsoft Corp.
uvcvideo kernel module seems to be in the right folder:
# locate uvcvideo.ko /lib/modules/2.6.32/kernel/drivers/media/video/uvc/uvcvideo.ko # uname -a Linux beagleboard 2.6.32 #3 PREEMPT Tue Jul 26 10:56:56 CEST 2011 armv7l unknown
lsmod
output is:# lsmod Module Size Used by ipv6 249063 10
But I don't see uvcvideo module in the
lsmod
output. Should I do something else to load the module? Or should I install a specific driver?-
Admin over 12 yearsDid you try checking
lsmod
output after anmodprobe uvcvideo
? -
Admin over 12 years@dkaragasidis I get
FATAL: Module uvcvideo not found.
-
Admin over 12 years@dkaragasidis yes, it's in the folder
/lib/modules/2.6.32/kernel/drivers/media/video/
and there is a linevermagic: 2.6.32 preempt mod_unload modversions ARMv7
-
Admin over 12 yearsGreat. Can you try and load the module using
insmod
followed by the absolute path of uvcvideo.ko? Do you get any error messages? -
Admin over 12 yearsthanks, it worked! Where should I add this command to be initialized every time at boot?
-