USB quirk を追加 ― 2009年03月11日 09時52分58秒
まず、繋いだ時に出る dmesg がこれ。これは、7.1-RELEASE での出力と作業になる。8-CURRENT では既に、USB の実装が変わっているので若干手に入る情報が違っていたりする。
% dmesg
umass0: <vendor 0x05e3 USB TO IDE, class 0/0, rev 2.00/0.33, addr 3> on uh
ub1
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <IBM-DTCA -24090 0811> Fixed Direct Access SCSI-0 device
da0: 40.000MB/s transfers
da0: 3909MB (8007552 512 byte sectors: 255H 63S/T 498C)
dmesg に出てきた、ベンダ ID を元に探してみる。
% cd /usr/src/sys/dev/usb
% find . -type f | xargs grep -i 5e3
./usbdevs:vendor GENESYS 0x05e3 Genesys Logic
GENESYS が出てきた。
今度は、GENESYS で探してみる。
% find . -type f | xargs grep -i GENESYS
./udbp.c: if ((uaa->vendor == USB_VENDOR_GENESYS &&
./udbp.c: uaa->product == USB_PRODUCT_GENESYS_GL620USB))
./umass.c: { USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE, RID_WIL
DCARD,
./umass.c: { USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE_2, RID_W
ILDCARD,
./umass.c: { USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB, RID_WILDCAR
D,
./umass.c: { USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB_2, RID_WILDC
ARD,
./usbdevs:vendor GENESYS 0x05e3 Genesys Logic
./usbdevs:/* Genesys Logic products */
./usbdevs:product GENESYS GL620USB 0x0501 GL620USB Host-Host interface
./usbdevs:product GENESYS GL650 0x0604 GL650 Hub
./usbdevs:product GENESYS GL641USB 0x0700 GL641USB CompactFlash Card Reade
r
./usbdevs:product GENESYS GL641USB2IDE_2 0x0701 GL641USB USB-IDE Bridge
No 2
./usbdevs:product GENESYS GL641USB2IDE 0x0702 GL641USB USB-IDE Bridge
./usbdevs:product GENESYS GL641USB_2 0x0760 GL641USB 6-in-1 Card Reader
二つの USB2IDE が見つかった。しかし、これではどちらか判らないので更に調べる。実行権限が無かったので sudo にて。
% usbdevs -v
usbdevs: /dev/usb0: Permission denied
usbdevs: /dev/usb1: Permission denied
% sudo usbdevs -v
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, OHCI root hub(0x0000), nVidia(0x0000
), rev 1.00
port 1 powered
port 2 powered
port 3 powered
port 4 powered
port 5 powered
port 6 addr 2: low speed, power 100 mA, config 1, product 0x4d05(0x4d05), vendo
r 0x0461(0x0461), rev 4.41
port 7 powered
port 8 powered
Controller /dev/usb1:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), nVidia(0x0000
), rev 1.00
port 1 powered
port 2 addr 3: high speed, self powered, config 1, USB TO IDE(0x0702), vendor 0
x05e3(0x05e3), rev 0.33
port 3 powered
port 4 addr 2: high speed, power 500 mA, config 1, USB 2.0 Camera(0x62c0), Soni
x Technology Co., Ltd.(0x0c45), rev 2.10
port 5 powered
port 6 powered
port 7 powered
port 8 powered
そこで、もう一度調べてみる。
% find . -type f | xargs grep -i 0x0702
./usbdevs:product GENESYS GL641USB2IDE 0x0702 GL641USB USB-IDE Bridge
umass.c を編集する。NO_SYNCHRONIZE_CACHE を追加した。
% vi umass.c
static struct umass_devdescr_t umass_devdescrs[] = {
{ USB_VENDOR_ADDONICS2, USB_PRODUCT_ADDONICS2_CABLE_205, RID_WILDCARD,
UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
NO_QUIRKS
},
...
{ USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE, RID_WILDCARD,
UMASS_PROTO_ATAPI | UMASS_PROTO_BBB,
FORCE_SHORT_INQUIRY | NO_START_STOP | IGNORE_RESIDUE
| NO_SYNCHRONIZE_CACHE
},
,,,
しかし、この表をみてみると、この USB 変換アダプタは実装していないコマンドが多い。
カーネルを入れ換えた後は、
GEOM_JOURNAL: BIO_FLUSH not supported by da0p1.
が出なくなった。
前回。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2009/03/11/4167334/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。