[Linux-bruxelles] udev rules pour ma webcam
Marc Van Craesbeeck
marcvancraesbeeck at scarlet.be
Lun 4 Déc 23:30:27 CET 2006
> Salut à tous,
Hello:-)
Excuse ma première réponse superficielle et mal quotée.
> J'essaye d'écrire une règle pour la création de /dev/video pour ma
> webcam Logitech QuickCam mais cela ne fonctionne pas.
Ta caméra est donc bien reconnue ?
Chez moi, avec un noyau 2-6-15, dmesg | grep usb :
drivers/usb/media/spca5xx/spca5xx-main.c: USB SPCA5XX camera found.
Logitech QC Communicate STX
[17179587.528000] usbcore: registered new driver spca5xx
[17179587.528000] drivers/usb/media/spca5xx/spca5xx-main.c: spca5xx
driver 00.57.08 registered
>
> Voici l'ébauche de solution :
> # rule pour la WebCam Logitech QuickCam Communicate STX
> BUS=="usb", SYSFS{idProduct}=="08ad", SYSFS{idVendor}=="046d",
> NAME="video%n", SYMLINK="quickcam", GROUP="video"
> ceci basé sur les infos suivantes :
> - ----------
> looking at class device
> '/sys/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2.4':
> SUBSYSTEM="unknown"
> SYSFS{bConfigurationValue}="1"
> SYSFS{bDeviceClass}="00"
> SYSFS{bDeviceProtocol}="00"
> SYSFS{bDeviceSubClass}="00"
> SYSFS{bMaxPower}="100mA"
> SYSFS{bNumConfigurations}="1"
> SYSFS{bNumInterfaces}=" 3"
> SYSFS{bcdDevice}="0100"
> SYSFS{bmAttributes}="a0"
> SYSFS{detach_state}="0"
> SYSFS{devnum}="3"
> SYSFS{idProduct}="08ad"
> SYSFS{idVendor}="046d"
> SYSFS{maxchild}="0"
> SYSFS{speed}="12"
> SYSFS{version}=" 1.10"
> - ----------
> Maintenant, je ne sais pas/plus s'il faut utiliser "=" ou "==" dans mes
> règles. J'ai trouvé un document pas trop mal foutu ici :
> http://www.reactivated.net/writing_udev_rules.html
> qui explique que "=" est l'opérateur d'assignation et "==" de
> comparaison. Est-il possible que cela varie d'une version de udev à
> l'autre (la mienne est la version 0.056-3 de Debian Sarge)?
Je ne pense pas.
Bon, après avoir lu le lien et son ancre camera,
http://www.reactivated.net/writing_udev_rules.html#example-camera
je remarque que les conditions de comparaisons (== ) de l'exemple
concordent avec les infos disponibles par udevinfo -a -p
Ta règle correspond-elle bien à ce qui est détecté chez toi?
D'ou tires-tu l'info pour NAME?
Chez moi:
udevinfo -q path -n /dev/bus/usb/001/004:
/class/usb_device/usbdev1.4
udevinfo -a -p /sys//class/usb_device/usbdev1.4:
looking at class device '/sys/class/usb_device/usbdev1.4':
KERNEL=="usbdev1.4"
SUBSYSTEM=="usb_device"
SYSFS{dev}=="189:3"
follow the "device"-link to the physical device:
looking at the device chain at
'/sys/devices/pci0000:00/0000:00:11.2/usb1/1-1/1-1.4':
BUS=="usb"
ID=="1-1.4"
DRIVER=="usb"
SYSFS{bConfigurationValue}=="1"
SYSFS{bDeviceClass}=="00"
SYSFS{bDeviceProtocol}=="00"
SYSFS{bDeviceSubClass}=="00"
SYSFS{bMaxPacketSize0}=="8"
SYSFS{bMaxPower}=="100mA"
SYSFS{bNumConfigurations}=="1"
SYSFS{bNumInterfaces}==" 3"
SYSFS{bcdDevice}=="0100"
SYSFS{bmAttributes}=="a0"
SYSFS{configuration}==""
SYSFS{devnum}=="4"
SYSFS{idProduct}=="08ad"
SYSFS{idVendor}=="046d"
SYSFS{maxchild}=="0"
SYSFS{speed}=="12"
SYSFS{version}==" 1.10"
>
> D'autre part, je ne trouve pas de commande pour recharger les nouvelles
> règles de udev en cas de changement (pas de "udevcontrol reload_rules")
> mais peut-être cela n'est-il pas nécessaire avec un noyau 2.6.8. Ou
> faut-il faire un restart de hotplug ?
Ne faut-il pas écrire un fichier texte dans /etc/udev/rules.d/
et relancer le daemon /etc/init.d/udev stop start?
Bonne chance.
--
Marc Van Craesbeeck
Amnesty International groupe33:
http://www.amnestygr33.be
Plus d'informations sur la liste de diffusion Linux-bruxelles