USB устройства

Подключение и использование USB-устройств

Статья включает:

USB-стек и общие принципы его работы
Подключение носителей информации (USB Mass Storage)
Форматирование носителей информации (USB Mass Storage)

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.


Note: Если Вы не уверены в том, какой host-контроллер должен используется в конкретном случае, целесообразно запустить стек с полным перечнем драйверов:

io-usb -dxhci -dehci -duhci -dohci


Подключение носителей информации (USB Mass Storage)

Если загрузочный образ использует менеджер diskboot (см. Примеры файлов построения), то при подключении USB Mass Storage устройств должен автоматически запуститься сервис devb-umass. При этом для каждого подключенного носителя информации должно быть создано соответствующее устройство. Может быть один из двух вариантов именования:

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)

Рассмотрим способ форматирования USB Mass Storage устройств на примере файловой системы FAT32 (тип файловой системы имеет код 12).


Caution: Всё содержимое носителя будет удалено.

Если накопитель уже содержит таблицу разделов MBR, ее следует удалить. Обратите внимание, следующие команды должны быть вызваны не для раздела /dev/umass0t12, а для всего накопителя:

fdisk /dev/umass0 delete -a

При добавлении нового раздела необходимо указать тип файловой системы. Пример добавления раздела размером 1Gb для последующего форматирования в файловую систему FAT32:

fdisk /dev/umass0 add -t 12 1G

Новая таблица разделов устройства должна быть учтена системой:

mount -e /dev/umass0

Заключительным шагом должно стать собственно форматирование подготовленного раздела:

mkdosfs /dev/umass0t12




Предыдущий раздел: перейти