Antworten:
Ich denke, es ist dieser Befehl:
dmesg | grep tty
Wenn ich das auf meiner eigenen Linux-Box (die nur 1 seriellen Port hat) laufen lasse, entsteht eine einzige ttyS0-Ausgabezeile. Probieren Sie es selbst aus, Sie werden sehen, was ich meine.
tty
den Namen Ihrer Tty eingeben. Ich nehme an, dass dies die Bedeutung von OP ist, da sie nicht die Frage gestellt haben, welche seriellen Ports getty
ausgeführt werden.
Sehen Sie, in welchen UARTs welche gefunden wurden /proc/tty/driver/serial
. 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 ansteuert (das sind Eingangsleitungen), können Sie sogar ziemlich sicher sein, dass tatsächlich etwas vorhanden ist ... Gleiches gilt für die Anzahl der empfangenen Bytes.
Wenn Sie dies programmgesteuert tun müssen, kann das Lesen der Ausgabe von dmesg problematisch sein. Stattdessen enthält der Ordner / dev / serial / by-id sym-Links, die nach identifizierbaren Daten Ihres Geräts benannt sind und auf das spezifische / dev / tty * verweisen sind verbunden mit.
Ich bin mir nicht sicher, ob es sich um eine spezielle udev-Regel handelt, die verteilungsspezifisch ist, aber in Ubuntu funktioniert sie gut. Lassen Sie mich wissen, ob sie funktioniert.
ttyS0
durch 3
entsprechen jeweils COM1
durch 4
. Sie haben in der Regel die gleichen Hardwareressourcen und sind nicht immer erkennbar, sodass sie immer vorhanden sind.
setserial
, um die Ressourcen, die ttyS0 verwendet, der Ihrer seriellen Schnittstelle zuzuordnen. linux.die.net/man/8/setserial Dies ist jedoch normalerweise nicht erforderlich, da über COM4 hinaus in der Regel genügend Hilfshardware vorhanden ist, damit Linux es erkennen und ein serielles Gerät hinzufügen kann.
Es gibt auch den Befehl setserial
, mit /proc/tty/driver/serial
dem die Daten abgerufen werden.
# 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