Respuestas:
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ébelo usted mismo, verá lo que quiero decir.
tty
para obtener el nombre de su tty. Supongo que eso es lo que OP quiso decir, ya que no plantearon la pregunta como "¿qué puerto (s) serie (s) se están getty
ejecutando?"
Vea qué UART se detectaron en /proc/tty/driver/serial
. Una línea con uart:unknown
medios: nada detectado (y probablemente no existente).
# 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 de rx.
Si necesita hacer esto, leer la salida de dmesg mediante programación puede ser problemático, en su lugar, la carpeta / dev / serial / by-id tiene enlaces simbólicos que llevan el nombre de los datos identificables de su dispositivo y apuntan al / dev / tty * específico están conectados a
No estoy seguro de si esta es una regla especial de udev que es específica de la distribución, pero funciona bien en Ubuntu, avíseme si funciona.
ttyS0
through 3
corresponde a COM1
through 4
, respectivamente. Usualmente tienen los mismos recursos de hardware y no siempre son detectables, por lo que siempre existen.
setserial
para asignar los recursos que ttyS0 usa a los de su puerto serie. linux.die.net/man/8/setserial Sin embargo, esto normalmente no es necesario, ya que cualquier cosa más allá de COM4 generalmente tiene suficiente hardware auxiliar para permitir que Linux lo detecte y agregue un dispositivo en serie según corresponda.
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