Oracle® Solaris 11.2 デバイスドライバの記述

印刷ビューの終了

更新: 2014 年 9 月
 
 

互換デバイス名

Oracle Solaris ソフトウェアは、各デバイス内に保持された識別情報に基づいて、USB バインド用に互換デバイス名の順序付きリストを構築します。この情報にはデバイスクラス、サブクラス、ベンダー ID、製品 ID、リビジョン、プロトコルが含まれています。USB のクラスやサブクラスの一覧については、http://www.usb.org/home を参照してください。

この名前の階層では、デバイス固有のドライバが使用可能でない場合には汎用ドライバへのバインドが可能です。汎用ドライバの例としては、クラス固有のドライバが挙げられます。usbif で始まるデバイス名は、単一インタフェースのデバイスを表します。例については、Example 20–1 を参照してください。USBA 2.0 フレームワーク は、あるデバイスのすべての互換名を定義します。これらのデバイス名を表示するには、Example 20–2 に示すように prtconf コマンドを使用します。

次の例は、USB マウスデバイスの互換デバイス名の例を示したものです。このマウスデバイスは、全体が単一のドライバによって制御される複合ノードを表します。USBA 2.0 フレームワーク はこのデバイスノードに、例に示す名前を表示された順番で与えます。

使用例 20-1  USB マウスの互換デバイス名
1. 'usb430,100.102'      Vendor 430, product 100, revision 102
2. 'usb430,100'      Vendor 430, product 100
3. 'usbif430,class3.1.2' Vendor 430, class 3, subclass 1, protocol 2
4. 'usbif430,class3.1'   Vendor 430, class 3, subclass 1
5. 'usbif430,class3'     Vendor 430, class 3
6. 'usbif,class3.1.2'    Class 3, subclass 1, protocol 2
7. 'usbif,class3.1'      Class 3, subclass 1
8. 'usbif,class3'    Class 3

上の例の名前は、具体的な名前から一般的な名前の順に並んでいます。エントリ 1 は、特定ベンダーの特定製品の特定リビジョンにしかバインドしません。エントリ 3、4、5 は、ベンダー 430 によって製造されたクラス 3 デバイス用です。エントリ 6、7、8 は、任意のベンダーのクラス 3 デバイス用です。バインド処理では、最上位の名前から下向きに、名前の一致が検索されます。バインドするためには、ドライバをシステムに追加する際に、これらの名前のいずれかに一致する別名を使用する必要があります。ドライバを追加するときに、バインド先となる互換デバイス名のリストを取得するには、prtconf –vp コマンドの出力に含まれるデバイスの compatible プロパティーをチェックします。

次の例は、キーボードとマウスの互換プロパティーリストを示したものです。バインドされたドライバを表示するには、prtconf –D コマンドを使用します。

使用例 20-2  構成出力コマンドによって表示された互換デバイス名
# prtconf -vD | grep compatible
            compatible: 'usb430,5.200' + 'usb430,5' + 'usbif430,class3.1.1'
+ 'usbif430,class3.1' + 'usbif430,class3' + 'usbif,class3.1.1' +
'usbif,class3.1' + 'usbif,class3'
            compatible: 'usb2222,2071.200' + 'usb2222,2071' +
'usbif2222,class3.1.2' + 'usbif2222,class3.1' + 'usbif2222,class3' +
'usbif,class3.1.2' + 'usbif,class3.1' + 'usbif,class3'

デバイスやデバイスグループのドライバをより正確に特定するには、できるだけ具体的な名前を使用してください。特定製品の特定リビジョン向けに記述されたドライバをバインドするには、一致する名前の中でもっとも具体的なものを使用します。たとえば、ベンダー 430 によって製品 100 のリビジョン 102 向けに記述された USB マウスドライバがある場合は、次のコマンドを使用してそのドライバをシステムに追加します。

add_drv -n -i '"usb430,100.102"' specific_mouse_driver

ベンダー 430 の任意の USB マウス (クラス 3、サブクラス 1、プロトコル 2) 向けに記述されたドライバを追加するには、次のコマンドを使用します。

add_drv -n -i '"usbif430,class3.1.2"' more_generic_mouse_driver

これらのドライバを両方ともインストールしたあとで互換デバイスを接続すると、接続されたデバイスにシステムによって正しいドライバがバインドされます。たとえば、これらのドライバを両方ともインストールしたあとでベンダー 430、モデル 100、リビジョン 102 のデバイスを接続すると、そのデバイスは specific_mouse_driver にバインドされます。ベンダー 430、モデル 98 のデバイスを接続すると、そのデバイスは more_generic_mouse_driver にバインドされます。別のベンダーのマウスを接続すると、そのデバイスも more_generic_mouse_driver にバインドされます。特定のデバイスで複数のドライバが使用可能である場合、ドライババインディングフレームワークは、互換名リスト内で先に最初に一致した互換名を持つドライバを選択します。