使用機材:
終わったらコンパイル → インストール → 再起動.# SCSI peripherals device scbus # SCSI bus (required) device da # Direct Access (disks) device pass # Passthrough device (direct SCSI access) # USB support device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface device usb # USB Bus (required) device ugen # Generic device uhid # "Human Interface Devices" device umass # Disks/Mass storage - Requires scbus and da
% usbd
% ps ax | grep usbd
123 ?? Is 0:00.01 usbd
おもむろに MCR-CF2 を USB コネクタにぶっさしてみよう.
ここで tail -f /var/log/messages していると状況を見ることが出来る.
ここで今度は USB デバイスの状況を見てみる.Apr 19 20:04:24 merrow /kernel: umass0: MELCO INC. MCR-CF2, rev 1.10/2.22, addr 2 Apr 19 20:04:25 merrow /kernel: da0 at umass-sim0 bus 0 target 0 lun 0 Apr 19 20:04:25 merrow /kernel: da0: <eUSB Compact Flash > Removable Direct Access SCSI-2 device Apr 19 20:04:25 merrow /kernel: da0: 650KB/s transfers Apr 19 20:04:25 merrow /kernel: da0: 244MB (500400 512 byte sectors: 64H 32S/T 244C)
MCR-CF2 が da0 で認識されているとわかったので,今度は実際にマウントしてみる.% usbdevs -v Controller /dev/usb0: addr 1: self powered, config 1, OHCI root hub(0x0000), AcerLabs(0x0000), rev 0x0100 port 1 powered port 2 addr 2: power 100 mA, config 1, MCR-CF2(0x0015), MELCO INC.(0x0411), rev 0x0222 % camcontrol devlist -v scbus0 on umass-sim0 bus 0: <eUSB Compact Flash > at scbus0 target 0 lun 0 (pass0,da0) scbus-1 on xpt0 bus 0: < > at scbus-1 target -1 lun -1 (xpt0)
マウントポイントは /mnt にする.
無い場合は自分でディレクトリ掘ってください.
コピーも出来ることが確認できたので,あとは umount しよう.% mount -t msdos /dev/da0s1 /mnt % mount -v /dev/ad0s1a on / (ufs, local, writes: sync 103 async 241, reads: sync 514 async 30) procfs on /proc (procfs, local) /dev/da0s1 on /mnt (msdos, local, writes: sync 3 async 8, reads: sync 3 async 0) % cp TESTFILE /mnt/dcim/100olymp/ % ls /mnt/dcim/100olymp/ ./ p3300592.jpg p3300597.jpg p3300602.jpg p3300607.jpg p3300612.jpg ../ p3300593.jpg p3300598.jpg p3300603.jpg p3300608.jpg p4160616.jpg p3300589.jpg p3300594.jpg p3300599.jpg p3300604.jpg p3300609.jpg p4160617.jpg p3300590.jpg p3300595.jpg p3300600.jpg p3300605.jpg p3300610.jpg p4160620.jpg p3300591.jpg p3300596.jpg p3300601.jpg p3300606.jpg p3300611.jpg % ls /mnt/dcim/100olymp/TESTFILE /mnt/dcim/100olymp/TESTFILE
取り外しは USB ポートから引っこ抜くだけ.% umount /mnt
ただし umount してからにしよう.
Apr 19 20:08:16 merrow /kernel: umass0: at uhub0 port 2 (addr 2) disconnected Apr 19 20:08:16 merrow /kernel: (da0:umass-sim0:0:0:0): lost device Apr 19 20:08:16 merrow /kernel: (da0:umass-sim0:0:0:0): removing device entry Apr 19 20:08:16 merrow /kernel: umass0: detached
やることは MCR-CF2 と全く同じなので詳しいコマンドなどは割合.- dmesg
Apr 20 02:00:51 merrow /kernel: umass0: OLYMPUS E-20,E-20N,E-20P, rev 1.10/11.02, addr 2- usbdevs -v
port 2 addr 2: power 100 mA, config 1, E-20,E-20N,E-20P(0x0102), OLYMPUS(0x07b4), rev 0x1102- camcontrol devlist
<OLYMPUS E-20,E-20N,E-20P 1102> at scbus0 target 0 lun 0 (da0,pass0)
これが目的.
しかしどうやっても ugen0 としか認識しない.
とりあえず書き換えたファイルは以下の通り./usr/src/sys/dev/usb/umass.c
/usr/src/sys/dev/usb/usbdevs
/usr/src/sys/dev/usb/usbdevs.h
/usr/src/sys/dev/usb/usbdevs_data.h
/usr/src/sys/cam/scsi/scsi_da.cこの中の DSC デバイスを参考に PEG 用を作ったがやっぱり認識せず.
その後の調査で,ugen0 になっているものは現在まだ対応していないデバイスのようだ.
[bsd-usb:58] で VAIO の USB FDD を刺した人の話を参照.