# Webcams - the BANE of my life!

## lyallp

Can someone suggest a WebCam that just works with Gentoo linux (after I enable the appropriate kernel drivers)?

I just bought some cheapo webcams, this one identifies itself as an ARKMICRO USB Vendor: 18ec, Product: 3299 - which seem to work Ok in windoze.

According to Linux UVC drivers and tools, the camera is supported.

When I did 

```
echo 0 > /sys/module/uvcvideo/parameters/quirks 
```

, I found that the webcam works, albeit crappily and ONLY if plugged into a MoBo USB Port, not my normal USB Hub. Also, the framerate seems a bit sluggish - read that as about 6 frames per second.

I also note the complaint in /var/log/messages that the device is not running at full speed, when it's plugged into a full speed hub. Even plugged into a MoBo port, the same running speed message is generated.

Finally, I am unsure as to how to control the brightness/exposure, using mplayer.

message log, on plugin is...

```
Dec 16 19:32:56 lyalls-pc kernel: usb 2-1.3.4.3: new full speed USB device using ehci_hcd and address 12

Dec 16 19:32:57 lyalls-pc kernel: usb 2-1.3.4.3: not running at top speed; connect to a high speed hub

Dec 16 19:32:57 lyalls-pc kernel: usb 2-1.3.4.3: New USB device found, idVendor=18ec, idProduct=3299

Dec 16 19:32:57 lyalls-pc kernel: usb 2-1.3.4.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0

Dec 16 19:32:57 lyalls-pc kernel: usb 2-1.3.4.3: Product: USB2.0 PC CAMERA

Dec 16 19:32:57 lyalls-pc kernel: usb 2-1.3.4.3: Manufacturer: ARKMICRO

Dec 16 19:32:57 lyalls-pc kernel: uvcvideo: Found UVC 1.00 device USB2.0 PC CAMERA (18ec:3299)

Dec 16 19:32:57 lyalls-pc kernel: uvcvideo: Forcing device quirks to 0x2 by module parameter for testing purpose.

Dec 16 19:32:57 lyalls-pc kernel: uvcvideo: Please report required quirks to the linux-uvc-devel mailing list.

Dec 16 19:32:57 lyalls-pc kernel: uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.

Dec 16 19:32:57 lyalls-pc kernel: input: USB2.0 PC CAMERA as /devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.3/2-1.3.4/2-1.3.4.3/2-1.3.4.3:1.0/input/input9

```

lsusb is

```
# lsusb

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 012: ID 18ec:3299  

Bus 002 Device 009: ID 413c:2006 Dell Computer Corp. 

Bus 002 Device 007: ID 045e:0724 Microsoft Corp. 

Bus 002 Device 006: ID 0409:005a NEC Corp. HighSpeed Hub

Bus 002 Device 003: ID 050d:3201 Belkin Components F1DF102U/F1DG102U Flip KVM

Bus 002 Device 004: ID 0409:005a NEC Corp. HighSpeed Hub

Bus 002 Device 002: ID 0424:2524 Standard Microsystems Corp. USB MultiSwitch Hub

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 008: ID 413c:1004 Dell Computer Corp. 

```

v4l-info is

```

# v4l-info 

### v4l2 device info [/dev/video0] ###

general info

    VIDIOC_QUERYCAP

        driver                  : "uvcvideo"

        card                    : "USB2.0 PC CAMERA"

        bus_info                : "usb-0000:00:1d.7-1.3.4.3"

        version                 : 0.1.0

        capabilities            : 0x4000001 [VIDEO_CAPTURE,STREAMING]

standards

inputs

    VIDIOC_ENUMINPUT(0)

        index                   : 0

        name                    : "Camera 1"

        type                    : CAMERA

        audioset                : 0

        tuner                   : 0

        std                     : 0x0 []

        status                  : 0x0 []

video capture

    VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)

        index                   : 0

        type                    : VIDEO_CAPTURE

        flags                   : 1

        description             : "MJPEG"

        pixelformat             : 0x47504a4d [MJPG]

    VIDIOC_G_FMT(VIDEO_CAPTURE)

        type                    : VIDEO_CAPTURE

        fmt.pix.width           : 640

        fmt.pix.height          : 480

        fmt.pix.pixelformat     : 0x47504a4d [MJPG]

        fmt.pix.field           : NONE

        fmt.pix.bytesperline    : 0

        fmt.pix.sizeimage       : 614400

        fmt.pix.colorspace      : unknown

        fmt.pix.priv            : 0

controls

    VIDIOC_QUERYCTRL(BASE+0)

        id                      : 9963776

        type                    : INTEGER

        name                    : "Brightness"

        minimum                 : 0

        maximum                 : 255

        step                    : 1

        default_value           : 110

        flags                   : 0

    VIDIOC_QUERYCTRL(BASE+1)

        id                      : 9963777

        type                    : INTEGER

        name                    : "Contrast"

        minimum                 : 0

        maximum                 : 255

        step                    : 1

        default_value           : 110

        flags                   : 0

    VIDIOC_QUERYCTRL(BASE+2)

        id                      : 9963778

        type                    : INTEGER

        name                    : "Saturation"

        minimum                 : 0

        maximum                 : 255

        step                    : 1

        default_value           : 50

        flags                   : 0

    VIDIOC_QUERYCTRL(BASE+3)

        id                      : 9963779

        type                    : INTEGER

        name                    : "Hue"

        minimum                 : -128

        maximum                 : 127

        step                    : 1

        default_value           : 0

        flags                   : 0

### video4linux device info [/dev/video0] ###

general info

    VIDIOCGCAP

        name                    : "USB2.0 PC CAMERA"

        type                    : 0x1 [CAPTURE]

        channels                : 1

        audios                  : 0

        maxwidth                : 640

        maxheight               : 480

        minwidth                : 48

        minheight               : 32

channels

    VIDIOCGCHAN(0)

        channel                 : 0

        name                    : "Camera 1"

        tuners                  : 0

        flags                   : 0x0 []

        type                    : CAMERA

        norm                    : 0

tuner

ioctl VIDIOCGTUNER: Invalid argument

audio

ioctl VIDIOCGAUDIO: Invalid argument

picture

    VIDIOCGPICT

        brightness              : 28270

        hue                     : 32896

        colour                  : 12850

        contrast                : 28270

        whiteness               : 26214

        depth                   : 0

        palette                 : unknown

buffer

ioctl VIDIOCGFBUF: Invalid argument

window

    VIDIOCGWIN

        x                       : 0

        y                       : 0

        width                   : 640

        height                  : 480

        chromakey               : 0

        flags                   : 0

```

----------

## DONAHUE

ID 046d:09a2 Logitech, Inc. QuickCam Communicate Deluxe/S7500

old and now cheap, works beautifully here but is not on a hub

kernel:

 *Quote:*   

> <M>   USB Video Class (UVC)
> 
> [*]     UVC input events device support

 

----------

## lyallp

Quite some time ago I found my webcam would not work on a hub.

I concluded the USB drivers in the kernel (not the webcam ones) need a little work.

Unfortunately, that was and still is out of my skill set.

Maybe I should have another look.

----------

