Подключение и использование USB-устройств
Статья включает:
Стек USB реализован как отдельный процесс менеджера io-usb. При инициализации стек подгружает один или несколько драйверов host-контроллеров:
После успешной инициализации host-контроллеров, которых может быть несколько, появляется возможность опросить USB шину на предмет подключенных устройств. Выполнить это можно с помощью утилиты usb:
# pidin -P io-usb mem pid tid name prio STATE code data stack 4103 1 io-usb 10r SIGWAITINFO 132K 908K 24K(516K)* 4103 2 io-usb 10r RECEIVE 132K 908K 8192(20K) ... 4103 7 io-usb 10r RECEIVE 132K 908K 4096(20K) libc-ksz.so.3 @b0300000 744K 20K devu-uhci.so @b8200000 28K 8192 devu-ohci.so @b8209000 28K 8192 devu-ehci.so @b8212000 44K 8192 devu-xhci.so @b821f000 68K 8192 /dev/mem @40100000 (df030000) 64K # # # usb USB 0 (XHCI) v1.10, v1.01 DDK, v1.01 HCD Device Address : 1 Vendor : 0x1a2c (SIGMACHIP) Product : 0x0044 (Usb Mouse) Class : 0x00 (Independent per interface)
Подробнее о принципах функционирования стека можно прочитать в статье Обзор стека и библиотеки USB.
![]() | Если Вы не уверены в том, какой host-контроллер должен используется в конкретном случае, целесообразно запустить стек с полным перечнем драйверов:
io-usb -dxhci -dehci -duhci -dohci |
Если загрузочный образ использует менеджер diskboot (см. Примеры файлов построения), то при подключении USB Mass Storage устройств должен автоматически запуститься сервис devb-umass. При этом для каждого подключенного носителя информации должно быть создано соответствующее устройство. Может быть один из двух вариантов именования:
/dev/umass0t*
– вместо символа *
будет указан численный тип файловой системы /dev/hd1t*
– индекс диска 1
может отличаться, вместо символа *
будет указан численный тип файловой системы devb-umass может не быть запущен в образах, которые не используют diskboot. В этом случае можно запустить его следующим образом:
devb-umass
Автоматически USB Mass Storage устройства монтируются в каталоге /fs
, например, в качестве /fs/usb0
. Если автоматического монтирования не произошло по той или иной причине, смонтировать носитель можно вручную. На примере носителя с файловой системой FAT32 (тип файловой системы имеет код 12):
mount -t dos /dev/umass0t12 /fs/dos
Завершая работу с USB Mass Storage устройством, следует его корректно отмонтировать:
sync umount /fs/dos sync
Рассмотрим способ форматирования USB Mass Storage устройств на примере файловой системы FAT32 (тип файловой системы имеет код 12).
![]() | Всё содержимое носителя будет удалено. |
Если накопитель уже содержит таблицу разделов MBR, ее следует удалить. Обратите внимание, следующие команды должны быть вызваны не для раздела /dev/umass0t12
, а для всего накопителя:
fdisk /dev/umass0 delete -a
При добавлении нового раздела необходимо указать тип файловой системы. Пример добавления раздела размером 1Gb для последующего форматирования в файловую систему FAT32:
fdisk /dev/umass0 add -t 12 1G
Новая таблица разделов устройства должна быть учтена системой:
mount -e /dev/umass0
Заключительным шагом должно стать собственно форматирование подготовленного раздела:
mkdosfs /dev/umass0t12
Предыдущий раздел: перейти