PDA

View Full Version : Nomi statici a periferiche e udev


mdr268
28-11-2013, 21:39
Ciao a tutti

Dopo un'approfondita lettura di guide e forum non riesco ad andare a capo a questo problema.

Uso Kubuntu 13.10.
Sto lavorando con dei modem che si collegano al pc tramite cavo usb.
Ho bisogno di assegnare loro dei nomi statici, ad esempio /dev/Modem1, /dev/Modem2. Ciò dovrebbe essere possibile cambiando le udev rules nella cartella /etc/udev/rules.d/

Seguendo le guide online, applico il comando a due modem
$ udev -a -p /class/tty/ttyUSB0
$ udev -a -p /class/tty/ttyUSB1

qui dovrei trovare qualche parametro per distinguere i due modem, ma sono tutti uguali e quindi non riesco a fare delle regole per far riconoscere le schede al pc.
In particolare ATTRS{serial} dovrebbe darmi seriali differenti per ogni scheda, ma in realtà son tutti uguali. :muro:
L'unica cosa che sono riuscito a fare finora è nominare staticamente le porte usb, ma questo non mi aiuta... Ho bisogno di nominare la scheda in modo che se cambio porta usb non mi cambi pure il nome della periferica.

Vi allego i risultati dei due udev:

MODEM1:

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

looking at device '/devices/pci0000:00/0000:00:1d.1/usb6/6-1/6-1:1.0/ttyUSB1/tty/ttyUSB1':
KERNEL=="ttyUSB1"
SUBSYSTEM=="tty"
DRIVER==""

looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb6/6-1/6-1:1.0/ttyUSB1':
KERNELS=="ttyUSB1"
SUBSYSTEMS=="usb-serial"
DRIVERS=="ftdi_sio"
ATTRS{port_number}=="0"
ATTRS{latency_timer}=="1"

looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb6/6-1/6-1:1.0':
KERNELS=="6-1:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="ftdi_sio"
ATTRS{bInterfaceClass}=="ff"
ATTRS{bInterfaceSubClass}=="ff"
ATTRS{bInterfaceProtocol}=="ff"
ATTRS{bNumEndpoints}=="02"
ATTRS{supports_autosuspend}=="1"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bInterfaceNumber}=="00"
ATTRS{interface}=="USB <-> Serial"

looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb6/6-1':
KERNELS=="6-1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{devpath}=="1"
ATTRS{idVendor}=="0403"
ATTRS{speed}=="12"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{busnum}=="6"
ATTRS{devnum}=="17"
ATTRS{configuration}==""
ATTRS{bMaxPower}=="90mA"
ATTRS{authorized}=="1"
ATTRS{bmAttributes}=="80"
ATTRS{bNumConfigurations}=="1"
ATTRS{maxchild}=="0"
ATTRS{bcdDevice}=="0400"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{quirks}=="0x0"
ATTRS{version}==" 1.10"
ATTRS{urbnum}=="12"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="FTDI"
ATTRS{removable}=="unknown"
ATTRS{idProduct}=="6001"
ATTRS{bDeviceClass}=="00"
ATTRS{product}=="USB <-> Serial"

looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb6':
KERNELS=="usb6"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{devpath}=="0"
ATTRS{idVendor}=="1d6b"
ATTRS{speed}=="12"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{authorized_default}=="1"
ATTRS{busnum}=="6"
ATTRS{devnum}=="1"
ATTRS{configuration}==""
ATTRS{bMaxPower}=="0mA"
ATTRS{authorized}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bNumConfigurations}=="1"
ATTRS{maxchild}=="2"
ATTRS{bcdDevice}=="0311"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{quirks}=="0x0"
ATTRS{serial}=="0000:00:1d.1"
ATTRS{version}==" 1.10"
ATTRS{urbnum}=="309"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="Linux 3.11.0-13-generic uhci_hcd"
ATTRS{removable}=="unknown"
ATTRS{idProduct}=="0001"
ATTRS{bDeviceClass}=="09"
ATTRS{product}=="UHCI Host Controller"

looking at parent device '/devices/pci0000:00/0000:00:1d.1':
KERNELS=="0000:00:1d.1"
SUBSYSTEMS=="pci"
DRIVERS=="uhci_hcd"
ATTRS{irq}=="19"
ATTRS{subsystem_vendor}=="0x1025"
ATTRS{broken_parity_status}=="0"
ATTRS{class}=="0x0c0300"
ATTRS{consistent_dma_mask_bits}=="32"
ATTRS{dma_mask_bits}=="32"
ATTRS{local_cpus}=="00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000003"
ATTRS{device}=="0x2831"
ATTRS{msi_bus}==""
ATTRS{local_cpulist}=="0-1"
ATTRS{vendor}=="0x8086"
ATTRS{subsystem_device}=="0x0136"
ATTRS{numa_node}=="-1"
ATTRS{d3cold_allowed}=="0"

looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""

MODEM2:


Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

looking at device '/devices/pci0000:00/0000:00:1d.0/usb5/5-1/5-1:1.0/ttyUSB0/tty/ttyUSB0':
KERNEL=="ttyUSB0"
SUBSYSTEM=="tty"
DRIVER==""

looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb5/5-1/5-1:1.0/ttyUSB0':
KERNELS=="ttyUSB0"
SUBSYSTEMS=="usb-serial"
DRIVERS=="ftdi_sio"
ATTRS{port_number}=="0"
ATTRS{latency_timer}=="1"

looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb5/5-1/5-1:1.0':
KERNELS=="5-1:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="ftdi_sio"
ATTRS{bInterfaceClass}=="ff"
ATTRS{bInterfaceSubClass}=="ff"
ATTRS{bInterfaceProtocol}=="ff"
ATTRS{bNumEndpoints}=="02"
ATTRS{supports_autosuspend}=="1"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bInterfaceNumber}=="00"
ATTRS{interface}=="USB <-> Serial"

looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb5/5-1':
KERNELS=="5-1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{devpath}=="1"
ATTRS{idVendor}=="0403"
ATTRS{speed}=="12"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{busnum}=="5"
ATTRS{devnum}=="12"
ATTRS{configuration}==""
ATTRS{bMaxPower}=="90mA"
ATTRS{authorized}=="1"
ATTRS{bmAttributes}=="80"
ATTRS{bNumConfigurations}=="1"
ATTRS{maxchild}=="0"
ATTRS{bcdDevice}=="0400"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{quirks}=="0x0"
ATTRS{version}==" 1.10"
ATTRS{urbnum}=="12"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="FTDI"
ATTRS{removable}=="unknown"
ATTRS{idProduct}=="6001"
ATTRS{bDeviceClass}=="00"
ATTRS{product}=="USB <-> Serial"

looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb5':
KERNELS=="usb5"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{devpath}=="0"
ATTRS{idVendor}=="1d6b"
ATTRS{speed}=="12"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{authorized_default}=="1"
ATTRS{busnum}=="5"
ATTRS{devnum}=="1"
ATTRS{configuration}==""
ATTRS{bMaxPower}=="0mA"
ATTRS{authorized}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bNumConfigurations}=="1"
ATTRS{maxchild}=="2"
ATTRS{bcdDevice}=="0311"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{quirks}=="0x0"
ATTRS{serial}=="0000:00:1d.0"
ATTRS{version}==" 1.10"
ATTRS{urbnum}=="233"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="Linux 3.11.0-13-generic uhci_hcd"
ATTRS{removable}=="unknown"
ATTRS{idProduct}=="0001"
ATTRS{bDeviceClass}=="09"
ATTRS{product}=="UHCI Host Controller"

looking at parent device '/devices/pci0000:00/0000:00:1d.0':
KERNELS=="0000:00:1d.0"
SUBSYSTEMS=="pci"
DRIVERS=="uhci_hcd"
ATTRS{irq}=="23"
ATTRS{subsystem_vendor}=="0x1025"
ATTRS{broken_parity_status}=="0"
ATTRS{class}=="0x0c0300"
ATTRS{consistent_dma_mask_bits}=="32"
ATTRS{dma_mask_bits}=="32"
ATTRS{local_cpus}=="00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000003"
ATTRS{device}=="0x2830"
ATTRS{msi_bus}==""
ATTRS{local_cpulist}=="0-1"
ATTRS{vendor}=="0x8086"
ATTRS{subsystem_device}=="0x0136"
ATTRS{numa_node}=="-1"
ATTRS{d3cold_allowed}=="0"

looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""



Grazie mille a chiunque darà anche un piccolo contributo :)

sacarde
29-11-2013, 08:32
che vedi da: lsusb

gli ID: bus e device dovrebbero cambiare

mdr268
02-12-2013, 08:16
Ecco lsusb, cambia sia il numero del Bus che quello del Device (i due modem collegati sono la terza e la quinta voce).

theo@theo-Aspire-5715Z:~$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

sacarde
02-12-2013, 09:41
i valori:

...
ATTRS{busnum}=="6"
ATTRS{devnum}=="17"
...
e l'altra:
...
ATTRS{busnum}=="5"
ATTRS{devnum}=="12"
...
rimangono inalterati se cambi porta usb ?




un altro valore da controllare se rimane fisso e': ATTRS{urbnum}=="233"

mdr268
02-12-2013, 10:21
Ho fatto un po' di tentativi:
busnum è il numero della porta e rimane costante cambiando modem mentre devnum è il numero progressivo del device attaccato a quella porta e se stacco e riattacco lo stesso modem il valore di devnum incrementa.

Per quanto riguarda urbnum, ce ne sono due.
Il primo rimane sempre fisso a 12, con qualsiasi scheda e a qualsiasi porta.


looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb6/6-1':
KERNELS=="6-1"
ATTRS{urbnum}=="12"


mentre l'altro urbnum cambia valore ad ogni differente connessione, sia con lo stesso modem che con modem diversi.

Se si potesse in qualche modo impostare un attributo ad una scheda sarebbe l'ideale! :stordita:

sacarde
02-12-2013, 10:49
in teoria dovrebbe funzionare il {serial}


cambia il numero finale

mdr268
02-12-2013, 10:55
Già provato, quel numero finale cambia a seconda della porta a cui mi connetto... Cioè lo stesso modem collegato alla porta 0 mi da 0000:00:1d.0 e collegato alla porta uno mi da 0000:00:1d.1. Se cambio modem il seriale è lo stesso :(

sacarde
02-12-2013, 19:18
prova a chiedere su forum specifici ubuntu

o alla mailinglist:
http://vger.kernel.org/vger-lists.html#linux-hotplug