Webcam on Angström

5,635

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.

Share:
5,635

Related videos on Youtube

mustafa
Author by

mustafa

Updated on September 18, 2022

Comments

  • mustafa
    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 and kernel-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
    

    lsmodoutput 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
      Admin over 12 years
      Did you try checking lsmod output after an modprobe uvcvideo?
    • Admin
      Admin over 12 years
      @dkaragasidis I get FATAL: Module uvcvideo not found.
    • Admin
      Admin over 12 years
      @dkaragasidis yes, it's in the folder /lib/modules/2.6.32/kernel/drivers/media/video/ and there is a line vermagic: 2.6.32 preempt mod_unload modversions ARMv7
    • Admin
      Admin over 12 years
      Great. Can you try and load the module using insmod followed by the absolute path of uvcvideo.ko? Do you get any error messages?
    • Admin
      Admin over 12 years
      thanks, it worked! Where should I add this command to be initialized every time at boot?