Конфигурирование Universal Serial Bus устройств
Как уже было отмечено в разделе о PCMCIA, USB представляет из себя новую технологию, вытесняющую сейчас PCMCIA. USB поддерживает до 127 устройств с помощью гибкой радиальной топологии состоящей из хабов у оконечных устройств. USB имеет несколько версий с последовательно увеличивающимися скоростями передачи, последняя из них -- 2.0. Эта последняя версия USB теоретически поддерживает скорость обмена до 480 MBsec. USB 1.1 поддерживает меньшие скорости, до 12 MBsec. На практике, по ряду причин некоторые устройства фактически работают на меньших скоростях, чем предусмотренные теоретически -- тем не менее, более быстрый интерфейс более перспективен.
Распознавание USB устройств (часть первая)
С точки зрения администрирования, USB работает подобно PCMCIA. Он обслуживается модулем ядра usbcore. В ядрах 2.4+, предусмотрена более совершенная поддержка, чем в ядрах 2.2. На следующем уровне за usbcore, вступает в действие один из следующих модулей: uhci, uhci_hcp, ohci, ohci_hcp, ehci, ehci_hcp. Какой именно модуль понадобится, зависит от чипсета, использованного в вашем компьютере. Модуль ehci подключается, если они поддерживают высокоскоростную передачу по USB 2.0. Вообще же говоря, если ваш компьютер поддерживает ehci (или ehci_hcp), может потребоваться загрузка и модуля ehci для обеспечения обратной совместимости. Книга Брэда Хардса "The Linux USB sub-system" содержит детальное описание соответствий между различными чипсетами и модулями ядра. При создании ядра, которое будет использоваться на различных машинах, вам следует собрать все USB модули.
Для обеспечения корректной поддержки ядра система hotplug должна обеспечивать загрузку любых драйверов, необходимых для обслуживания подключенного устройства USB. Файл /proc/bus/usb/devices содержит детальную информацию о доступных в настоящее время USB устройствах (как хабов, так и периферийных устройств).
Распознавание USB устройств (часть вторая)
Обычно шина USB монтируется как динамически генерируемая файловая система, подобная файловой системе /proc/. В зависимости от дистрибутива, /proc/bus/usb/ может монтироваться или в стартовых скриптах, типа /etc/rcS.d/S02mountvirtfs, или же через конфигурацию /etc/fstab. В последнем случае, вы сможете увидеть там строку подобную следующей:
# /etc/fstab
none /proc/bus/usb usbdevfs defaults 0 0
|
Инициализационный же скрипт может выглядеть следующим образом:
mount -t usbdevfs none /proc/bus/usb
|
Механизмы распознавания устройств и управление всей подсистемой USB кроется в /etc/hotplug/, в первую очередь, в /etc/hotplug/usb.rc и /etc/hotplug/usb.agent. Установка USB устройства будет проводиться через операцию modprobe для нужного драйвера. Вы можете провести и дальнейшую настройку для данного устройства путем создания скрипта /etc/hotplug/usb/$DRIVER для вашего конкретного устройства.