Проект переехал на новый домен!  [[ перейти ]]

USB-flash

Монтируем usb-flash брелок...
У меня 4Gb ADATA "myflash".
В ядре должно быть следущее (я убрал для меня не нужное):
#############################################################################
# USB support
device          uhci            # UHCI PCI->USB interface
device          ohci            # OHCI PCI->USB interface
device          ehci            # EHCI PCI->USB interface (USB 2.0)
device          usb             # USB Bus (required)
#device         udbp            # USB Double Bulk Pipe devices
device          ugen            # Generic
device          uhid            # "Human Interface Devices"
device          ukbd            # Keyboard
device          ulpt            # Printer
device          umass           # Disks/Mass storage - Requires scbus and da
device          ums             # Mouse
#device          ural            # Ralink Technology RT2500USB wireless NICs
#device          urio            # Diamond Rio 500 MP3 player
#device          uscanner        # Scanners
#############################################################################
Для поддержки usb 2.0 в ядро добавляем следущее, если отсутствует:
device          ehci            # EHCI PCI->USB interface (USB 2.0)

Дальше по плану собираем компилим перегружаем =)

Проверяем наличее устройства:
sh# ls /dev | grep da
da0
da0s1

da0s1 - то что нам нужно!

Создаю каталог куда буду монтировать:
sh# mkdir -pv /mnt/usb

И монтирую коммандой:
sh# /sbin/mount_msdosfs -m 777 -L ru_RU.KOI8-R -D CP866 /dev/da0s1 /mnt/usb

Где:
-l поддержка длинных имён
-L локаль
-W таблица совместимости
-m права на доступ
ну и собственно откуда и куда монтируем )

Обязательно! Не забывайте отмонтировать прежде, чем вытащить брелок,
иначе это может привести к краху систему (PANIC)

Это же не сложно:
sh# umount /mnt/usb


23.04.2008 
Идём дальше...
Можно сделать автомонтирование нашего брелка...

Автозапуск демона при старте системы:
sh# echo 'devd_enable="YES"' >> /etc/rc.conf

Каталог монтирования!
sh# mkdir -pv /mnt/usb

Конфигурируем демона:
sh# ee /etc/devd.conf
###################################################################################################################
attach 0 { 
device-name "umass0"; 
action "sleep 2 && test -c /dev/da0s1 && /sbin/mount_msdosfs -m 777 -L ru_RU.KOI8-R -D CP866 /dev/da0s1 /mnt/usb"; 
}; 

detach 0 { 
device-name "umass0"; 
action "umount -f /mnt/usb"; 
};
###################################################################################################################

sh# reboot

PS: Наш брелок автоматом монтируется. Но... есть трабл... detach не 
    срабатывает корректно и система впадает в панику...
    ... а значит... отмонтировать на придётся так же... вручную...


Ещё Способ ...
Запускаем демона usbd
sh# usbd -v -d
Он нам выдаст много разного... отыскиваем для нашего устройства данные:
vndr=0x1307, prdct=0x0163, rlse=0x0100 - нам нужно именно это!

или посмотреть что выдаст нам sysctl:
sh# sysctl -a | grep dev.umass
------------------------------------------------------------
dev.umass.0.%desc: USB 2.0 Flash Disk, rev 2.00/1.00, addr 2
dev.umass.0.%driver: umass
dev.umass.0.%location: port=0 interface=0
dev.umass.0.%pnpinfo: vendor=0x1307 product=0x0163 devclass=0x00 devsubclass=0x00 release=0x0100 sernum="04c15a37cd850f" intclass=0x08 intsubclass=0x06
dev.umass.0.%parent: uhub3
------------------------------------------------------------
Соответственно на нужно только эта часть:
vendor=0x1307 product=0x0163 release=0x0100


sh# ee /etc/usbd.conf
##########################################################################################################################
# Мой плеер...
device "Samsung YP-U2"
        vendor  0x04e8
        product 0x5050
        release 0x1001
        attach "sleep 2 && test -c /dev/da0s1 && /sbin/mount_msdosfs -m 777 -L ru_RU.KOI8-R -D CP866 /dev/da0s1 /mnt/usb";
        detach "umount -f /mnt/usb"

# Моя флэшка на 4Gb
device "USB 2.0 Flash Disk"
        vendor  0x1307
        product 0x0163
        release 0x0100
        attach "sleep 2 && test -c /dev/da0s1 && /sbin/mount_msdosfs -m 777 -L ru_RU.KOI8-R -D CP866 /dev/da0s1 /mnt/usb";
        detach "umount -f /mnt/usb"
##########################################################################################################################

ну и...
sh# echo 'usbd_enable="YES"' >> /etc/rc.conf
sh# reboot

Размонтирование по прежнему коряво! (((