Odpowiedzi:
Myślę, że to jest to polecenie:
dmesg | grep tty
Uruchomienie tego na moim własnym Linux-ie (który ma tylko 1 port szeregowy) tworzy pojedynczą linię wyjściową ttyS0. Wypróbuj sam, zobaczysz, co mam na myśli.
ttynazwę swojego tty. Zakładam, że właśnie to miał na myśli OP, ponieważ nie zadawali pytania „jakie porty szeregowe gettydziałają?”.
Sprawdź, które UART zostały wykryte /proc/tty/driver/serial. Linia uart:unknownoznacza: nic nie wykryto (i prawdopodobnie nie istnieje).
# 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
Jeśli coś jest podłączone i napędza linie CTS, DSR lub CD (są to linie wejściowe), możesz być nawet całkiem pewien, że rzeczywiście coś jest ... To samo dotyczy liczby bajtów rx.
Jeśli musisz to zrobić programowo, odczyt danych wyjściowych z dmesg może być kłopotliwy, zamiast tego folder / dev / serial / by-id ma łącza sym, które są nazwane na podstawie możliwych do zidentyfikowania danych twojego urządzenia i wskazują na konkretne / dev / tty * są połączone z.
Nie jestem pewien, czy jest to jakaś specjalna reguła udev, która jest specyficzna dla dystrybucji, ale działa dobrze w Ubuntu, daj mi znać, czy to działa.
ttyS0przez 3odpowiadają COM1za pośrednictwem 4, odpowiednio. Zwykle mają te same zasoby sprzętowe i nie zawsze są wykrywalne, więc zawsze istnieją.
setserialdo mapowania zasobów ttyS0 wykorzystuje do tego z portu szeregowego. linux.die.net/man/8/setserial Zwykle nie jest to wymagane, ponieważ wszystko poza COM4 zwykle ma wystarczającą ilość sprzętu pomocniczego, aby Linux mógł go wykryć i odpowiednio dodać urządzenie szeregowe.
Istnieje również polecenie, setserialktóre wykorzystuje je /proc/tty/driver/serialdo uzyskania danych.
# 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