Forzare nome ttyUSB [RISOLTO]
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- tgmx
- Linux 4.x
- Messaggi: 1336
- Iscritto il: ven 28 apr 2006, 14:40
- Slackware: 14.1
- Desktop: KDE 4
- Località: Ancona
Forzare nome ttyUSB [RISOLTO]
Ciao Ragazzi,
ho la necessita' di forzare un particolare convertitore USB/RS232 ad avere sempre lo stesso nome (ad esempio /det/ttyUSB100).
Sto cercando qualche guida su che regola impostare per udev ma non riesco a trovarne una che funzioni.
Avete qualche consiglio? Vi e' capitato di risolvere lo stesso problema?
Edit:
Il pc su cui devo impostare la regola ha una Slack un po' datata (forse 12.2) ma vorrei che funzionasse anche su Slackwere piu' recenti.
ho la necessita' di forzare un particolare convertitore USB/RS232 ad avere sempre lo stesso nome (ad esempio /det/ttyUSB100).
Sto cercando qualche guida su che regola impostare per udev ma non riesco a trovarne una che funzioni.
Avete qualche consiglio? Vi e' capitato di risolvere lo stesso problema?
Edit:
Il pc su cui devo impostare la regola ha una Slack un po' datata (forse 12.2) ma vorrei che funzionasse anche su Slackwere piu' recenti.
Ultima modifica di tgmx il mar 20 nov 2012, 8:31, modificato 3 volte in totale.
-
- Master
- Messaggi: 1645
- Iscritto il: lun 16 lug 2007, 17:39
- Slackware: 15.0 64bit
- Kernel: 5.15.27
- Desktop: kde
- Località: Roma
Re: Forzare nome ttyUSB
hai letto questa e questa!?!?!?
per me sono i punti di riferimento per udev.
comunque dovrebbe essere semplice quanto carpire alcuni attributi specifici conlanciando questo comando ottieni informazioni dal sistema udev relativamente a quella periferica.
una volta trovati i dati univoci (che ti suggerisco essere il vendor_id e il model_id)
scrivi una regola cosi' formata
ciau
EDIT: ho letto ora il fatto che utilizzi versioni slackware di qualche tempo fa.
la regola d'esempio dovrebbe andare bene, ma il comando udevadm non so se te lo ritrovi, perchè prima si chiamata udevinfo. vedi un po'.
per me sono i punti di riferimento per udev.
comunque dovrebbe essere semplice quanto carpire alcuni attributi specifici con
Codice: Seleziona tutto
udevadm -a -n /dev/device-che-vuoi
una volta trovati i dati univoci (che ti suggerisco essere il vendor_id e il model_id)
scrivi una regola cosi' formata
Codice: Seleziona tutto
SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="xxxx", NAME="/dev/ttyUSB1", GROUP="users", MODE="0666"
EDIT: ho letto ora il fatto che utilizzi versioni slackware di qualche tempo fa.
la regola d'esempio dovrebbe andare bene, ma il comando udevadm non so se te lo ritrovi, perchè prima si chiamata udevinfo. vedi un po'.
- tgmx
- Linux 4.x
- Messaggi: 1336
- Iscritto il: ven 28 apr 2006, 14:40
- Slackware: 14.1
- Desktop: KDE 4
- Località: Ancona
Re: Forzare nome ttyUSB
Grazie miklos.
La prima guida che hai postato l'avevo gia' vista in giro ma sembrava vecchia e poi faceva riferimento al comando udevinfo che non avevo trovato.
La seconda non la conoscevo.
Il comando che hai postato funziona se metto:
udevadm info -a -n /dev/ttyUSB0
Ora provo ad aggiungere la regola e ti aggiorno.
La prima guida che hai postato l'avevo gia' vista in giro ma sembrava vecchia e poi faceva riferimento al comando udevinfo che non avevo trovato.
La seconda non la conoscevo.
Il comando che hai postato funziona se metto:
udevadm info -a -n /dev/ttyUSB0
Ora provo ad aggiungere la regola e ti aggiorno.
-
- Master
- Messaggi: 1645
- Iscritto il: lun 16 lug 2007, 17:39
- Slackware: 15.0 64bit
- Kernel: 5.15.27
- Desktop: kde
- Località: Roma
Re: Forzare nome ttyUSB
si infatti a prima vista sembra arcaica.. ma come funzionamento di udev e scrittura delle regole è ancora attualissima, tant'e' che è menzionata pure nel secondo link che ti ho postatotgmx ha scritto:La prima guida che hai postato l'avevo gia' vista in giro ma sembrava vecchia e poi faceva riferimento al comando udevinfo che non avevo trovato.
contento di esserti stato utile
ciau
- tgmx
- Linux 4.x
- Messaggi: 1336
- Iscritto il: ven 28 apr 2006, 14:40
- Slackware: 14.1
- Desktop: KDE 4
- Località: Ancona
Re: Forzare nome ttyUSB
Probabilmente sbaglio qualcosa perche' non funziona...
Questa e' la procedura che seguo.
1) collego il dispositivo USB
2) eseguo il comando:
udevadm info -a -n /dev/ttyUSB0
Nell'output ho due "idVendor" ma credo sia buono il primo dato che da dmesg ottengo:
quindi utilizzo idVendor=0403, idProduct=6001 .
3) creo il file /etc/udev/rules.d/70-persistent-usb.rules contenente:
4) disconnetto e riconnetto il dispositivo USB
A questo punto il device si chiama ancora /dev/ttyUSB0 ...
Questa e' la procedura che seguo.
1) collego il dispositivo USB
2) eseguo il comando:
udevadm info -a -n /dev/ttyUSB0
Codice: Seleziona tutto
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.2/usb4/4-1/4-1:1.0/ttyUSB0/tty/ttyUSB0':
KERNEL=="ttyUSB0"
SUBSYSTEM=="tty"
DRIVER==""
looking at parent device '/devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0/ttyUSB0':
KERNELS=="ttyUSB0"
SUBSYSTEMS=="usb-serial"
DRIVERS=="ftdi_sio"
ATTRS{latency_timer}=="1"
ATTRS{port_number}=="0"
looking at parent device '/devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0':
KERNELS=="4-1:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="ftdi_sio"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bNumEndpoints}=="02"
ATTRS{bInterfaceClass}=="ff"
ATTRS{bInterfaceSubClass}=="ff"
ATTRS{bInterfaceProtocol}=="ff"
ATTRS{supports_autosuspend}=="1"
ATTRS{interface}=="USB-RS232 Cable"
looking at parent device '/devices/pci0000:00/0000:00:1d.2/usb4/4-1':
KERNELS=="4-1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="80"
ATTRS{bMaxPower}=="300mA"
ATTRS{urbnum}=="16"
ATTRS{idVendor}=="0403"
ATTRS{idProduct}=="6001"
ATTRS{bcdDevice}=="0600"
ATTRS{bDeviceClass}=="00"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{speed}=="12"
ATTRS{busnum}=="4"
ATTRS{devnum}=="8"
ATTRS{devpath}=="1"
ATTRS{version}==" 2.00"
ATTRS{maxchild}=="0"
ATTRS{quirks}=="0x0"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="FTDI"
ATTRS{product}=="USB-RS232 Cable"
ATTRS{serial}=="FTUD2XLU"
looking at parent device '/devices/pci0000:00/0000:00:1d.2/usb4':
KERNELS=="usb4"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bMaxPower}==" 0mA"
ATTRS{urbnum}=="189"
ATTRS{idVendor}=="1d6b"
ATTRS{idProduct}=="0001"
ATTRS{bcdDevice}=="0302"
ATTRS{bDeviceClass}=="09"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{speed}=="12"
ATTRS{busnum}=="4"
ATTRS{devnum}=="1"
ATTRS{devpath}=="0"
ATTRS{version}==" 1.10"
ATTRS{maxchild}=="2"
ATTRS{quirks}=="0x0"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="Linux 3.2.29-smp 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}=="0x27ca"
ATTRS{subsystem_vendor}=="0x1462"
ATTRS{subsystem_device}=="0x7529"
ATTRS{class}=="0x0c0300"
ATTRS{irq}=="18"
ATTRS{local_cpus}=="0000000f"
ATTRS{local_cpulist}=="0-3"
ATTRS{numa_node}=="-1"
ATTRS{dma_mask_bits}=="32"
ATTRS{consistent_dma_mask_bits}=="32"
ATTRS{enable}=="1"
ATTRS{broken_parity_status}=="0"
ATTRS{msi_bus}==""
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
Codice: Seleziona tutto
[20973.750174] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[20973.750187] ftdi_sio 4-1:1.0: device disconnected
[20975.507009] usb 4-1: new full-speed USB device number 8 using uhci_hcd
[20975.744030] usb 4-1: New USB device found, idVendor=0403, idProduct=6001
[20975.744033] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[20975.744036] usb 4-1: Product: USB-RS232 Cable
[20975.744038] usb 4-1: Manufacturer: FTDI
[20975.744040] usb 4-1: SerialNumber: FTUD2XLU
[20975.752073] ftdi_sio 4-1:1.0: FTDI USB Serial Device converter detected
[20975.752100] usb 4-1: Detected FT232RL
[20975.752102] usb 4-1: Number of endpoints 2
[20975.752104] usb 4-1: Endpoint 1 MaxPacketSize 64
[20975.752107] usb 4-1: Endpoint 2 MaxPacketSize 64
[20975.752109] usb 4-1: Setting MaxPacketSize 64
[20975.754081] usb 4-1: FTDI USB Serial Device converter now attached to ttyUSB0
[21146.183021] usb 1-7: reset high-speed USB device number 4 using ehci_hcd
3) creo il file /etc/udev/rules.d/70-persistent-usb.rules contenente:
Codice: Seleziona tutto
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", NAME="ttyUSB100", GROUP="users", MODE="0666"
A questo punto il device si chiama ancora /dev/ttyUSB0 ...
- targzeta
- Iper Master
- Messaggi: 6629
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: Forzare nome ttyUSB
Prova a creare un link simbolico. La regona NAME può servire solo per fare il match o per rinominare le interfacce di rete:
Emanuele
Codice: Seleziona tutto
NAME
The name to use for a network interface. The name of a device node can not be changed by udev, only additional symlinks can be created.
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
- tgmx
- Linux 4.x
- Messaggi: 1336
- Iscritto il: ven 28 apr 2006, 14:40
- Slackware: 14.1
- Desktop: KDE 4
- Località: Ancona
Re: Forzare nome ttyUSB
Grande! Funziona!targzeta ha scritto:Prova a creare un link simbolico. La regona NAME può servire solo per fare il match o per rinominare le interfacce di rete:EmanueleCodice: Seleziona tutto
NAME The name to use for a network interface. The name of a device node can not be changed by udev, only additional symlinks can be created.
Ho utilizzato la seguente regola con le correzioni che mi hai suggerito (ho anche aggiunto il seriale ma funzionava anche senza):
Codice: Seleziona tutto
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTT9CIFQ", SYMLINK+="ttyUSB100", GROUP="users", MODE="0666"
sh /etc/rc.d/rc.udev force-restart
Grazie della collaborazione.
- tgmx
- Linux 4.x
- Messaggi: 1336
- Iscritto il: ven 28 apr 2006, 14:40
- Slackware: 14.1
- Desktop: KDE 4
- Località: Ancona
Re: Forzare nome ttyUSB [QUASI RISOLTO]
Mi correggo, non funziona proprio al 100% .
In pratica il link che viene creato non punta a /dev/ttyUSB0 ma a:
e tra l'altro non riesco ad utilizzare il device linkato per comunicare in seriale.
Se ad esempio eseguo:
vedo che il dispositivo riceve i caratteri inviati ma se eseguo:
ottengo:
ed il dispositivo nojn riceve niente...
In pratica il link che viene creato non punta a /dev/ttyUSB0 ma a:
Codice: Seleziona tutto
s -l /dev/ttyPROVA
lrwxrwxrwx 1 root root 15 Nov 19 16:54 /dev/ttyPROVA -> bus/usb/004/028
Se ad esempio eseguo:
Codice: Seleziona tutto
echo "aaaaa" > /dev/ttyUSB0
Codice: Seleziona tutto
echo "aaaaa" > /dev/ttyPROVA
Codice: Seleziona tutto
bash: echo: write error: Invalid argument
- joe
- Iper Master
- Messaggi: 3790
- Iscritto il: ven 27 apr 2007, 11:21
- Slackware: 15.0
- Kernel: 5.15.38
- Desktop: dwm
Re: Forzare nome ttyUSB [QUASI RISOLTO]
Hai provato con un programma di comunicazione tipo minicom?
- targzeta
- Iper Master
- Messaggi: 6629
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: Forzare nome ttyUSB [QUASI RISOLTO]
Purtroppo non ho device che si settano come tty via usb. Comunque, tieni presente che le regole di assegnamento vengono eseguito su ciò che viene matchato prima. Quindi assicurati che con le regole precedenti tu riesca a beccare esattamente il ttyUSB0. Se noti, le regole scritte in quella guida, iniziano tutte con 'KERNEL==' per fare il match esattamente con il nome del device che vede il kernel.
Emanuele
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
- tgmx
- Linux 4.x
- Messaggi: 1336
- Iscritto il: ven 28 apr 2006, 14:40
- Slackware: 14.1
- Desktop: KDE 4
- Località: Ancona
Re: Forzare nome ttyUSB [QUASI RISOLTO]
Ok, ora ho risolto...
Era tutta colpa di una 'S', ho sostituito SUBSYSTEM con SUBSYSTEMS...
Questa e' la regola funzionante:
Ora il link e' verso ttyUSB0.
Grazie a tutti!
Era tutta colpa di una 'S', ho sostituito SUBSYSTEM con SUBSYSTEMS...
Questa e' la regola funzionante:
Codice: Seleziona tutto
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTT9CIFQ", SYMLINK+="ttyPROVA", GROUP="users", MODE="0666"
Grazie a tutti!