USBマスストレージ(FDD、リムーバブルディスク、 メモリカードリーダなど)のドライバです。
動作対象のデバイスとしては以下のようなものがあります。 ただし、すべての製品が動作するとは限りません。 特に、CD/DVDドライブはまだサポートしていません。
今のところ動作状況に関するデータがまだ全くないため、 「この製品は動くか?」「どの製品なら動くか?」といったような 個別の製品に関する質問にはお答えできません。 後述の説明に従って自分で確認してください。
作者は下記のデバイスでテストしています。
初めてBeOSでUSBを使う場合は、まずUSBコントローラがUHCIであることを確認してください。 現在BeOSはOHCIをサポートしていません。 また、BIOS設定で「Plug and Play OS installed」という項目がある場合、Noに設定します。 BeOSで使えるUSBデバイス(キーボード、マウスなど)をお持ちの場合は、 それが動作することを確認してください。
本ドライバのインストールの前に、 USBKitのサンプルプログラムinfoでデバイスの種類を確認します。 なお、R5には新しいusb_rawドライバが入っているので、 USBKitのusbrawは不要です(コンパイルできません)。 デバイスを接続し、infoで[Interface 0]のデバイスクラスを見てください ([Device]の方は無視してください)。 下記のように、Classが8でProtocolが0であれば動作する可能性があります。
$ ./info /dev/bus/usb/0/0 [Device] : : [Configuration 0] [Interface 0] Class ............. 8 Subclass .......... 4 Protocol .......... 0 : :
下記のように、Protocolが0でないものはまだ動作しません。
: : [interface 0] Class ............. 8 Subclass .......... 6 Protocol .......... 80 : :
下記のようなものは通常そのままでは動作しません。作者に連絡してください。
: : [interface 0] Class ............. 255 Subclass .......... 0 Protocol .......... 0 : :
動作しそうであれば、make installでドライバをインストールします。 再起動の必要はありません。 アンインストールにはmake uninstallします。
デバイスを接続します。 /dev/disk/usb/0/0/rawのようなデバイスファイルが現れるはずです。 lsで確認してください。 DriveSetupやmountvolumeを使ってデバイスをマウントします。 正常に動作せず止まってしまった場合はUSBコネクタを抜いてみてください。
開発の参考とするため、動作・不動作に関わらず、作者に報告をお願いします。 ハードウェア構成・infoの出力・動作状況を添えてください。 動作しない場合は/var/log/syslogも送ってください (~/config/settings/kernel/drivers/kernelで syslog_debug_output trueを有効にして再起動し、 syslogに現れるデバッグ出力を送ってください)。
今のBeOSのUSBバスマネージャには重大なバグがあるので、 それが直るまでは上記項目(とくにCBとBulk-onlyのサポート)は改善しないでしょう。
ここでは、まずUSBマスストレージデバイスの基礎知識について解説し、 それに基づいてデバイスの動作可否の見通しを述べます。 本ドライバの動作状況を理解するために重要な内容ですのでぜひ読んでください。
USBデバイスは、「クラス」とよばれる分類がされており、 各クラスごとに制御手順が標準化されています。 そのため、同一のクラスに属するデバイスは、メーカーや製品の違いにかかわらず、 基本的には単一のドライバ(クラスドライバ)でサポート可能です (デバイスクラス標準に準拠しない製品は専用ドライバが必要になります)。 主なクラスの例は以下の通りです。
クラス番号 | クラス | ||||||||
---|---|---|---|---|---|---|---|---|---|
0 | 指定なし | ||||||||
1 | オーディオ | ||||||||
2 | コミュニケーション(モデム、LANなど) | ||||||||
3 | ヒューマンインタフェースデバイス(HID)7 | プリンタ
| 8 | マスストレージ(大容量記憶装置) | 9 | ハブ
| 255 | メーカー独自
| |
本ドライバがサポートするのはクラス8のマスストレージクラスです。 ちなみに、このクラスに属するデバイスは、Windowsでは一般に 「USB大容量記憶装置」として認識されます(専用ドライバがない場合)。
クラスの下位分類として「サブクラス」があり、 さらに下位分類として「プロトコル」があります。 クラスによってサブクラスとプロトコルの詳細は異なりますが、 マスストレージクラスでは、サブクラスはコマンドセット(SCSI,ATAPIなど)、 プロトコルはUSBバス上でのコマンドやデータのやりとりの方式(トランスポート)を表します。 サブクラスはどれもSCSIを基にしているので大きな違いはありません。 これに対して、プロトコルは違いが大きく、 コマンド出力・データ入出力・ステータス入力のそれぞれに USBのどの転送方式を使うかによって、以下の3種類があります。
プロトコル番号 | プロトコル名称 | コマンド | データ | ステータス |
---|---|---|---|---|
0 | CBI | コントロール転送 | バルク転送 | インタラプト転送 |
1 | CB | コントロール転送 | バルク転送 | なし |
80 | Bulk-only | バルク転送 |
CBIとCBは同じようなものですが、これらとBulk-onlyはまったく異なります。 したがって、USBマスストレージクラスのドライバは、大まかにいって CBIとBulk-onlyの両プロトコルに対応する必要があることになります。
このように、マスストレージクラスでは、ドライバと製品の動作可否は、 製品がCDであるかzipであるかといったこととは直接関係がなく、 その製品が採用しているサブクラスとプロトコル(とくにプロトコル)に左右されます。 市販のUSB製品のクラス・サブクラス・プロトコルが何であるかは、 ほとんどの場合、実際に製品にあたって調べてみなければ (それも、そのためのツールを使わなければ)わかりません。 BeOSでは、USBKitのサンプルプログラムinfoで調べることができます。 大まかな傾向としては、Linuxなどからの情報によると、 以下のようになっているようです。
クラス8、サブクラス4(UFI)、プロトコル0(CBI)が多いようです。
クラス8と思われますが、サブクラス・プロトコルについては情報が得られていません。
クラス8、サブクラス6(SCSI)、プロトコル80(Bulk-only)の製品が確認されていますが、 他のサブクラスやプロトコルの製品があるかもしれません。 また、メモリカードリーダーはマスストレージクラスでない製品もあるようです。
クラス8、プロトコル0(CBI)の製品が確認されていますが、 他のサブクラスやプロトコルの製品があるかもしれません。
USB接続のデジカメは独自クラスのものが多いと思われます。 そのような製品は本ドライバでは動作しません。 しかし、最近の一部の製品にはマスストレージクラスのものがあります (Fuji FinePix 4700z, FinePix 40i, Sony Cybershot F505K, Cybershot S70, CASIO QV-8000SX, QV-3000EX, XV-3など)。 クラス8、サブクラス5(SFF-8070)、プロトコル0(CBI)の製品が確認されていますが、 他のサブクラスやプロトコルの製品があるかもしれません。 いずれにせよ、他の製品ジャンルと比べると、 デジカメにおけるマスストレージクラスの製品の割合は小さいものです。 また、静止画キャプチャデバイスクラスが最近標準化されたので、 今後はこのクラスの製品も出てくるかもしれません。
これもカメラと同様で、多くの製品は独自クラスと思われますが、 一部にマスストレージクラスのものがあります (SANYO SSP-PD7、GreenHouse KANA2000など)。 サブクラス・プロトコルについては情報が得られていません。
以上の内容をふまえて、本ドライバでの動作可否ですが、 まずマスストレージクラスでないデジカメやオーディオプレーヤーは決して動作しません。 また、Bulk-onlyのサポートがまだ動作していないので、Bulk-onlyのデバイスも動作しません。 さらに、これはクラスとは直接関係ありませんが、 512バイト/セクタでない媒体に対応していないので、CD/DVDは動作しません。 ということで、現状で動く可能性が比較的高いデバイスはFDD・LS-120・デジカメということになります。
このドキュメントをよく読んで、デバイスのサポート状況を確認してください。 それでも動かない場合は、ハードウェア構成、infoの出力、動作状況、 /var/log/syslogを添えて作者に報告してください。 ただし、対処できるとは限りません。
本パッケージはフリーソフトです。 Copyright (C) 2000 ITO, Takayuki. All rights reserved.