Як я можу дізнатися, який / dev / ttyS * - це мій послідовний порт?


31

У мене ноутбук, який має лише один послідовний порт.

Я зайшов:

/dev 

каталог, і я знайшов:

ttyS0
ttyS1
ttyS2
ttyS3

Як я можу знати, який із цих "ttyS" відноситься до мого послідовного порту?


Відповіді:


30

Я думаю, що це така команда:

dmesg | grep tty

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


Чи означає це, що після запуску цієї команди, якщо відповідь увімкнено ... консоль [tty0] ... і жоден інший, будь-який пристрій підключено до / dev / tty0 (вибачте за очевидну глузливість питання)?
Гектор

1
Єдина проблема полягає в тому, що вихід dmesg можна очистити - тож якщо ви запустили це занадто пізно, вам не пощастить. Дивлячись на / proc / tty / driver / serial здається більш надійною відповіддю, а потім перевіряти наявність rx перерв, що збільшуються, коли ви пишете дані в цей порт
Ніл Макгілл

Вибачте, що мені робити, якщо я не бачу жодного результату?
користувач3019105

якщо ви зараз перебуваєте в терміналі над вказаною послідовною лінією, ви можете просто набрати, ttyщоб отримати ім’я свого tty. Я припускаю, що це означало ОП, оскільки вони не поставили питання, як "який послідовний порт (и) gettyпрацює?"
Том Ніколс

12

Подивіться, які 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.


7

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

Я не впевнений, чи це якесь особливе правило udev, яке є специфічним для розповсюдження, але воно добре працює в Ubuntu, дайте мені знати, чи працює воно.


5

ttyS0через 3відповідно до COM1через 4відповідно. Зазвичай вони мають однакові апаратні ресурси та не завжди виявляються, тому вони завжди існують.


дякую за відповідь. Отже, скажіть, що я хочу сказати Linux, що я хочу, щоб ttyS0 відобразив на моєму пристрої послідовного порту, що мені потрібно зробити?
sivabudh

Ви б використали setserialдля зіставлення ресурсів, які ttyS0 використовує, до ресурсів вашого послідовного порту. linux.die.net/man/8/setserial Це, як правило, не потрібно, оскільки все, що перебуває за межами COM4, ​​зазвичай має достатньо допоміжного обладнання, щоб Linux міг його виявити та додати послідовний пристрій у відповідних випадках.
Ігнасіо Васкес-Абрамс

0

Існує також команда, 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.