3

У меня есть несколько идентичных адаптеров USB-последовательный порт на моем сервере Fedora FC12. Кажется, что при каждой загрузке устройства меняют имена устройств (/dev/ttyUSBn). Теперь я предполагаю, что имена шины и устройства меняют это. Это связано с USB-концентраторами внутри материнской платы. Так можно ли определить имя /dev по идентификатору шины и устройства? Я надеюсь на интерфейс командной строки, но я не боюсь написать некоторый код на C, но мне нужно помочь с тем, какие системные функции мне, возможно, понадобится вызывать.

1 ответ1

0

Вы можете решить эту проблему, написав собственное правило UDEV для каждого конвертера, который вы хотите использовать. Обычно это сводится к созданию текстового файла в определенном месте, обычно это /etc/udev/rules.d/*.rules или что-то подобное (в зависимости от вашего дистрибутива).

Я обычно создаю символические ссылки на устройство вместо того, чтобы переименовывать его ... это проще и позволяет абстрагировать мои устройства от схемы имен операционной системы. В следующем примере, что вы хотите сделать: KERNEL=="ttyUSB*", KERNELS=="1-1.4", SYMLINK+="bridge0" KERNEL=="ttyUSB*", KERNELS=="1-1.5", SYMLINK+="bridge1" KERNEL=="ttyUSB*", KERNELS=="1-1.2", SYMLINK+="bridge2" KERNEL=="ttyUSB*", KERNELS=="1-1.1", SYMLINK+="bridge3" KERNEL=="ttyUSB*", KERNELS=="2-1.1", SYMLINK+="bridge4"

А теперь пример, в котором вместо этого используется серийный номер устройства (поэтому имя привязано к преобразователю, а не к месту его подключения): SUBSYSTEM=="tty", ATTRS{serial}=="FTFV8YRP", SYMLINK+="bridge0" SUBSYSTEM=="tty", ATTRS{serial}=="A600N0ER", SYMLINK+="bridge1" SUBSYSTEM=="tty", ATTRS{serial}=="FTZ2CBOD", SYMLINK+="bridge2" SUBSYSTEM=="tty", ATTRS{serial}=="FTZ2CBVE", SYMLINK+="bridge3" SUBSYSTEM=="tty", ATTRS{serial}=="FTZ29GWA", SYMLINK+="bridge4"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .