/proc/bus/usb/devices の内容 |
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0411 ProdID=001a Rev= 1.10 S: Manufacturer=MELCO INC. S: Product=MELCO USB2-IDE Bridge C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=02 Prot=50 Driver=usb-storage E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
7行目 I: で、Class=0x08 は Mass Storage クラス、Subclass=0x02 は CD-ROM
クラスです。カーネルが自動認識します。
使用モジュールは、scsi_mod, sr_mod, sg, usb-storage です。 コンソール(syslog)の出力 |
Vendor: PHILIPS Model: 321240 CDRW Rev: 1.0C Type: CD-ROM ANSI SCSI revision: 02 Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0 sr0: scsi3-mmc drive: 40x/40x writer cd/rw xa/form2 cdda tray |
中身は PHILIPS のドライブでした。 読み込みスピードを計ってみると、 |
# dd if=/dev/scd0 of=/dev/null bs=1M count=100 100+0 records in 100+0 records out 104857600 bytes transferred in 34.368034 seconds (3051021 bytes/sec) |
3000KB÷150KB=20 約20倍速でまずまず。 このケースは中身のドライブを入れ換えて使うこともできます。 ハードディスクをつないでみると、/procのdevices情報の Subclass が 0x06 の Transparent SCSI になって(エライ!!)、やはりカーネルに自動認識されます。 使用モジュールは、scsi_mod, sd_mod, usb-storage です。 手持ちのHDDをつないだときのコンソール(syslog)の出力 |
Vendor: IBM Model: DJNA-351520 Rev: J56O Type: Direct-Access ANSI SCSI revision: 02 Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 SCSI device sda: 30033360 512-byte hdwr sectors (15377 MB) sda: sda1 sda2 sda3 sda4 < sda5 sda6 > |
スピードを計測してみました。 |
# dd if=/dev/sda of=/dev/null bs=1M count=100 100+0 records in 100+0 records out 104857600 bytes transferred in 6.854374 seconds (15297911 bytes/sec) |
サブマシンのIDEに直接つないだときのスピードも約15MB/秒だったので、 このHDDの性能をフルに出しているようです。 最近の100GオーバーのHDDだとUSB2.0の限界の480Mbpsにいどめるのでしょうが、 あいにく持っていないのであしからず。 |
カーネルコンフィグで CONFIG_SCSI_MULTI_LUN=y にする必要あり。
/proc/bus/usb/devices の内容 |
T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1276 ProdID=5602 Rev= 1.02 S: Manufacturer=SUNPLUS S: Product=SPGT-5602 S: SerialNumber=A00000001 C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage E: Ad=86(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=07(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms |
8行目 I: で、Class=0x08 は Mass Storage クラス、Subclass=0x06 は
Transparent SCSI クラスです。カーネルが自動認識します。
使用モジュールは、scsi_mod, sd_mod, usb-storage です。 64MB CFカードを挿入時のコンソール(syslog)の出力 |
scsi0 : SCSI emulation for USB Mass Storage devices Vendor: Card R/W Model: CF Rev: 0101 Type: Direct-Access ANSI SCSI revision: 02 Vendor: Card R/W Model: SM Rev: 0101 Type: Direct-Access ANSI SCSI revision: 02 Vendor: Card R/W Model: SD/MMC Rev: 0101 Type: Direct-Access ANSI SCSI revision: 02 Vendor: Card R/W Model: MS Rev: 0101 Type: Direct-Access ANSI SCSI revision: 02 Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0 Attached scsi removable disk sdb at scsi0, channel 0, id 0, lun 1 Attached scsi removable disk sdc at scsi0, channel 0, id 0, lun 2 Attached scsi removable disk sdd at scsi0, channel 0, id 0, lun 3 SCSI device sda: 125184 512-byte hdwr sectors (64 MB) sda: Write Protect is off sda: sda1 sdb : no medium. sdc : no medium. sdd : no medium. |
カーネル2.6.0では上の表示とは少し違うようになりました。 リムーバブルデバイスの処理方法が変更されたようです。 転送速度は USB1.1なので、カーネル2.6.0を使って1020KB/秒程度、 カーネル2.4.23では uhciを使って940KB/秒程度です。 その後、友人のSMカードとメモリースティックが、それぞれ /dev/sdb, /dev/sdd でアクセスできることを確認しました。 |
素のカーネルで動かなかったので、パッチを作って当てた。 (2.6.23用、 2.6.18用、 2.6.14用、 2.4.23用) (16 Oct. 07) /proc/bus/usb/devices の内容 |
T: Bus=04 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=094f ProdID=0101 Rev= 0.00 S: Manufacturer=Yano Electric Co.,Ltd. S: Product=USB/ATAPI Bridge C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=02 Prot=00 Driver=usb-storage E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=83(I) Atr=03(Int.) MxPS= 2 Ivl=1ms |
7行目 I: で、Class=0xff は Vendor specific (ベンダー独自仕様)。
パッチを当てたカーネルが自動認識します。 使用モジュールは、scsi_mod, sd_mod, usb-storage です。 640MB MOを挿入時のコンソール(syslog)の出力 |
Vendor: FUJITSU Model: M25-MCC3064AP Rev: 0051 Type: Optical Device ANSI SCSI revision: 02 SCSI device sda: 310352 2048-byte hdwr sectors (636 MB) sda: Write Protect is off sda: sda1 sda2 sda3 sda4 |
転送速度は USB1.1なので、カーネル2.6.0を使って1010KB/秒程度、 カーネル2.4.23では uhciを使って940KB/秒程度です。 |
/proc/bus/usb/devices の内容 |
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=04c5 ProdID=102c Rev=11.00 S: Manufacturer=FUJITSU S: Product=USB Magneto-Optical Device S: SerialNumber=0048015084009000 C:* #Ifs= 1 Cfg#= 2 Atr=c0 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=05 Prot=50 Driver=usb-storage E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=83(I) Atr=03(Int.) MxPS= 2 Ivl=16ms |
USB1.1しかないPCにつないだので Spd=12 になっているが、このドライブは
USB2.0対応らしい。
I:行で Prot=50 バルクなのに、最後の E:行 Atr=03(Int.) があるのは不思議だ。 640MB MOを挿入時のコンソール(syslog)の出力 |
Vendor: FUJITSU Model: MCM3064UB Rev: 0010 Type: Direct-Access ANSI SCSI revision: 02 Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0 SCSI device sda: 310352 2048-byte hdwr sectors (636 MB) sda: Write Protect is off sda: sda1 sda2 sda3 |
特に問題なく動いた。
|
/proc/bus/usb/devices の内容 |
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0693 ProdID=0002 Rev= 1.11 S: Manufacturer=Hagiwara Sys-Com S: Product=SmartMedia R/W S: SerialNumber=C0000002383A C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms |
64MB SMカードを挿入時のコンソール(syslog)の出力 |
Vendor: HAGIWARA Model: SmartMedia R/W Rev: 1.11 Type: Direct-Access ANSI SCSI revision: 02 Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0 SCSI device sda: 128000 512-byte hdwr sectors (66 MB) sda: Write Protect is off sda: sda1 |
特に問題なく動いた。
|
/proc/bus/usb/devices の内容 |
T: Bus=04 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 5 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=04cf ProdID=8818 Rev=b0.07 S: Manufacturer=Myson Century, Inc. S: Product=USB Mass Storage Device S: SerialNumber=100 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 10mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=05 Prot=50 Driver=usb-storage E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
使用チップは MYSON CENTURY CS8818G-107 0552B051X1 80GのHDDを繋いで速度テストをする。( dd コマンドで ) 最大速度は、Read 22.0MB/s, Write 12.9MB/s であった。 これはこのチップの限界であろう。 (15 Nov. 05) |
/proc/bus/usb/devices の内容 |
T: Bus=05 Lev=01 Prnt=01 Port=05 Cnt=01 Dev#= 3 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=058f ProdID=6390 Rev= 1.00 S: Manufacturer=Generic S: Product=USB TO IDE Bridge C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms |
コンソール出力には接続しているHDDのメーカーとモデル名は表示されず、
以下の固定文字が出るだけ。 Vendor: Generic Model: USB Disk 最大速度は、80GのHTS541680J9AT00を繋いで、ddコマンドで Read 27.7MB/s 。 (31 Mar. 07) |