玄箱USB-storage覚え書き
murasakiに無縁に生きてきた自分にとっては訳解らない事が沢山あって困ります。usbのリフレッシュはどうしたらいいのでしょう?デバイスの情報はどこから取るの?等々。そしてusb-storageではまりました。誰も「認識しないのが悪い」的な言い方に終始していて大いに弱ったのでメモ。
- デバイスの情報は/vat/log/messageに出て来る。ここでscsiデバイスとして見えない場合はモジュールが足りない。sd_modまで入れれば良い。その下層にはusb-storageやscsi_mod、usb-ohci等があるはず。
- scsiデバイスとして認識されてもまだsdデバイスとして出て来ない場合もある。玄箱hackbbsなどで結論が出ていないのはこれ。結局該当するvendoridとprodidがドライバにないからどういう処理をして良いのかわからないという事なのだろうから、そこはmurasakiで補完する。以下、認識しなかったはずの物を認識させてみる。
- 具体的には、/proc/bus/usb以下に情報を出す様にusbfsをmountしておいて、/proc/bus/usb/devicesを見て、現在ささっているstorageなものを探し出す。たとえばこう。
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms T: Bus=03 Lev=02 Prnt=04 Port=00 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=067b ProdID=2517 Rev= 0.01 S: Manufacturer=USB FLASH MEMORY: S: Product=USB Mass Storage Device
- ここからVendor=067b ProdID=2517を得て、それがsd_modだという事に関連づければsd*として見える様になる。その関連付け表がmurasaki.usbmod。玄箱内にはalias-sdというセットがあるので、このvendorでこのprodだったらalias-sdを呼ぶ様にさせる。murasaki.usbmapの先頭に書式があるし、同種のデバイスの行をコピペしても良い。
ここでは他の同様なデバイスのvendoridとprodidを目的の物に書き換えて、
alias-sd 0x0003 0x067b 0X2517 0x0 0x0 0x0 0x0 0x0 0x00 0x00 0x00 0x00000000
とする。
-
- ちなみにalias-sdはmurasaki.dependで定義されている。具体的には以下の様になっている。
alias-sd: usb-storage scsi_mod sd_mod
hub.c: new USB device 00:0e.2-2.1, assigned address 5 usb.c: USB device 5 (vend/prod 0x67b/0x2517) is not claimed by any active driver . SCSI subsystem driver Revision: 1.00 Initializing USB Mass Storage driver... usb.c: registered new driver usb-storage scsi0 : SCSI emulation for USB Mass Storage devices Vendor: USB Model: FLASH MEMORY: Rev: P1.0 Type: Direct-Access ANSI SCSI revision: 02 WARNING: USB Mass Storage data integrity not assured USB Mass Storage device found at 5 USB Mass Storage support registered. Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0 usb-storage: task-switchin SCSI device sda: 64000 512-byte hdwr sectors (33 MB) sda: Write Protect is off sda:<7>usb-storage: task-switchin sda1
めでたしめでたし。
既視感?
結局id:aoshimak:20050602:p1と同じ事をしているのです。OSが違おうが使えると思ったドライバを無理矢理適応させるやり方は一緒です。