На жаль, послідовні порти не є PlugNPlay, тому ядро не знає, до якого пристрою підключено. Прочитавши навчальний посібник HowTo, я зрозумів, що я працюю.
/dev/
Каталог UNIX як операційки містить файли , зазначені в ttySn (з п бути числом) . Більшість з них не відповідає існуючим пристроям. Щоб знайти, які з них виконайте, видайте команду:
$ dmesg | grep ttyS
[ 0.872181] 00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.892626] 00:07: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[ 0.915797] 0000:01:01.0: ttyS4 at I/O 0x9800 (irq = 19) is a ST16650V2
[ 0.936942] 0000:01:01.1: ttyS5 at I/O 0x9c00 (irq = 18) is a ST16650V2
Вище наведено приклад виводу мого ПК. Ви можете побачити ініціалізацію декількох послідовних портів:
ttyS0
, ttyS1
, ttyS4
, ttyS5
.
Один з них матиме позитивну напругу на підключеному пристрої. Отже, порівнюючи вміст файлу /proc/tty/driver/serial
із пристроєм та без нього, підключений до нього, ми можемо легко знайти ttyS, пов'язані з нашим пристроєм. Отже, тепер зробіть:
$ sudo cat /proc/tty/driver/serial> /tmp/1
(не) підключіть пристрій
$ sudo cat /proc/tty/driver/serial> /tmp/2
Далі перевірте різницю між двома файлами. Нижче наведено висновок мого ПК:
$ diff /tmp/1 /tmp/2
2c2
< 0: uart:16550A port:000003F8 irq:4 tx:6 rx:0
---
> 0: uart:16550A port:000003F8 irq:4 tx:6 rx:0 CTS|DSR
Порівнюючи три числа з виходом dmesg, ми можемо визначити, який з них - порт:
[ 0.872181] 00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Отже, наш пристрій /dev/ttyS0
, місія виконана!