Имеется два полностью идентичных модема. Нужно их подключить, и знать какой порт какому модему принадлежит. Все-бы ничего, но периодически при перезагрузке порты меняются местами, в итоге модемы путаются, что приводит к очень нехорошим последствиям.Так вот, я пришел к выводу что нужно создать для каждого модема по статическому симлинку, и работать уже с ним. Итак, я приступил к написанию правила, всего-то нужно:
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="vid", ATTRS{idProduct}=="pid", KERNEL=="ttyUSB*", SYMLINK+="modem" Вроди все просто, да вот не совсем... Модемы то идентичные, по этому vid и pid у них одинаковые. Значит нужно искать другие отличия. Решил остановиться на серийнику - серийники разные, и в системе видны. Заменил пид/вид на "ATTRS{iSerial}==", и начал тестировать. Дернул модем раз, второй - не создается симлинк... Сделал "udevadm test /dev/ttyUSB0" - правило проходит. Посидел, подумал, и родилась мысль - а серийник случайно определяется не после того, как сработал udev? Если это так, то как решить это, я даже не представляю. Если ошибаюсь, то, пожалуйста, подскажите где. Как заставить работать udev по серийнику?
|