Ich denke, es ist dieser Befehl:
dmesg | grep tty
Das Ausführen auf meiner eigenen Linux-Box (die nur 1 seriellen Anschluss hat) erzeugt eine einzelne ttyS0-Ausgangsleitung. Probieren Sie es selbst aus, Sie werden sehen, was ich meine.
Sehen Sie, welche UARTs in /proc/tty/driver/serial
erkannt wurden . Eine Zeile mit uart:unknown
bedeutet:nichts erkannt (und wahrscheinlich nicht vorhanden).
# 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
Wenn etwas angeschlossen ist und die Leitungen CTS, DSR oder CD (das sind Eingangsleitungen) ansteuert, können Sie sogar ziemlich sicher sein, dass tatsächlich etwas vorhanden ist ... Dasselbe gilt für die RX-Byte-Anzahl.
Wenn Sie dies tun müssen, kann das programmgesteuerte Lesen der Ausgabe von dmesg problematisch sein, stattdessen enthält der Ordner /dev/serial/by-id symbolische Links, die nach identifizierbaren Daten Ihres Geräts benannt sind und auf die spezifischen /dev/tty* verweisen verbunden sind.
Ich bin mir nicht sicher, ob dies eine spezielle udev-Regel ist, die verteilungsspezifisch ist, aber sie funktioniert gut in Ubuntu, lassen Sie mich wissen, ob sie funktioniert.