GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare tutti i dispositivi seriali (ttyS, ttyUSB, ..) su Linux senza aprirli?

Nei kernel recenti (non sono sicuro da quando) puoi elencare il contenuto di /dev/serial per ottenere un elenco delle porte seriali sul tuo sistema. In realtà sono collegamenti simbolici che puntano al corretto /dev/ node:

[email protected]:~$ ls /dev/serial/
total 0
drwxr-xr-x 2 root root 60 2011-07-20 17:12 by-id/
drwxr-xr-x 2 root root 60 2011-07-20 17:12 by-path/
[email protected]:~$ ls /dev/serial/by-id/
total 0
lrwxrwxrwx 1 root root 13 2011-07-20 17:12 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB0
[email protected]:~$ ls /dev/serial/by-path/
total 0
lrwxrwxrwx 1 root root 13 2011-07-20 17:12 pci-0000:00:0b.0-usb-0:3:1.0-port0 -> ../../ttyUSB0

Questo è un adattatore USB-seriale, come puoi vedere. Si noti che quando non ci sono porte seriali sul sistema, la directory /dev/serial/ non esiste. Spero che questo aiuti :).


Il /sys il filesystem dovrebbe contenere molte informazioni per la tua ricerca. Il mio sistema (2.6.32-40-generic #87-Ubuntu) suggerisce:

/sys/class/tty

Che fornisce le descrizioni di tutti i dispositivi TTY noti al sistema. Un esempio ridotto:

# ll /sys/class/tty/ttyUSB*
lrwxrwxrwx 1 root root 0 2012-03-28 20:43 /sys/class/tty/ttyUSB0 -> ../../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.0/ttyUSB0/tty/ttyUSB0/
lrwxrwxrwx 1 root root 0 2012-03-28 20:44 /sys/class/tty/ttyUSB1 -> ../../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/ttyUSB1/tty/ttyUSB1/

Seguendo uno di questi link:

# ll /sys/class/tty/ttyUSB0/
insgesamt 0
drwxr-xr-x 3 root root    0 2012-03-28 20:43 ./
drwxr-xr-x 3 root root    0 2012-03-28 20:43 ../
-r--r--r-- 1 root root 4096 2012-03-28 20:49 dev
lrwxrwxrwx 1 root root    0 2012-03-28 20:43 device -> ../../../ttyUSB0/
drwxr-xr-x 2 root root    0 2012-03-28 20:49 power/
lrwxrwxrwx 1 root root    0 2012-03-28 20:43 subsystem -> ../../../../../../../../../../class/tty/
-rw-r--r-- 1 root root 4096 2012-03-28 20:43 uevent

Qui il dev contiene queste informazioni:

# cat /sys/class/tty/ttyUSB0/dev
188:0

Questo è il nodo maggiore/minore. Questi possono essere cercati nel /dev directory per ottenere nomi descrittivi:

# ll -R /dev |grep "188, *0"
crw-rw----   1 root dialout 188,   0 2012-03-28 20:44 ttyUSB0

Il /sys/class/tty dir contiene tutti i dispositivi TTY ma potresti voler escludere quei fastidiosi terminali virtuali e pseudo terminali. Ti suggerisco di esaminare solo quelli che hanno un device/driver voce:

# ll /sys/class/tty/*/device/driver
lrwxrwxrwx 1 root root 0 2012-03-28 19:07 /sys/class/tty/ttyS0/device/driver -> ../../../bus/pnp/drivers/serial/
lrwxrwxrwx 1 root root 0 2012-03-28 19:07 /sys/class/tty/ttyS1/device/driver -> ../../../bus/pnp/drivers/serial/
lrwxrwxrwx 1 root root 0 2012-03-28 19:07 /sys/class/tty/ttyS2/device/driver -> ../../../bus/platform/drivers/serial8250/
lrwxrwxrwx 1 root root 0 2012-03-28 19:07 /sys/class/tty/ttyS3/device/driver -> ../../../bus/platform/drivers/serial8250/
lrwxrwxrwx 1 root root 0 2012-03-28 20:43 /sys/class/tty/ttyUSB0/device/driver -> ../../../../../../../../bus/usb-serial/drivers/ftdi_sio/
lrwxrwxrwx 1 root root 0 2012-03-28 21:15 /sys/class/tty/ttyUSB1/device/driver -> ../../../../../../../../bus/usb-serial/drivers/ftdi_sio/

Linux
  1. Linux:come si riavvia Gnome senza privilegi di root?

  2. Come trovare tutti i file di proprietà di un utente specifico in Unix/Linux?

  3. Come trovare tutti i file sparsi in Linux

  4. Come trovare tutti i file che terminano con .rb con Linux?

  5. Come trovare il numero di modello dell'unità disco Linux?

Come estendere la partizione radice XFS senza LVM in Linux

Come trovare quali dispositivi sono collegati alla rete in Linux

Come elencare tutti gli utenti in Linux

Come trovare file duplicati in Linux e rimuoverli

Come trovare tutti i caratteri installati in Linux

Come trovare l'utilizzo degli inode del filesystem in Linux