FreeBSD: постоянные узлы для USB-устройств

В FreeBSD устройства USB отображаются в /dev как (например) /dev/ugen2.5 , /dev/ugen2.6 и т. Д. …

Тем не менее, я заметил, что после перезагрузки иногда они указывают на разные устройства. Есть ли способ заблокировать их или получить узел, например /dev/my-usb-device , который не изменяется после перезагрузки?

One Solution collect form web for “FreeBSD: постоянные узлы для USB-устройств”

Я не думаю, что вы можете заблокировать, но есть довольно простой способ сделать это. Вам нужно добавить некоторые вещи в etc/devd.conf которые обрабатывают конкретное устройство, когда оно появляется. Вам нужно будет использовать что-то уникальное в отношении устройства (например, его серийный номер). Вот пример для последовательного порта USB, который обрабатывает мой дверной звонок:

 # Set up symlink to doorbell serial port attach 200 { device-name "uftdi[0-9]"; match "vendor" "0x0403"; match "product" "0x6001"; match "sernum" "A10167K1"; action "/root/bin/cuaconfig $device-name doorbell $sernum"; }; 

Обратите внимание, что действие предназначено для запуска скрипта. Это определяет истинный номер последовательного порта с помощью коварных средств, а затем добавляет символическую ссылку в /dev . Ваши программы используют это для доступа к устройству. Вот мой сценарий, который, вероятно, больше, чем вам нужно. Это переводит имя USB-устройства в имя последовательного порта, потому что я использую последовательный чип USB-порта FTDI. У вас, вероятно, будет что-то намного проще и, вероятно, не понадобится этот перевод.

 #!/bin/sh # configure cuaU? ports - called from devd.conf # arg 1 - device name, of the form uftdi? # arg 2 - symlink to create/delete in /dev (any existing one deleted) # arg 3 - serial number dev=$1 link=$2 sernum=$3 # get FTDI unit number ftunit=${dev#uftdi} # generate full tty name ttyname="/dev/cua$(sysctl -n dev.uftdi.$ftunit.ttyname)" # generate full symlink name symlink="/dev/${link}" # delete any existing symlink to the port, then create the new one echo "creating symlink ${symlink} to ${ttyname} on serial ${sernum}" > /dev/console rm -f ${symlink} ln -s ${ttyname} ${symlink}` 

Получение серийного номера устройства

Достаточно использовать идентификаторы производителя в devd.conf . Однако у вас может быть два одинаковых (у меня есть последовательные порты USB FT232). В этом случае вы можете различать их по серийному номеру (будьте осторожны, некоторые клоны FT232 имеют одинаковый серийный номер!)

Существуют различные способы получения серийного номера. Один из них – установить порт sysutils/usbutils . Это содержит команду lsusb , в которой будут перечислены все устройства. Вы можете использовать:

 lsusb -v -s 0403:6001 | grep serial 

для получения серийного номера.

  • Как сохранить настройки LiveCD?
  • Крепление USB не работает на Centos 6.4
  • Компилировать ядро ​​Linux с динамическим (Un) загружаемым usbserial модулем
  • Как проверить размер блока стирания флэш-памяти Usb под Linux?
  • Что может привести к изменению скорости порта USB?
  • Монетный двор Linux не показывает все свободное пространство
  • Raspian: статическая карта / dev / ttyUSB *
  • правильный способ монтирования sdcard в linux
  • Недавно отформатированное USB-устройство хранения данных не монтируется
  • Как использовать интернет-модем iphone через USB с Ubuntu 10.04
  • USB-концентраторы и Linux
  • Interesting Posts

    Изменение поведения ярлыков яркости

    Есть ли способ узнать, кто может получить доступ к папке / папке?

    Начать песню с определенного времени в ритм-боксе с помощью командной строки

    i3wm зависает случайным образом, когда окно полноэкранное

    Как SSH отображает сообщение «Невозможно установить подлинность хоста ..»?

    Как получить справочную страницу для «apt upgrade»?

    используйте сортировку GNU для сортировки по одному ключу / предотвращения нежелательной сортировки других ключей

    Какие дистрибутивы Linux имеют самую высокую базовую базу по состоянию на середину 2010 года?

    Найти: Ссылка на текущий каталог

    Grep и игнорирование ведущих пробелов

    Освободить память в perl-скрипте

    как я могу использовать nmcli для добавления IP-адреса в интерфейс?

    Как обнаружить «движение» петли 2-в-1 в ноутбуке

    Как установить zabbix-agent поверх apt-get

    чтение списка строк из файла, записывающего вывод в утилиту

    Linux и Unix - лучшая ОС в мире.