У меня есть ноутбук, который имеет только один последовательный порт.
Я вошел в:
/dev
каталог, и я нашел:
ttyS0
ttyS1
ttyS2
ttyS3
Как мне узнать, какой из этих "ttyS" относится к моему последовательному порту?
У меня есть ноутбук, который имеет только один последовательный порт.
Я вошел в:
/dev
каталог, и я нашел:
ttyS0
ttyS1
ttyS2
ttyS3
Как мне узнать, какой из этих "ttyS" относится к моему последовательному порту?
Я думаю, что это команда:
dmesg | grep tty
Запуск этого на моем собственном Linux-боксе (который имеет только 1 последовательный порт) выдает одну строку вывода ttyS0. Попробуйте сами, вы поймете, что я имею в виду.
Посмотрите, какие UART были обнаружены в /proc/tty/driver/serial
. Строка с uart:unknown
означает, что ничего не обнаружено (и, вероятно, не существует).
# 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
Если что-то подключено и управляет линиями CTS, DSR или CD (это входные линии), вы даже можете быть уверены, что на самом деле что-то есть ... То же самое верно для счетчика rx-byte-count.
Если вам нужно сделать это программно, чтение вывода из dmesg может быть проблематичным, вместо этого папка /dev /serial /by-id имеет ссылки на символы, которые названы в честь идентифицируемых данных вашего устройства и указывают на конкретные /dev /tty * они связаны с.
Я не уверен, является ли это каким-то особым правилом udev для конкретного дистрибутива, но оно хорошо работает в Ubuntu, дайте мне знать, если оно работает.
ttyS0
по 3
соответствуют COM1
до 4
соответственно. Они обычно имеют одинаковые аппаратные ресурсы и не всегда обнаруживаются, поэтому они всегда существуют.
Существует также команда setserial
которая использует /proc/tty/driver/serial
для получения своих данных.
# 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