Здравствуйте, уважаемые!!
Мучаюсь с одним вопросом - касаемо привязки конкретного устройства к конкретному порту!!!!
Проблема вот, собственно, в чем! Подключаю к своей системе ( ALtLinux ) модем, создаются файлы устройств ( ttyUSB0-2 ). Слышал, что можно командами AT "сжать" до 1-го ttyUSB0, но сейчас не про это.Вот - подключаю переходник USB to UART - создается файл устройства ttyUSB3. Все работает - всех все устраивает
Но если очередность подключения нарушена и система создала ttyUSB0 для переходника, а ttyUSB1-3 для модема. то ПОЧЕМУ ТО - в порт переходника регулярно присылается команда AT\n ( в ttyUSB0, который соответствует переходнику) - что УЖЕ СТРАННО! и если у кого то есть ответ на это - с радостью и благодарностью выслушаю ( ибо запарился с этой проблемой, сначала выявлял неск-ко дней в чем собсно проблема, думал переходник тупит, а потом безуспешно решал еще столько же)
Ну а суть вопроса , КОТОРЫЙ ГЛАВНЫЙ для меня на этот момент и тема создана именно в этих целях -
как сделать чтобы переходнику ставилось в соответствие всегда устройство /dev/ttyUSB3 и модем всегда занимал устройства /dev/ttyUSB0-2...разбирался с udev-ом сегодня, но не больно то он мне помог..
пишу что - то типа
ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="my_watchdog" ссылка создается, но не на ttyUSB3 (как к примеру симлинк @gsmmodem, который ссылается на файл модема ttyUSB* (кстати, не смог найти udev правило под модем - может что то упустил?)) , а на bys/usb/001/xxx(031, 034 и т.д).
соответсвенно - как правильно написать правила, чтобы
а) получить симлинк на устройство, чтобы использовать его в скриптах
б)привязать переходник к ttyUSB3
Огромное спасибо, за то, что прочитали - ответьте , пожалуйста, кто что знает!!!
привязка портов к девайсам
ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="my_watchdog"
Попробуйте в конце правила указать, какое именно устройство должно быть создано, т.е. что-то вроде NAME="ttyUSB3".
Попробовал последовать Вашему совету
Получил:
1) моя ссылка указывает теперь на ttyUSB3
2)появился файл устройства ttyUSB3 причем с верными атрибутами
crw-rw---- 1 root uucp
3)НО..все равно видимо система создала файл ttyUSB0 ПРИЧЕМ с НЕ ТЕМИ АТРИБУТАМИ, какие обычно задаются этим устройствам
crw------- 1 root root
что посоветуете делать? переходник я сломал, так что посылать сигнал пока не могу, мне просто важно пока, чтобы остался только ttyUSB3 и симлинк на него..а мешается еще 1 создаваемый системой файл ( как я подозреваю - рабочим будет именно ttyUSB3, либо ни 1 из них не будет работать должным образом, из за неверной групповой принадлежности)
что в думаете по этому поводу?)
что в думаете по этому поводу?)
Вообще-то симлинки на устройства для того и придумали, чтобы при конфигурации указывать симлинк, а не само устройство.
проблема в том, что при подключении модема он занимает все равно ttyUSB1-3, а симлинк переходника остается на ttyUSB3.
такая картина вобщем
1) только переходник вкл
вывод dmesg:
cp210x converter now attached to ttyUSB0
вывод cd /dev -> ls -l | grep USB
lrwxrwxrwx 1 root root my_watchdog -> ttyUSB3
crw------- 1 root root ttyUSB0 (непонятно, откуда - только если система все равно создает)
crw-rw---- 1 root uucp ttyUSB3
2)подключаю дополнительно модем
вывод dmesg:
usb 2-1.6: GSM modem(1-port) converter now attached to ttyUSB1
usb 2-1.6: GSM modem(1-port) converter now attached to ttyUSB2
usb 2-1.6: GSM modem(1-port) converter now attached to ttyUSB3
вывод cd /dev -> ls -l | grep USB
lrwxrwxrwx 1 root root gsmmodem -> ttyUSB1
lrwxrwxrwx 1 root root my_watchdog -> ttyUSB3
crw------- 1 root root ttyUSB0 (единственное устройство с группой root)
crw-rw---- 1 root uucp ttyUSB1
crw-rw---- 1 root uucp ttyUSB2
crw-rw---- 1 root uucp ttyUSB3
нашел опцию OPTIONS в правилах Udev
попытался написать так
SUBSYSTEMS=="usb-serial", DRIVERS=="cp210x", KERNELS=="ttyUSB0", OPTIONS+="ignore_remove" (пытался и "ignore_device") - устройство все равно появляется(((((
не понимаю я этот udev( вроде в мане написано -
ignore_device
Полностью проигнорировать данное событие.
ignore_remove
Проигнорировать, а затем - удалить событие для данного устройства. Это можно использовать как временное решение проблем с неработающими драйверами устройств.