2010-04-14 21:10:13 +0000 2010-04-14 21:10:13 +0000
33
33

¿Cómo puedo saber qué /dev/ttyS* es mi puerto serie?

Tengo un portátil que sólo tiene un puerto serie.

He entrado en:

/dev

directorio, y encontré:

ttyS0
ttyS1
ttyS2
ttyS3

¿Cómo sé cuál de esos “ttyS” se refiere a mi puerto serie?

Respuestas (5)

34
34
34
2010-04-14 21:24:54 +0000

Creo que es este comando:

dmesg | grep tty

Ejecutando eso en mi propia caja Linux (que sólo tiene 1 puerto Serial) produce una única línea de salida ttyS0. Pruébalo por tu cuenta, verás lo que quiero decir.

14
14
14
2016-06-30 15:45:47 +0000

Vea qué UARTs fueron detectadas en /proc/tty/driver/serial. Una línea con uart:unknown significa: nada detectado (y probablemente inexistente).

# 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 hay algo conectado y manejando las líneas CTS, DSR o CD (estas son líneas de entrada) puedes incluso estar bastante seguro de que realmente hay algo… Lo mismo ocurre con el rx-byte-count.

7
7
7
2014-12-20 13:55:13 +0000

Si necesitas hacer esto programáticamente leer la salida de dmesg puede ser problemático, en su lugar la carpeta /dev/serial/by-id tiene enlaces sym que se nombran con datos identificables de tu dispositivo y apuntan al /dev/tty* específico al que están conectados.

No estoy seguro de si esto es alguna regla especial de udev que es específica de la distribución, pero funciona bien en Ubuntu, hágame saber si funciona.

6
6
6
2010-04-14 21:17:04 +0000

De ttyS0 a 3 corresponden a COM1 a 4, respectivamente. Suelen tener los mismos recursos de hardware y no siempre son detectables, por lo que siempre existen.

1
1
1
2016-09-12 15:19:53 +0000

También existe el comando setserial que utiliza /proc/tty/driver/serial para obtener sus datos.

# setserial -g /dev/ttyS[0123]
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3