#1 Le 25/11/2009, à 20:18
- jy_moustache
[résolu]règle udev : vous etes mon dernier recours !!! :-)
bonsoir a tous
apres presque 3 semaines a essayer de faire fonctionner ma règle udev, sans succes, je fais appel a vous. Pour tout de suite vous rassurez, j'ai lu un paquet de docs sur ces règles (dont cette page :http://doc.ubuntu-fr.org/udev).
Mais malheureusement ça n'a pas suffit
Voici mon problème.
J'ai une carte son USB, M-audio MobilePre USB datant d'avant 2003, qui nécéssite un firmware, Madfuload, pour être reconnue. J'ai écrit un petit script bash, runMadfuload, qui fonctionne lorsque je le lance à la main.
Reste à écrire ma règle udev et ce n'est pas une mince affaire
Voici le résultat de lsusb :
Bus 003 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 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 064e:a103 Suyin Corp.
Bus 001 Device 002: ID 0bda:0158 Realtek Semiconductor Corp. Mass Stroage Device
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 147e:1000 Upek
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 002: ID 046d:c00e Logitech, Inc. M-BJ58/M-BJ69 Optical Wheel Mouse
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 005: ID 0763:2804 Midiman M-Audio MobilePre DFU
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Voici le résultat de "udevadm info"
looking at device '/devices/pci0000:00/0000:00:1d.2/usb8/8-2':
KERNEL=="8-2"
SUBSYSTEM=="usb"
DRIVER=="usb"
ATTR{configuration}==""
ATTR{bNumInterfaces}==" 1"
ATTR{bConfigurationValue}=="1"
ATTR{bmAttributes}=="40"
ATTR{bMaxPower}=="400mA"
ATTR{urbnum}=="10"
ATTR{idVendor}=="0763"
ATTR{idProduct}=="2804"
ATTR{bcdDevice}=="0100"
ATTR{bDeviceClass}=="fe"
ATTR{bDeviceSubClass}=="01"
ATTR{bDeviceProtocol}=="00"
ATTR{bNumConfigurations}=="1"
ATTR{bMaxPacketSize0}=="64"
ATTR{speed}=="12"
ATTR{busnum}=="8"
ATTR{devnum}=="4"
ATTR{version}==" 1.00"
ATTR{maxchild}=="0"
ATTR{quirks}=="0x0"
ATTR{authorized}=="1"
ATTR{manufacturer}=="Unknown"
ATTR{product}=="Unknown"
looking at parent device '/devices/pci0000:00/0000:00:1d.2/usb8':
KERNELS=="usb8"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bMaxPower}==" 0mA"
ATTRS{urbnum}=="69"
ATTRS{idVendor}=="1d6b"
ATTRS{idProduct}=="0001"
ATTRS{bcdDevice}=="0206"
ATTRS{bDeviceClass}=="09"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{speed}=="12"
ATTRS{busnum}=="8"
ATTRS{devnum}=="1"
ATTRS{version}==" 1.10"
ATTRS{maxchild}=="2"
ATTRS{quirks}=="0x0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="Linux 2.6.31-14-generic uhci_hcd"
ATTRS{product}=="UHCI Host Controller"
ATTRS{serial}=="0000:00:1d.2"
ATTRS{authorized_default}=="1"
looking at parent device '/devices/pci0000:00/0000:00:1d.2':
KERNELS=="0000:00:1d.2"
SUBSYSTEMS=="pci"
DRIVERS=="uhci_hcd"
ATTRS{vendor}=="0x8086"
ATTRS{device}=="0x2936"
ATTRS{subsystem_vendor}=="0x1025"
ATTRS{subsystem_device}=="0x015e"
ATTRS{class}=="0x0c0300"
ATTRS{irq}=="18"
ATTRS{local_cpus}=="ff"
ATTRS{local_cpulist}=="0-7"
ATTRS{modalias}=="pci:v00008086d00002936sv00001025sd0000015Ebc0Csc03i00"
ATTRS{broken_parity_status}=="0"
ATTRS{msi_bus}==""
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
et voici la règle que j'ai écrite. elle se trouve dans /lib/udev/rules.d/42-madfuload.rules. J'ai déplacé ce fichier dans /etc/udev/rules.d/, ca n'a rien changé.
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0763", ATTR{idProduct}=="2804", RUN+="sh /usr/share/usb/maudio/runMadfuload"
pour l'instant ça ne fonctionne pas.
quelqu'un a une idée ?
merci beaucoup d'avance à mes sauveurs ...
jy
Dernière modification par jy_moustache (Le 26/11/2009, à 23:26)
Hors ligne
#2 Le 26/11/2009, à 08:49
- compte supprimé
Re : [résolu]règle udev : vous etes mon dernier recours !!! :-)
Salut,
/etc/udev/rules.d et un meilleur endroit.
Si tu vires 'ACTION=="add"' est-ce que ça marche ?
#3 Le 26/11/2009, à 08:52
- compte supprimé
Re : [résolu]règle udev : vous etes mon dernier recours !!! :-)
Autre chose (vu dans http://www.reactivated.net/writing_udev … ml#testing) :
udev does not run these programs on any active terminal, and it does not execute them under the context of a shell. Be sure to ensure your program is marked executable, if it is a shell script ensure it starts with an appropriate shebang (e.g. #!/bin/sh), and do not expect any standard output to appear on your terminal.
#4 Le 26/11/2009, à 10:00
- jy_moustache
Re : [résolu]règle udev : vous etes mon dernier recours !!! :-)
Si tu vires 'ACTION=="add"' est-ce que ça marche ?
j'ai pas essayé ; je testerai. Ceci dit, les règles udev etant lues en permanence pour être appliquée, je préfèrerai le laisser comme ca il me lance mon script que quand le matériel est branché. sinon dès qu'il detecte la presence de materiel, il va lancer le script en boucle...
udev does not run these programs on any active terminal, and it does not execute them under the context of a shell. Be sure to ensure your program is marked executable, if it is a shell script ensure it starts with an appropriate shebang (e.g. #!/bin/sh), and do not expect any standard output to appear on your terminal.
Ah oui effectivement j'avais pas pensé à ca. je ferai la modif et je te tiens au courant.
merci des tuyaux, je teste ce soir !!
jy
Hors ligne
#5 Le 26/11/2009, à 23:26
- jy_moustache
Re : [résolu]règle udev : vous etes mon dernier recours !!! :-)
salut
c'est nickel ca marche, c'etait mon appel à sh qui n'etait pas fait proprement. avec /bin/sh ca fonctionne mieux
merci beaucoup !!
jy
Hors ligne