Как определить USB модем / dev в LINUX с Python - PullRequest
2 голосов
/ 19 декабря 2011

Если у меня есть USB-модем, к которому я обращаюсь с помощью модуля Python для Python, он требует, чтобы устройство было идентифицировано, например, как / dev / ttyACM0. Если модем подключен к USB-концентратору, он больше не отображается в /dev/tty...

Как определить это программно из моего кода Python, чтобы независимо от того, был ли он изменен или нет, или машина перезагрузилась, я могу найти модем?

Примечание: Я всегда вижу устройство с помощью lsusb, но если оно подключено к USB-концентратору, оно не отображается как / dev / tty ... device

Ответы [ 2 ]

1 голос
/ 19 декабря 2011

Вместо того, чтобы заниматься вуду в Python, попробуйте написать правило udev , которое дает вашему устройству гораздо более полезное имя, например /dev/my-serial-thingy. Использовать его из Python намного проще.

1 голос
/ 19 декабря 2011

Это звучит как ошибка в ядре Linux.Если вы можете, попробуйте более свежую версию.

Если это не помогло, проверьте последние несколько строк вывода dmesg или в файле /var/log/messages (последняя зависит от вашего дистрибутива; если этот файлне существует или не содержит того, что вы ищете, затем проверьте другие файлы в /var/log; сортировка по времени с помощью ls -rt).

После идентификации устройства вы можете увидетьшаблон.

Другой подход - старший и младший номер.Если вы запустите ls -l /dev, вы увидите вывод, подобный следующему:

crw--w----   1 root tty         4,   0 2011-12-19 09:15 tty0

c означает «символьное устройство», а 4, 0 означает, что это устройство консольного устройства 0.

4 является основным номером, который определяет тип устройства.См. /proc/devices для списка основных номеров и соответствующих драйверов устройств.

Если вы подключаете модель напрямую, запишите основной номер.После подключения к концентратору попробуйте найти устройства с таким же номером.

...