-
Мар2
USB устройства хранения
Filed under: Без рубрики;Автор Marc Fonvieille.
Множество современных устройств хранения используют Universal Serial Bus (USB): жесткие диски, брелоки USB, CD-R приводы, и т.д. FreeBSD предоставляет поддержку этих устройств.
17.5.1. Настройка
Драйвер umass(4) предоставляет поддержку устройств хранения USB. Если вы используете GENERIC ядро, изменять что-либо в настройках не потребуется. Если вы используете настроенное ядро, убедитесь, что в файле настройки присутствуют следующие строки:
device scbus
device da
device pass
device uhci
device ohci
device usb
device umass
Для доступа к устройствам хранения USB драйвер umass(4) использует подсистему SCSI, ваши устройства USB будут видны системе как SCSI устройства. В зависимости от чипсета USB на материнской плате, вам потребуется только один из параметров device uhci или device ohci. Однако, наличие обоих этих параметров не помешает. Не забудьте скомпилировать и установить новое ядро после добавления каких-либо строк.
Замечание: Если ваше USB устройство это пишущий привод CD-R или DVD, необходимо добавить в ядро SCSI CD-ROM драйвер, cd(4), следующей строкой:
device cd
Поскольку устройство записи видно как SCSI диск, драйвер atapicam(4) не должен использоваться в файле настройки.
USB 2.0 контроллеры поддерживаются в FreeBSD; для включения этой поддержки добавьте строку
device ehci
в файл настройки ядра. Обратите внимание, что драйверы uhci(4) и ohci(4) все еще нужны, если необходима поддержка USB 1.X.
17.5.2. Тестирование конфигурации
Конфигурация готова к тестированию, подключите устройство USB, и в буфере системных сообщений (dmesg(8)), диск должен отобразиться примерно так:
umass0: USB Solid state disk, rev 1.10/1.00, addr 2
GEOM: create disk da0 dp=0xc2d74850
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device
da0: 1.000MB/s transfers
da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)
Конечно, производитель, имя устройства (da0) и другие детали могут отличаться в зависимости от конфигурации.
Поскольку устройство USB видится как SCSI, команда camcontrol может быть использована для вывода списка устройств хранения USB, подключенных к системе:
# camcontrol devlist
<Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0)
Если на диске есть файловая система, у вас должна быть возможность смонтировать ее. Разд. 17.3 поможет вам создать и отформатировать разделы на диске USB если потребуется.
Чтобы это устройство мог смонтировать обычный пользователь, необходимо выполнить определенные действия. Для начала, необходимо дать обычным пользователям доступ к устройствам, создаваемым при подключении USB устройства. Решение состоит во включении всех пользователей данных устройств в группу operator. Это делается утилитой pw(8). Затем, когда устройства созданы, у группы operator должен быть доступ на чтение и запись для этих устройств. Это выполняется путем добавления следующих строк в /etc/devfs.rules:
[localrules=1]
add path ‘da*’ mode 0660 group operator
Замечание: Если к системе подключены SCSI диски, это должно быть сделано немного иначе. Так, если в системе уже есть диски с da0 по da2, вторая строка должна выглядеть так:
add path ‘da[3-9]*’ mode 0660 group operator
Это исключит уже существующие диски из группы operator.
Вам также потребуется включить набор правил devfs.rules(5) в файл /etc/rc.conf:
devfs_system_ruleset=»localrules»
Затем, ядро необходимо настроить так, чтобы оно позволяло обычным пользователям монтировать файловые системы. Простейший способ сделать это — добавить в файл /etc/sysctl.conf следующую строку:
vfs.usermount=1
Этот параметр установится только после последующей перезагрузки. Для установки этой переменной можно также использовать sysctl(8).
Последний шаг — создание каталога, куда будет монтироваться файловая система. Каталог должен принадлежать пользователю, монтирующему файловую систему. Один из способов сделать это под пользователем root — создать каталог /mnt/$USER (замените $USER именем пользователя):
# mkdir /mnt/$USER
# chown $USER:$USER /mnt/$USER
Предположим, что USB брелок подключен, и появилось устройство /dev/da0s1. Поскольку эти устройства обычно поставляются форматированными с файловой системой FAT, их можно смонтировать так:
% mount_msdosfs -m 644 -M 755 /dev/da0s1 /mnt/$USER
Если вы отключите устройство (диск должен быть сначала размонтирован), вы должны увидеть в буфере системных сообщений что-то подобное:
umass0: at uhub0 port 1 (addr 2) disconnected
(da0:umass-sim0:0:0:0): lost device
(da0:umass-sim0:0:0:0): removing device entry
GEOM: destroy disk da0 dp=0xc2d74850
umass0: detached
Команда umount(8) принимает в качестве параметра точку монтирования какой-либо файловой системы, имя устройства, опцию -a или -A.
#umount /mnt/$USER
PS:mount -t ufs /dev/da0c /mnt #при монтировать newfs_msdos /dev/da0 #отформатировать в FAT32