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.