GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo encontrar todos los dispositivos seriales (ttyS, ttyUSB, ..) en Linux sin abrirlos?

En núcleos recientes (no estoy seguro desde cuándo) puede enumerar el contenido de /dev/serial para obtener una lista de los puertos serie en su sistema. En realidad, son enlaces simbólicos que apuntan al nodo /dev/ correcto:

[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

Este es un adaptador USB-Serie, como puede ver. Tenga en cuenta que cuando no hay puertos serie en el sistema, el directorio /dev/serial/ no existe. Espero que esto ayude :).


El /sys El sistema de archivos debe contener mucha información para su búsqueda. Mi sistema (2.6.32-40-genérico #87-Ubuntu) sugiere:

/sys/class/tty

Lo que le brinda descripciones de todos los dispositivos TTY conocidos por el sistema. Un ejemplo recortado:

# 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/

Siguiendo uno de estos enlaces:

# 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

Aquí el dev El archivo contiene esta información:

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

Este es el nodo mayor/menor. Estos se pueden buscar en el /dev directorio para obtener nombres fáciles de usar:

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

El /sys/class/tty dir contiene todos los dispositivos TTY, pero es posible que desee excluir esos molestos terminales virtuales y pseudo terminales. Le sugiero que examine solo aquellos que tienen un device/driver entrada:

# 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:¿cómo se reinicia Gnome sin privilegios de raíz?

  2. ¿Cómo encontrar todos los archivos propiedad de un usuario específico en Unix/Linux?

  3. ¿Cómo encontrar todos los archivos de más de 1 GB de tamaño en Linux?

  4. Cómo encontrar todos los archivos dispersos en Linux

  5. Cómo encontrar la utilización de inodos del sistema de archivos en Linux

Cómo extender la partición raíz XFS sin LVM en Linux

Cómo encontrar qué dispositivos están conectados a la red en Linux

Cómo enumerar todos los usuarios en Linux

Cómo encontrar archivos duplicados en Linux y eliminarlos

Cómo encontrar todas las fuentes instaladas en Linux

gzip todos los archivos sin borrarlos