* 2.6.28 changes in-kernel name for UVC device ?
@ 2009-01-20 11:49 Ionut Leonte
2009-01-20 13:07 ` Kay Sievers
0 siblings, 1 reply; 6+ messages in thread
From: Ionut Leonte @ 2009-01-20 11:49 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 558 bytes --]
I have a Dell laptop with an integrated webcam which works with the 'uvcvideo'
module. For kernel versions 2.6.27 and below the following udev rule:
KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="%k", GROUP="video"
would create '/dev/video0' as a link to '/dev/v4l/video0'. When switching to
2.6.28 the rule creates '/dev/video1394-0' instead. Obviously most user-space
apps were quite surprised by this (as was I).
Is this change intended or is it the accidental result of some modification ?
(attached 'lsusb' information for the device)
[-- Attachment #2: lsusb_webcam --]
[-- Type: text/plain, Size: 19546 bytes --]
Bus 002 Device 003: ID 05a9:2640 OmniVision Technologies, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x05a9 OmniVision Technologies, Inc.
idProduct 0x2640
bcdDevice 1.00
iManufacturer 1 OmniVision Technologies, Inc. -2640-07.07.20.3
iProduct 2 Laptop Integrated Webcam
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 705
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 14 Video
bFunctionSubClass 3 Video Interface Collection
bFunctionProtocol 0
iFunction 2 Laptop Integrated Webcam
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 14 Video
bInterfaceSubClass 1 Video Control
bInterfaceProtocol 0
iInterface 2 Laptop Integrated Webcam
VideoControl Interface Descriptor:
bLength 13
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdUVC 1.00
wTotalLength 109
dwClockFrequency 30.000000MHz
bInCollection 1
baInterfaceNr( 0) 1
VideoControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Camera Sensor
bAssocTerminal 0
iTerminal 0
wObjectiveFocalLengthMin 0
wObjectiveFocalLengthMax 0
wOcularFocalLength 0
bControlSize 2
bmControls 0x00000a00
Zoom (Absolute)
PanTilt (Absolute)
VideoControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 5
iTerminal 0
VideoControl Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 4 (SELECTOR_UNIT)
bUnitID 4
bNrInPins 1
baSource( 0) 1
iSelector 0
VideoControl Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 5 (PROCESSING_UNIT)
Warning: Descriptor too short
bUnitID 5
bSourceID 4
wMaxMultiplier 0
bControlSize 2
bmControls 0x0000557f
Brightness
Contrast
Hue
Saturation
Sharpness
Gamma
White Balance Temperature
Backlight Compensation
Power Line Frequency
White Balance Temperature, Auto
Digital Multiplier
iProcessing 0
bmVideoStandards 0x1a
NTSC - 525/60
SECAM - 625/50
NTSC - 625/50
VideoControl Interface Descriptor:
bLength 26
bDescriptorType 36
bDescriptorSubtype 6 (EXTENSION_UNIT)
bUnitID 7
guidExtensionCode {8a0f88dd-ba1c-5449-8a25-f7875967f0f7}
bNumControl 1
bNrPins 1
baSourceID( 0) 1
bControlSize 1
bmControls( 0) 0x01
iExtension 0
VideoControl Interface Descriptor:
bLength 26
bDescriptorType 36
bDescriptorSubtype 6 (EXTENSION_UNIT)
bUnitID 6
guidExtensionCode {08f74a8e-ab51-2546-a2a2-31aab38e59da}
bNumControl 1
bNrPins 1
baSourceID( 0) 5
bControlSize 1
bmControls( 0) 0x01
iExtension 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 16
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 14 Video
bInterfaceSubClass 2 Video Streaming
bInterfaceProtocol 0
iInterface 0
VideoStreaming Interface Descriptor:
bLength 15
bDescriptorType 36
bDescriptorSubtype 1 (INPUT_HEADER)
bNumFormats 2
wTotalLength 485
bEndPointAddress 129
bmInfo 0
bTerminalLink 3
bStillCaptureMethod 0
bTriggerSupport 0
bTriggerUsage 0
bControlSize 1
bmaControls( 0) 11
bmaControls( 1) 11
VideoStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 6 (FORMAT_MJPEG)
bFormatIndex 1
bNumFrameDescriptors 9
bFlags 1
Fixed-size samples: Yes
bDefaultFrameIndex 1
bAspectRatioX 0
bAspectRatioY 0
bmInterlaceFlags 0x00
Interlaced stream or variable: No
Fields per frame: 1 fields
Field 1 first: No
Field pattern: Field 1 only
bCopyProtect 0
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 1
bmCapabilities 0x00
Still image unsupported
wWidth 640
wHeight 480
dwMinBitRate 147456000
dwMaxBitRate 147456000
dwMaxVideoFrameBufferSize 614400
dwDefaultFrameInterval 333333
bFrameIntervalType 1
dwFrameInterval( 0) 333333
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 2
bmCapabilities 0x00
Still image unsupported
wWidth 160
wHeight 120
dwMinBitRate 9216000
dwMaxBitRate 9216000
dwMaxVideoFrameBufferSize 38400
dwDefaultFrameInterval 333333
bFrameIntervalType 1
dwFrameInterval( 0) 333333
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 3
bmCapabilities 0x00
Still image unsupported
wWidth 176
wHeight 144
dwMinBitRate 12165120
dwMaxBitRate 12165120
dwMaxVideoFrameBufferSize 50688
dwDefaultFrameInterval 333333
bFrameIntervalType 1
dwFrameInterval( 0) 333333
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 4
bmCapabilities 0x00
Still image unsupported
wWidth 320
wHeight 240
dwMinBitRate 36864000
dwMaxBitRate 36864000
dwMaxVideoFrameBufferSize 153600
dwDefaultFrameInterval 333333
bFrameIntervalType 1
dwFrameInterval( 0) 333333
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 5
bmCapabilities 0x00
Still image unsupported
wWidth 352
wHeight 288
dwMinBitRate 48660480
dwMaxBitRate 48660480
dwMaxVideoFrameBufferSize 202752
dwDefaultFrameInterval 333333
bFrameIntervalType 1
dwFrameInterval( 0) 333333
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 6
bmCapabilities 0x00
Still image unsupported
wWidth 800
wHeight 600
dwMinBitRate 230400000
dwMaxBitRate 230400000
dwMaxVideoFrameBufferSize 960000
dwDefaultFrameInterval 333333
bFrameIntervalType 1
dwFrameInterval( 0) 333333
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 7
bmCapabilities 0x00
Still image unsupported
wWidth 1024
wHeight 768
dwMinBitRate 94371840
dwMaxBitRate 94371840
dwMaxVideoFrameBufferSize 1572864
dwDefaultFrameInterval 1000000
bFrameIntervalType 1
dwFrameInterval( 0) 1000000
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 8
bmCapabilities 0x00
Still image unsupported
wWidth 1280
wHeight 1024
dwMinBitRate 157286400
dwMaxBitRate 157286400
dwMaxVideoFrameBufferSize 2621440
dwDefaultFrameInterval 1000000
bFrameIntervalType 1
dwFrameInterval( 0) 1000000
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 7 (FRAME_MJPEG)
bFrameIndex 9
bmCapabilities 0x00
Still image unsupported
wWidth 1600
wHeight 1200
dwMinBitRate 230400000
dwMaxBitRate 230400000
dwMaxVideoFrameBufferSize 3840000
dwDefaultFrameInterval 1000000
bFrameIntervalType 1
dwFrameInterval( 0) 1000000
VideoStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 13 (COLORFORMAT)
bColorPrimaries 1 (BT.709,sRGB)
bTransferCharacteristics 1 (BT.709)
bMatrixCoefficients 4 (SMPTE 170M (BT.601))
VideoStreaming Interface Descriptor:
bLength 27
bDescriptorType 36
bDescriptorSubtype 4 (FORMAT_UNCOMPRESSED)
bFormatIndex 2
bNumFrameDescriptors 5
guidFormat {59555932-0000-1000-8000-00aa00389b71}
bBitsPerPixel 16
bDefaultFrameIndex 1
bAspectRatioX 0
bAspectRatioY 0
bmInterlaceFlags 0x00
Interlaced stream or variable: No
Fields per frame: 1 fields
Field 1 first: No
Field pattern: Field 1 only
bCopyProtect 0
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 1
bmCapabilities 0x00
Still image unsupported
wWidth 640
wHeight 480
dwMinBitRate 147456000
dwMaxBitRate 147456000
dwMaxVideoFrameBufferSize 614400
dwDefaultFrameInterval 1000000
bFrameIntervalType 1
dwFrameInterval( 0) 1000000
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 2
bmCapabilities 0x00
Still image unsupported
wWidth 160
wHeight 120
dwMinBitRate 9216000
dwMaxBitRate 9216000
dwMaxVideoFrameBufferSize 38400
dwDefaultFrameInterval 333333
bFrameIntervalType 1
dwFrameInterval( 0) 333333
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 3
bmCapabilities 0x00
Still image unsupported
wWidth 176
wHeight 144
dwMinBitRate 12165120
dwMaxBitRate 12165120
dwMaxVideoFrameBufferSize 50688
dwDefaultFrameInterval 333333
bFrameIntervalType 1
dwFrameInterval( 0) 333333
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 4
bmCapabilities 0x00
Still image unsupported
wWidth 320
wHeight 240
dwMinBitRate 36864000
dwMaxBitRate 36864000
dwMaxVideoFrameBufferSize 153600
dwDefaultFrameInterval 333333
bFrameIntervalType 1
dwFrameInterval( 0) 333333
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 5
bmCapabilities 0x00
Still image unsupported
wWidth 352
wHeight 288
dwMinBitRate 48660480
dwMaxBitRate 48660480
dwMaxVideoFrameBufferSize 202752
dwDefaultFrameInterval 333333
bFrameIntervalType 1
dwFrameInterval( 0) 333333
VideoStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 13 (COLORFORMAT)
bColorPrimaries 1 (BT.709,sRGB)
bTransferCharacteristics 1 (BT.709)
bMatrixCoefficients 4 (SMPTE 170M (BT.601))
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 14 Video
bInterfaceSubClass 2 Video Streaming
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x03fc 1x 1020 bytes
bInterval 1
** UNRECOGNIZED: 30 ff 42 49 53 54 00 01 08 01 10 00 00 00 00 00 d1 03 f4 01 d2 04 f4 01 d3 05 f4 01 d4 06 f4 01 d5 07 f4 01 d6 08 f4 01 d7 09 f4 01 d8 0a f4 01
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 8
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: 2.6.28 changes in-kernel name for UVC device ?
2009-01-20 11:49 2.6.28 changes in-kernel name for UVC device ? Ionut Leonte
@ 2009-01-20 13:07 ` Kay Sievers
2009-01-20 13:19 ` Ionut Leonte
2009-01-20 17:13 ` Stefan Richter
0 siblings, 2 replies; 6+ messages in thread
From: Kay Sievers @ 2009-01-20 13:07 UTC (permalink / raw)
To: Ionut Leonte; +Cc: linux-kernel
On Tue, Jan 20, 2009 at 12:49, Ionut Leonte <ionut.leonte@gmail.com> wrote:
> I have a Dell laptop with an integrated webcam which works with the 'uvcvideo'
> module. For kernel versions 2.6.27 and below the following udev rule:
>
> KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="%k", GROUP="video"
>
> would create '/dev/video0' as a link to '/dev/v4l/video0'. When switching to
> 2.6.28 the rule creates '/dev/video1394-0' instead. Obviously most user-space
> apps were quite surprised by this (as was I).
>
> Is this change intended or is it the accidental result of some modification ?
These rules are broken, and match also on firewire devices and not
only video4linux devices.
Such rules are not part of the standard udev setup and need to be
fixed to work as intended. There is no change or fault at the kernel
side. You may just disable the firefire drivers if you don't need
them.
Btw, swapping default kernel names to devfs names and create symlinks
for the kernel names is not recommended at all.
Kay
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.6.28 changes in-kernel name for UVC device ?
2009-01-20 13:07 ` Kay Sievers
@ 2009-01-20 13:19 ` Ionut Leonte
2009-01-20 17:13 ` Stefan Richter
1 sibling, 0 replies; 6+ messages in thread
From: Ionut Leonte @ 2009-01-20 13:19 UTC (permalink / raw)
To: Kay Sievers; +Cc: linux-kernel
On Tuesday 20 January 2009 15:07:21 you wrote:
> These rules are broken, and match also on firewire devices and not
> only video4linux devices.
>
> Such rules are not part of the standard udev setup and need to be
> fixed to work as intended. There is no change or fault at the kernel
> side. You may just disable the firefire drivers if you don't need
> them.
>
> Btw, swapping default kernel names to devfs names and create symlinks
> for the kernel names is not recommended at all.
Thanks for the clarifications. The rule is taken from the 'default' udev setup
as presented to me by my distribution (Gentoo in my case). I'll be sure to
file a bug report with them.
Cheers.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.6.28 changes in-kernel name for UVC device ?
2009-01-20 13:07 ` Kay Sievers
2009-01-20 13:19 ` Ionut Leonte
@ 2009-01-20 17:13 ` Stefan Richter
2009-01-21 3:23 ` Ionut Leonte
1 sibling, 1 reply; 6+ messages in thread
From: Stefan Richter @ 2009-01-20 17:13 UTC (permalink / raw)
To: Kay Sievers; +Cc: Ionut Leonte, linux-kernel
Kay Sievers wrote:
> On Tue, Jan 20, 2009 at 12:49, Ionut Leonte <ionut.leonte@gmail.com> wrote:
>> I have a Dell laptop with an integrated webcam which works with the 'uvcvideo'
>> module. For kernel versions 2.6.27 and below the following udev rule:
>>
>> KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="%k", GROUP="video"
>>
>> would create '/dev/video0' as a link to '/dev/v4l/video0'. When switching to
>> 2.6.28 the rule creates '/dev/video1394-0' instead. Obviously most user-space
>> apps were quite surprised by this (as was I).
>>
>> Is this change intended or is it the accidental result of some modification ?
>
> These rules are broken, and match also on firewire devices and not
> only video4linux devices.
>
> Such rules are not part of the standard udev setup and need to be
> fixed to work as intended. There is no change or fault at the kernel
> side.
Exactly.
> You may just disable the firefire drivers if you don't need them.
It is not even necessary to disable the drivers; it would be sufficient
to not force-load the video1394 module. (Or to fix the udev rule.)
Presence of a Firewire card does not cause video1394 to be auto-loaded;
only certain types of FireWire cameras cause respective uevents and thus
autoloading of the special-purpose driver video1394. Ergo, Ionut's
userland has a configuration somewhere which loads video1394 explicitly.
> Btw, swapping default kernel names to devfs names and create symlinks
> for the kernel names is not recommended at all.
>
> Kay
--
Stefan Richter
-=====-==--= ---= =-=--
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.6.28 changes in-kernel name for UVC device ?
2009-01-20 17:13 ` Stefan Richter
@ 2009-01-21 3:23 ` Ionut Leonte
2009-01-21 8:23 ` Stefan Richter
0 siblings, 1 reply; 6+ messages in thread
From: Ionut Leonte @ 2009-01-21 3:23 UTC (permalink / raw)
To: Stefan Richter; +Cc: linux-kernel
On Tuesday 20 January 2009 19:13:45 you wrote:
> Kay Sievers wrote:
> > You may just disable the firefire drivers if you don't need them.
>
> It is not even necessary to disable the drivers; it would be sufficient
> to not force-load the video1394 module. (Or to fix the udev rule.)
> Presence of a Firewire card does not cause video1394 to be auto-loaded;
> only certain types of FireWire cameras cause respective uevents and thus
> autoloading of the special-purpose driver video1394. Ergo, Ionut's
> userland has a configuration somewhere which loads video1394 explicitly.
It's most likely related to my kernel being monolithic - the only modules I
have are out-of-tree ones (like the binary nvidia driver and ndiswrapper).
Perhaps it's time I reconsidered my monolithic aproach to kernel building and
start compiling stuff as modules again.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.6.28 changes in-kernel name for UVC device ?
2009-01-21 3:23 ` Ionut Leonte
@ 2009-01-21 8:23 ` Stefan Richter
0 siblings, 0 replies; 6+ messages in thread
From: Stefan Richter @ 2009-01-21 8:23 UTC (permalink / raw)
To: Ionut Leonte; +Cc: linux-kernel, Kay Sievers
Ionut Leonte wrote:
> On Tuesday 20 January 2009 19:13:45 you wrote:
>> only certain types of FireWire cameras cause respective uevents and thus
>> autoloading of the special-purpose driver video1394. Ergo, Ionut's
>> userland has a configuration somewhere which loads video1394 explicitly.
>
> It's most likely related to my kernel being monolithic -
Ah, right; I keep forgetting that there is also Y besides M. :-)
Anyway, the best course of action is to get the udev device naming rules
fixed.
I suppose the simplest course of action would be to add the expression
SUBSYSTEM=="video4linux" to the v4l rule. Then it won't be applied to
ieee1394 devices.
--
Stefan Richter
-=====-==--= ---= =-=-=
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-01-21 8:23 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-20 11:49 2.6.28 changes in-kernel name for UVC device ? Ionut Leonte
2009-01-20 13:07 ` Kay Sievers
2009-01-20 13:19 ` Ionut Leonte
2009-01-20 17:13 ` Stefan Richter
2009-01-21 3:23 ` Ionut Leonte
2009-01-21 8:23 ` Stefan Richter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox