2010-04-14 21:10:13 +0000 2010-04-14 21:10:13 +0000
33
33
Advertisement

Как узнать, какой /dev/ttyS* является моим последовательным портом?

Advertisement

У меня есть ноутбук, у которого только один последовательный порт. 0x2 и 0x2 и я вошёл:

/dev

, и я нашел:

Как узнать, какой из этих “ttyS” относится к моему последовательному порту?

Advertisement

Ответы (5)

34
34
34
2010-04-14 21:24:54 +0000

Думаю, это команда:

dmesg | grep tty

Запуск на моем собственном ящике Linux (который имеет только 1 последовательный порт) создает единственную выходную строку ttyS0. Попробуйте самостоятельно, вы поймете, о чем я.

14
14
14
2016-06-30 15:45:47 +0000

Посмотрите, какие 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-байт-счета.

7
Advertisement
7
7
2014-12-20 13:55:13 +0000

Если вам нужно сделать это программно, то чтение вывода из dmesg может быть проблематичным, вместо этого в папке /dev/serial/by-id есть сим-ссылки, названные в честь идентифицируемых данных вашего устройства и указывающие на конкретный /dev/tty*, к которому они подключены.

Я не уверен, является ли это каким-то специальным правилом udev, специфичным для дистрибутива, но оно хорошо работает в Ubuntu, дайте мне знать, если оно работает.

6
6
6
2010-04-14 21:17:04 +0000

От ttyS0 до 3 соответствуют COM1 до 4 соответственно. Обычно они имеют одни и те же аппаратные ресурсы и не всегда обнаруживаемы, поэтому они всегда существуют.

1
Advertisement
1
1
2016-09-12 15:19:53 +0000

Также существует команда 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

Похожие вопросы

6
10
5
37
3
Advertisement