The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.
Problems? See this thread at archive.org.

    Webcam driver for Ubuntu 7.10?

    Discussion in 'Linux Compatibility and Software' started by Ederico, Jan 6, 2008.

  1. Ederico

    Ederico Newbie

    Reputations:
    0
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    5
    Hello,

    I have a little problem. I have a Clevo M551N laptop, I've been running Linux for more than a year now as a regular user. My laptop works perfectly well under Ubuntu (currently running 7.10), except for my webcam. Strangely enough, I've installed its driver under Vista and still doesn't work. It used to work under XP. The Vista driver yet did not work.

    However, I'd be more interested to get it to work under Linux. First of all, how do I determine what driver do I need and secondly where do I get it? I don't even know what is the webcam model (it is embedded with the laptop).

    I hope someone can help.

    Best Regards,
    Ederico.
     
  2. Ederico

    Ederico Newbie

    Reputations:
    0
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    5
    Thanks a lot, I managed. :)
     
  3. zeddock

    zeddock Newbie

    Reputations:
    0
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    5
    Please tell us how?

    zeddock @ gmail.com
     
  4. jas

    jas Notebook Evangelist

    Reputations:
    697
    Messages:
    622
    Likes Received:
    5
    Trophy Points:
    31
    I'm not sure if you got your webcam working under Linux. Congrats if you did. In the hopes of helping others, I thought I would respond to your post and outline how I've managed to get various webcams working under Linux. First off, you need to find out what webcam it is, and then see if there is a linux driver available for it. Then you need to properly install the driver, and test it somehow. Since most webcams, (and almost all built in webcams), are USB devices, you can figure out your webcam Vendor and Product ID, by using the linux USB utility, lsusb. If you don't have it installed by default with your Linux distribution, then you should find out what package you'll need to install, to install this utility. For example, on my Gentoo installation, you install this utility by installing the usbutils package. Running the command as the super, or root, user, will give you information about all USB devices connected to your computer;
    Code:
    lsusb
    Bus 007 Device 001: ID 0000:0000 
    Bus 006 Device 002: ID 047d:1020 Kensington
    Bus 006 Device 001: ID 0000:0000 
    Bus 005 Device 002: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0
    Bus 005 Device 001: ID 0000:0000 
    Bus 004 Device 002: ID 0b05:1712 ASUSTek Computer, Inc.
    Bus 004 Device 001: ID 0000:0000 
    Bus 003 Device 002: ID 08ff:1600 AuthenTec, Inc.
    Bus 003 Device 001: ID 0000:0000 
    Bus 002 Device 001: ID 0000:0000 
    Bus 002 Device 005: ID 0424:2507 Standard Microsystems Corp.
    Bus 001 Device 003: ID 174f:6a31 
    Bus 001 Device 001: ID 0000:0000
    Looking at this list you can see several devices that are identified by where they are, which USB Bus and Device ID, and more importantly you can see what their Vendor and Product ID is in hexadecimal format. Figuring out which device is your webcam can take a little bit of detective work. Sometimes there is a manufacturer noted for a particular USB device, and that can help you figure out the device. You can easily see from this list that there is a Microsoft Keyboard connected to this computer, and I'll tell you that the Kensington device is a Kensington mouse. I know that the AuthenTec device is the fingerprint scanner, and the ASUStek device is the bluetooth HW. At this point you could use the lsusb tool to ask for more detail on all USB devices, or on a specific device. If you do a lsusb -v, it will report back [v]erbose details on all your USB devices. That's a lot of information to scroll through, so to choose a specific device you need to use the lsusb -v and -d parameter. Since I know that the built-in webcam is the last device, here's the verbose output of that USB device;
    Code:
    lsusb -v -d 174f:6a31
    
    Bus 001 Device 003: ID 174f:6a31 
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               2.00
      bDeviceClass            0 (Defined at Interface level)
      bDeviceSubClass         0
      bDeviceProtocol         0
      bMaxPacketSize0        64
      idVendor           0x174f
      idProduct          0x6a31
      bcdDevice            0.05
      iManufacturer           1 Syntek
      iProduct                2 USB2.0
      iSerial                10
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength          147
        bNumInterfaces          1
        bConfigurationValue     1
        iConfiguration          0
        bmAttributes         0x80
          (Bus Powered)
        MaxPower              500mA
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0000  1x 0 bytes
            bInterval               5
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0000  1x 0 bytes
            bInterval               1
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       1
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0002  1x 2 bytes
            bInterval               5
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0300  1x 768 bytes
            bInterval               1
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       2
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0002  1x 2 bytes
            bInterval               5
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x03fc  1x 1020 bytes
            bInterval               1
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       3
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0002  1x 2 bytes
            bInterval               5
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0400  1x 1024 bytes
            bInterval               1
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       4
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0002  1x 2 bytes
            bInterval               5
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0c00  2x 1024 bytes
            bInterval               1
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       5
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0002  1x 2 bytes
            bInterval               5
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x1400  3x 1024 bytes
            bInterval               1
    Device Qualifier (for other device speed):
      bLength                10
      bDescriptorType         6
      bcdUSB               2.00
      bDeviceClass            0 (Defined at Interface level)
      bDeviceSubClass         0
      bDeviceProtocol         0
      bMaxPacketSize0        64
      bNumConfigurations      1
    Device Status:     0x0000
      (Bus Powered)
    There is a way to cheat on discovering the Vendor and Product ID for your webcam, if you have Windows and a proper Windows driver installed for your webcam. Just select the webcam device under the Device Manager, and look at the details for the device. The vendor and product ID numbers are at the beginning of that string of numbers.

    So now that you've found out what kind of webcam you have, on this output you see that this is a Syntek webcam, you can google around the net and see if there is a Linux driver available, and lucky for us, the driver project's homepage is the very first link. Now you have a good idea of what driver you need, the first thing you should do is check with your Linux distribution's package manager, and see if you can install the driver by just selecting it, as you do your video or WiFi hardware. If you're not sure, you should ask in your Linux distribution's user forums for help. If the driver is not available with your distribution's package manager, then following the instructions from the driver project's website is usually enough to get the driver installed and working. Additionally they usually have suggestions on the driver project's website, as to how you can test the driver and webcam under Linux.

    If your lsusb output isn't as clear as this example, in other words, you're still not sure of the manufacturer even after getting verbose details on the USB device, you can always google your Vendor and Product ID along with the words, "linux" and "driver", and see if that helps. Using my webcam as an example you can see the first few hits indicate that folks are using the Syntek driver for this webcam.

    The two other linux drivers that I've used with other webcams are hosted at the following websites. There's lots of good reading there, as well as other kinds of suggestions.

    Linux kernel webcams Driver GSPCA / SPCA5xx
    and the webcams compatible with this driver
    Linux UVC driver and tools
    and the webcams compatible with this driver

    Good Luck..