[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: udev et nommage persistant de modems USB



Sylvain MEDEOT wrote:
> Bonjour la liste,
> 
> Et bonne année à tous.
> 
> J'ai un serveur Debian Etch avec un noyau 2.6.18-3 et le serveur de fax
> Hylafax. J'utilise des modems USB en remplacement des faxs traditionnels
> avec à la clé l'envoi des faxs reçus par mail sous la forme de fichiers
> PDF.
> 
> Celà fonctionne très bien. J'ai actuellement 7 modems USB ( des
> multitech) qui sont reconnus en /dev/ttyACM0 à ACM6.
> 
> Mon soucis vient du fait que lorsque je suis à amené à redémarrer ce
> serveur, le nommage des modems diffère à chaque fois. Et comme
> l'acheminement des faxs est basé sur le nom du périphérique par lequel
> il entre, problème...
> 
> La commande udevinfo -ap /sys/class/tty/ttyACM0 donne :
> 
>  looking at device '/class/tty/ttyACM0':
>    KERNEL=="ttyACM0"
>    SUBSYSTEM=="tty"
>    DRIVER==""
>    ATTR{dev}=="166:0"
> 
>  looking at parent device
> '/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1:2.0':
>    KERNELS=="1-1:2.0"
>    SUBSYSTEMS=="usb"
>    DRIVERS=="cdc_acm"
>    ATTRS{interface}=="Multi-Tech Win95 Modem USB"
>    ATTRS{modalias}=="usb:v06E0pF107d0100dc02dsc00dp00ic02isc02ip01"
>    ATTRS{bInterfaceProtocol}=="01"
>    ATTRS{bInterfaceSubClass}=="02"
>    ATTRS{bInterfaceClass}=="02"
>    ATTRS{bNumEndpoints}=="01"
>    ATTRS{bAlternateSetting}==" 0"
>    ATTRS{bInterfaceNumber}=="00"
> 
>  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb1/1-1':
>    KERNELS=="1-1"
>    SUBSYSTEMS=="usb"
>    DRIVERS=="usb"
>    ATTRS{configuration}=="Data Interface"
>    ATTRS{product}=="MultiModemUSB"
>    ATTRS{manufacturer}=="Multi-Tech Systems, Inc."
>    ATTRS{maxchild}=="0"
>    ATTRS{version}==" 1.00"
>    ATTRS{devnum}=="4"
>    ATTRS{speed}=="12"
>    ATTRS{bMaxPacketSize0}=="8"
>    ATTRS{bNumConfigurations}=="2"
>    ATTRS{bDeviceProtocol}=="00"
>    ATTRS{bDeviceSubClass}=="00"
>    ATTRS{bDeviceClass}=="02"
>    ATTRS{bcdDevice}=="0100"
>    ATTRS{idProduct}=="f107"
>    ATTRS{idVendor}=="06e0"
>    ATTRS{bMaxPower}=="400mA"
>    ATTRS{bmAttributes}=="a0"
>    ATTRS{bConfigurationValue}=="2"
>    ATTRS{bNumInterfaces}==" 2"
> 
>  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb1':
>    KERNELS=="usb1"
>    SUBSYSTEMS=="usb"
>    DRIVERS=="usb"
>    ATTRS{configuration}==""
>    ATTRS{serial}=="0000:00:1d.0"
>    ATTRS{product}=="UHCI Host Controller"
>    ATTRS{manufacturer}=="Linux 2.6.18-3-686 uhci_hcd"
>    ATTRS{maxchild}=="2"
>    ATTRS{version}==" 1.10"
>    ATTRS{devnum}=="1"
>    ATTRS{speed}=="12"
>    ATTRS{bMaxPacketSize0}=="64"
>    ATTRS{bNumConfigurations}=="1"
>    ATTRS{bDeviceProtocol}=="00"
>    ATTRS{bDeviceSubClass}=="00"
>    ATTRS{bDeviceClass}=="09"
>    ATTRS{bcdDevice}=="0206"
>    ATTRS{idProduct}=="0000"
>    ATTRS{idVendor}=="0000"
>    ATTRS{bMaxPower}=="  0mA"
>    ATTRS{bmAttributes}=="e0"
>    ATTRS{bConfigurationValue}=="1"
>    ATTRS{bNumInterfaces}==" 1"
> 
>  looking at parent device '/devices/pci0000:00/0000:00:1d.0':
>    KERNELS=="0000:00:1d.0"
>    SUBSYSTEMS=="pci"
>    DRIVERS=="uhci_hcd"
>    ATTRS{broken_parity_status}=="0"
>    ATTRS{enable}=="1"
>    ATTRS{modalias}=="pci:v00008086d000027C8sv00001019sd00002141bc0Csc03i00"
>    ATTRS{local_cpus}=="ff"
>    ATTRS{irq}=="201"
>    ATTRS{class}=="0x0c0300"
>    ATTRS{subsystem_device}=="0x2141"
>    ATTRS{subsystem_vendor}=="0x1019"
>    ATTRS{device}=="0x27c8"
>    ATTRS{vendor}=="0x8086"
> 
>  looking at parent device '/devices/pci0000:00':
>    KERNELS=="pci0000:00"
>    SUBSYSTEMS==""
>    DRIVERS==""
> 
> La commande udevinfo -ap /sys/class/tty/ttyACM2 donne :
>  looking at device '/class/tty/ttyACM2':
>    KERNEL=="ttyACM2"
>    SUBSYSTEM=="tty"
>    DRIVER==""
>    ATTR{dev}=="166:2"
> 
>  looking at parent device
> '/devices/pci0000:00/0000:00:1d.1/usb2/2-1/2-1:2.0':
>    KERNELS=="2-1:2.0"
>    SUBSYSTEMS=="usb"
>    DRIVERS=="cdc_acm"
>    ATTRS{interface}=="Multi-Tech Win95 Modem USB"
>    ATTRS{modalias}=="usb:v06E0pF107d0100dc02dsc00dp00ic02isc02ip01"
>    ATTRS{bInterfaceProtocol}=="01"
>    ATTRS{bInterfaceSubClass}=="02"
>    ATTRS{bInterfaceClass}=="02"
>    ATTRS{bNumEndpoints}=="01"
>    ATTRS{bAlternateSetting}==" 0"
>    ATTRS{bInterfaceNumber}=="00"
> 
>  looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb2/2-1':
>    KERNELS=="2-1"
>    SUBSYSTEMS=="usb"
>    DRIVERS=="usb"
>    ATTRS{configuration}=="Data Interface"
>    ATTRS{product}=="MultiModemUSB"
>    ATTRS{manufacturer}=="Multi-Tech Systems, Inc."
>    ATTRS{maxchild}=="0"
>    ATTRS{version}==" 1.00"
>    ATTRS{devnum}=="3"
>    ATTRS{speed}=="12"
>    ATTRS{bMaxPacketSize0}=="8"
>    ATTRS{bNumConfigurations}=="2"
>    ATTRS{bDeviceProtocol}=="00"
>    ATTRS{bDeviceSubClass}=="00"
>    ATTRS{bDeviceClass}=="02"
>    ATTRS{bcdDevice}=="0100"
>    ATTRS{idProduct}=="f107"
>    ATTRS{idVendor}=="06e0"
>    ATTRS{bMaxPower}=="400mA"
>    ATTRS{bmAttributes}=="a0"
>    ATTRS{bConfigurationValue}=="2"
>    ATTRS{bNumInterfaces}==" 2"
> 
>  looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb2':
>    KERNELS=="usb2"
>    SUBSYSTEMS=="usb"
>    DRIVERS=="usb"
>    ATTRS{configuration}==""
>    ATTRS{serial}=="0000:00:1d.1"
>    ATTRS{product}=="UHCI Host Controller"
>    ATTRS{manufacturer}=="Linux 2.6.18-3-686 uhci_hcd"
>    ATTRS{maxchild}=="2"
>    ATTRS{version}==" 1.10"
>    ATTRS{devnum}=="1"
>    ATTRS{speed}=="12"
>    ATTRS{bMaxPacketSize0}=="64"
>    ATTRS{bNumConfigurations}=="1"
>    ATTRS{bDeviceProtocol}=="00"
>    ATTRS{bDeviceSubClass}=="00"
>    ATTRS{bDeviceClass}=="09"
>    ATTRS{bcdDevice}=="0206"
>    ATTRS{idProduct}=="0000"
>    ATTRS{idVendor}=="0000"
>    ATTRS{bMaxPower}=="  0mA"
>    ATTRS{bmAttributes}=="e0"
>    ATTRS{bConfigurationValue}=="1"
>    ATTRS{bNumInterfaces}==" 1"
> 
>  looking at parent device '/devices/pci0000:00/0000:00:1d.1':
>    KERNELS=="0000:00:1d.1"
>    SUBSYSTEMS=="pci"
>    DRIVERS=="uhci_hcd"
>    ATTRS{broken_parity_status}=="0"
>    ATTRS{enable}=="1"
>    ATTRS{modalias}=="pci:v00008086d000027C9sv00001019sd00002141bc0Csc03i00"
>    ATTRS{local_cpus}=="ff"
>    ATTRS{irq}=="209"
>    ATTRS{class}=="0x0c0300"
>    ATTRS{subsystem_device}=="0x2141"
>    ATTRS{subsystem_vendor}=="0x1019"
>    ATTRS{device}=="0x27c9"
>    ATTRS{vendor}=="0x8086"
> 
>  looking at parent device '/devices/pci0000:00':
>    KERNELS=="pci0000:00"
>    SUBSYSTEMS==""
>    DRIVERS==""
> 
> Et ainsi de suite...
> 
> Je cherche donc à garder un nommage persistant en attachant le nommage
> du modem à sa position sur le bus USB.
> 
> J'ai cherché sur google et j'ai trouvé des pistes pour le renommage des
> cartes réseau via udev par exemple mais rien pour ce qui m'intéresse ici.
> 
> Si quelqu'un a une piste, je suis très preneur,
> 
> Merci d'avance,
> 
> Sylvain
> 

Bonsoir,

Dans mon cas, il s agissait d'un rack usb pour lequel udev changeait le
nom a chaque fois que je l'eteignais puis le rallumais. Du coup, a la
premiere detection, je me trouvais avec un 'dev'sda1' puis a la seconde
detection (turn off puis turn on) j obtenais un '/dev/sdb1'. Plutot
genant au final, car j'avais place la ligne de montage dans /etc/fstab
en fonction de '/dev/sda1'.

Finalement, j ai trouve une solution qui consiste a creer une regle qui
match l'identite de mon rack et qui l'associe ensuite a un nom fixe
grace a un lien symbolique.

Pour ce faire, j ai cree un fichier hd.rules dans le repertoire
/etc/udev/ et contenant la regle suivante :

KERNEL=="sd*", SYSFS{vendor}=="Initio", SYSFS{model}=="6L200R0",
NAME="maxtor_rack"

Ensuite j ai fait un lien symbolique (010_hd.rules) sur ce meme fichier
dans le
repertoire rules.d.

Pour finir j'ai modifie mon fichier /etc/fstab pour prendre en compte le
device /dev/maxtor_rack et ca marche au poil.

Il faudrait reussir a identifier chacun des modems, il est peut etre
possible de recuperer le numero de serie !! Je ne sais pas.

En effectuant la commande:

udevinfo -ap /sys/class/tty/"device"

sur chacun de tes modems je le critere serial devrait etre different ;
du coup, tu ajoutes dans ta regle un SYSFS{serial}==

Je penses que cela devrait faire l'affaire. (A verifier :p!)

- --
Franck Joncourt
http://www.debian.org
http://smhteam.info/wiki/
GPG server : pgpkeys.mit.edu
Fingerprint : C10E D1D0 EF70 0A2A CACF  9A3C C490 534E 75C0 89FE

		
___________________________________________________________ 
All New Yahoo! Mail ? Tired of Vi@gr@! come-ons? Let our SpamGuard protect you. http://uk.docs.yahoo.com/nowyoucan.html



Reply to: