この節では、この Solaris リリースで拡張された USB ドライバの機能について説明します。
新しい汎用 USB ドライバ – Unix 標準の read(2) および write(2) システムコールを使って、アプリケーションから USB デバイスのアクセスおよび操作を実行できるようになりました。特別なカーネルドライバを記述する必要はありません。次の機能が追加されています。
アプリケーションから raw デバイスのデータおよびステータスにアクセスできます。
制御転送、バルク転送、および割り込み (入力と出力) 転送がサポートされます。
ugen は、USBA 1.0 フレームワークに対応するポート上でのみサポートされています。
ポートが USBA 1.0 フレームワークに対応するかどうか確認するためには、デバイスをポートに接続します。それから prtconf -D コマンドを実行します。prtconf -D による階層ツリーには、ポートに接続されているデバイスが表示されます。ただし、その時点では「デバイス」としてドライバに結合されていません。その名前に ohci、ehci、または uhci が含まれるドライバを示すエントリを prtconf の階層ツリーから探してください。ohci、ehci、または uhci エントリはホストコントローラを表します。ホストコントローラのドライバ名が usba10_で始まっている場合は、そのサブツリーにあるデバイスは USBA 1.0 フレームワークに対応します。
詳細については、ugen(7D) のマニュアルページ、および次の Web サイトで USB DDK を参照してください。
http://developers.sun.com/solaris/developer/support/driver/usb.html |
Digi Edgeport USB のサポート – シリアルポート変換デバイス用に複数の Digi Edgeport のサポートを提供します。
新しいデバイスは、/dev/term/[0-9]* および /dev/cua/[0-9]* としてアクセスします。
USB シリアルポートは、ローカルシリアルコンソールとして使用できない点を除き、ほかのシリアルポートと同様に使用できます。USB シリアルポートのデータが USB ポートを使用して転送されますが、このことをユーザーは意識する必要はありません。
x86 プラットフォーム – Digi Edgeport USB シリアルドライバは、USBA 1.0 フレームワーク上でのみサポートされます。それぞれのフレームワークをどのポートに対応させるか決定するための情報については、前節の ugen に関する部分を参照してください。
詳細については、usbser_edge(7D) を参照するか、http://www.digi.com および http://www.sun.com/io を参照してください。
ユーザーが記述したカーネルおよびユーザー独自のドライバの文書サポートおよびバイナリサポート – Solaris USB Driver Development Kit (DDK) を利用できます。DDK に関する情報など、USB ドライバの開発に関する最新の情報については、次の Web サイトを参照してください。
http://developers.sun.com/solaris/developer/support/driver/usb.html |
EHCI ドライバには、次の特徴があります。
USB 2.0 をサポートする拡張ホストコントローラインタフェースに準拠しています。
高速の制御転送、バルク転送、および割り込み転送をサポートします。
現在、高速のアイソクロナス (isochronous、等時性) トランザクションまたは分割トランザクションはサポートされていません。たとえば、USB 1.x デバイスは、USB 2.0 ポートに接続された 2.0 ハブに接続することはできません。
システムに USB 2.0 および USB 1.x デバイスが実装されている場合には、EHCI ドライバおよび OHCI ドライバは、システムに接続されているデバイスの種類に応じてデバイス制御を渡します。
USB 2.0 PCI カードには、1 つの EHCI コントローラおよび 1 つ以上の OHCI コントローラが組み込まれています。
USB 1.1 デバイスを接続すると、OHCI コントローラに動的に割り当てられます。USB 2.0 デバイスを接続すると、EHCI コントローラに動的に割り当てられます。