[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