GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo sé cuál /dev/ttyS* es mi puerto serie?

Creo que es este comando:

dmesg | grep tty

Ejecutar eso en mi propia caja de Linux (que solo tiene 1 puerto serie) produce una sola línea de salida ttyS0. Pruébalo por tu cuenta, verás lo que quiero decir.


Vea qué UART se detectaron en /proc/tty/driver/serial . Una línea con uart:unknown significa:nada detectado (y probablemente no existe).

# cat /proc/tty/driver/serial 
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0
1: uart:16550A port:000002F8 irq:3 tx:111780 rx:1321 RTS|DTR|DSR
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3

Si algo está conectado y maneja las líneas CTS, DSR o CD (estas son líneas de entrada), incluso puede estar bastante seguro de que realmente hay algo... Lo mismo es cierto para el conteo de bytes rx.


Si necesita hacer esto mediante programación, leer la salida de dmesg puede ser problemático, en su lugar, la carpeta /dev/serial/by-id tiene enlaces simbólicos que llevan el nombre de datos identificables de su dispositivo y apuntan al /dev/tty* específico que están conectados.

No estoy seguro de si se trata de alguna regla especial de udev que sea específica de la distribución, pero funciona bien en Ubuntu, avíseme si funciona.


Linux
  1. Linux:¿Diferencia entre /dev/console, /dev/tty y /dev/tty0?

  2. ¿Cuándo usar /dev/random Vs /dev/urandom?

  3. Cómo silenciar completamente un cronjob a /dev/null/?

  4. ¿Cómo se intercambia /dev/sda con /dev/sdb?

  5. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

Cómo mapear dispositivos /dev/sdX y /dev/mapper/mpathY desde el dispositivo /dev/dm-Z

¿Cómo codificar en base64 /dev/random o /dev/urandom?

¿Cómo saber desde qué carpeta se está ejecutando un proceso?

Cómo usa Linux /dev/tty y /dev/tty0

hacer eco o imprimir /dev/stdin /dev/stdout /dev/stderr

¿Por qué se requieren < o > para usar /dev/tcp?