У меня есть ноутбук, который имеет только один последовательный порт.
Я вошел в:
/dev
каталог, и я нашел:
ttyS0
ttyS1
ttyS2
ttyS3
Как мне узнать, какой из этих "ttyS" относится к моему последовательному порту?
У меня есть ноутбук, который имеет только один последовательный порт.
Я вошел в:
/dev
каталог, и я нашел:
ttyS0
ttyS1
ttyS2
ttyS3
Как мне узнать, какой из этих "ttyS" относится к моему последовательному порту?
Ответы:
Я думаю, что это команда:
dmesg | grep tty
Запуск этого на моем собственном Linux-боксе (который имеет только 1 последовательный порт) выдает одну строку вывода ttyS0. Попробуйте сами, вы поймете, что я имею в виду.
tty
чтобы получить имя вашего tty. Я предполагаю, что именно это имел в виду OP, поскольку они не ставили вопрос как "какой последовательный порт (ы) getty
работает?"
Посмотрите, какие 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 имеет ссылки sym, которые названы в честь идентифицируемых данных вашего устройства и указывают на конкретные / dev / tty * они связаны с.
Я не уверен, является ли это каким-то особым правилом udev для конкретного дистрибутива, но оно хорошо работает в Ubuntu, дайте мне знать, если оно работает.
ttyS0
сквозной 3
соответствуют COM1
сквозной 4
, соответственно. Они обычно имеют одинаковые аппаратные ресурсы и не всегда обнаруживаются, поэтому они всегда существуют.
setserial
для сопоставления ресурсов, используемых ttyS0, с вашим последовательным портом. linux.die.net/man/8/setserial Обычно это не требуется, поскольку что-либо, кроме COM4, обычно имеет достаточно вспомогательного оборудования, чтобы Linux мог обнаружить его и добавить последовательное устройство в зависимости от ситуации.
Существует также команда, 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