Вопрос:
Я подключил устройство (например, GSM-модем) через последовательный порт (он же RS-232), и мне нужно посмотреть, с каким файлом в /dev/
файловой системе было связано это устройство, чтобы иметь возможность общаться с ним. К сожалению, нет вновь созданного файла /dev/
и ничего не видно на dmesg
выходе. Так что это кажется сложным вопросом.
Задний план:
Я никогда не работал с последовательным устройством, поэтому вчера, когда возникла необходимость, я попытался найти его в Google, но не смог найти ничего полезного. Я провел несколько часов в поисках, и я хочу поделиться найденным ответом, так как это может быть полезно для кого-то.
devices
tty
serial-port
Привет, ангел
источник
источник
Ответы:
К сожалению, последовательные порты не являются PlugNPlay, поэтому ядро не знает, какое устройство было подключено. После прочтения руководства HowTo у меня есть рабочая идея.
/dev/
Каталог UNIX как операционки содержит файлы , указанные в ttySn (с п быть числом) . Большинство из них не соответствует существующим устройствам. Чтобы найти, какие из них делают, введите команду:Выше приведен пример вывода моего ПК. Вы можете увидеть инициализацию нескольких последовательных портов:
ttyS0
,ttyS1
,ttyS4
,ttyS5
.Один из них будет иметь положительное напряжение на подключенном устройстве. Таким образом, сравнивая содержимое файла
/proc/tty/driver/serial
с подключенным устройством и без него, мы можем легко найти ttyS, связанный с нашим устройством. Итак, теперь сделайте:(не) подключить устройство
Затем проверьте разницу между двумя файлами. Ниже приведен вывод моего ПК:
Сравнивая три числа с выводом dmesg, мы можем определить, какой из них является портом:
Следовательно, наше устройство
/dev/ttyS0
, миссия выполнена!источник
dmesg
должно появиться сообщение о назначении irq последовательному устройству. И если этого не произойдет, я бы предположил некоторые аппаратные проблемы. Это всего лишь предположение, и оно может быть ошибочным, но если бы я отладил такую проблему, я бы начал исследования с мыслью, что последовательный порт должен быть инициализирован.