2011-12-19 3 views
2

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

Как определить его программным способом из моего кода на Python, независимо от того, было ли оно изменено или нет, или перезагрузка компьютера I может найти модем?

Примечание: я всегда могу видеть устройство с помощью lsusb, но если он подключен к концентратору USB не появляется в/DEV/TTY ... устройства

+0

Трудно попробовать и автоматически найти нужный модем. Что, если у вас есть два подключенных, например? Путь устройства может быть помещен в какую-либо конфигурационную переменную (файл конфигурации и/или аргумент командной строки), поэтому ее можно легко изменить. –

ответ

1

Это звучит как ошибка в 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 для списка основных номеров и соответствующих драйверов устройств.

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

+0

Спасибо за ваш ответ. Да - это персональное устройство. Я пробовал делать до и после файлов и различать их, также grep-ed номер модели. Модем определенно не существует, когда он подключен к концентратору. Я собираюсь купить еще один хаб и попробовать это. –

+0

Запуск Ubuntu 10.10 с 2.6.35-22-generic Kernel на i686 –

+0

Попробуйте другой концентратор, во-первых. У них иногда есть ошибки. Если это не поможет, подумайте об обновлении до 11.10 или 11.04 - если вы не используете LTS. –

0

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

+0

Спасибо, хорошая идея –

Смежные вопросы