あおしまの日記

あおしまさんの日記らしいです。個人的に興味がある事を時々書きます。スマートウォッチPebble日本語パックを作成、公開しています。

玄箱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
  • その後、murasakiのデバイスリスト初期化の為にmurasaki.usbを実行してみました。
  • 試しに登録したデバイスは、
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が違おうが使えると思ったドライバを無理矢理適応させるやり方は一緒です。