update_drv - デバイスドライバ属性の変更
update_drv [-f | -v] [-n] driver_module
update_drv [-b basedir] [-f | -v] [-n] -a [-m 'permission'] [-i 'identify-name'] [-P 'privilege'] [-p 'policy'] driver_module
update_drv [-b basedir] [-f | -v] [-n] -d [-m 'permission'] [-i 'identify-name'] [-P 'privilege'] [-p 'policy'] driver_module
update_drv コマンドは、インストールされているデバイスドライバへの属性変更に関する情報をシステムに通知します。このコマンドを使用すると、driver.conf(4) ファイルを再読み込みしたり、ドライバマイナーノードのアクセス権や別名を追加、変更、または削除したりすることができます。
オプションを指定しないと、update_drv は driver.conf ファイルを再読み込みします。
別名が正常に更新された場合、ドライバのバインドは、再構成ブートまたはデバイスのホットプラグで有効になります。
アクセス権が正常に更新された場合は、新しいドライバマイナーノードのみが、変更された一連のファイルアクセス権を使用して作成されます。 既存のドライバマイナーノードは変更されません。
サポートしているオプションは、次のとおりです。
アクセス権、別名、特権、またはポリシーのエントリを追加します。
–a オプションを指定した場合は、アクセス権エントリ (–m オプションを使用)、ドライバの別名エントリ (–i オプションを使用)、デバイス特権 (–P オプションを使用)、またはデバイスポリシー (–p オプションを使用) を追加または更新できます。一致する (同じドライバ名とマイナーノードを持つ) マイナーノードアクセス権エントリが検出された場合は、置き換えられます。一致する (異なるドライバ名と同じ別名を持つ) 別名エントリが検出された場合は、エラーが報告されます。
–a オプションと –d オプションは相互に排他的です。
ドライバを、update_drv を実行しているシステムにインストールするのではなく、basedir というルートディレクトリを持つシステムでインストールまたは変更します。
アクセス権、別名、特権、またはポリシーのエントリを削除します。
–d オプションでは、–m permission、–i identify-name、–P privilege、または –p policy オプションを指定する必要があります。
–d オプションと –a オプションは相互に排他的です。
エントリが存在しない場合、update_drv はエラーを返します。
ドライバモジュールを読み込み解除できない場合でも、システムで強制的に driver.conf ファイルを再読み込みするようにします。詳細は、「注意事項」のセクションを参照してください。
このオプションを指定しないで、ドライバの別名を削除した場合、update_drv は、次回のブート時にバインドファイルを更新します。ただし、このドライバの別名のバインドを参照しているデバイスが 1 つ以上残っている場合はエラーを返します。–f オプションを指定した場合、update_drv はそのようなデバイスが残っていてもエラーを返しません。
ドライバの別名をスペースで区切ったリスト。–a または –d オプションが指定されていない場合、このオプションは無視されます。identify-name 文字列は必須です。すべての別名を削除する必要がある場合は、rem_drv(1M) をお勧めします。
デバイスドライバのデバイスノードに対するファイルシステムアクセス権のスペースで区切られたリストを指定します。–a または –d オプションが指定されていない場合、このオプションは無視されます。permission 文字列は必須です。
device_driver のロードや接続を試みず、そのドライバのシステム構成ファイルの変更だけを行います。
–a オプションを指定した場合、policy は、完全なデバイスポリシーのスペースで区切られたリストです。 –d オプションの場合、ポリシーは、マイナーデバイス指定のスペースで区切られたリストです。マイナーデバイス指定は、/etc/security/device_policy 内のエントリに対して正確に照合されます。つまり、ワイルドカードの照合は実行されません。
–a オプションを指定した場合、privilege は、追加のドライバ特権のコンマで区切られたリストです。–d オプションの場合、privilege は 1 つの特権です。これらの特権は /etc/security/extra_privs ファイルに追加されるか、またはこのファイルから削除されます。
冗長。
次のコマンドは、clone ドライバの既存のマイナーアクセス権エントリを追加または変更します。
example# update_drv -a -m 'llc1 777 joe staff' clone使用例 2 すべてのマイナーアクセス権エントリの削除
次のコマンドは、USB プリンタドライバである usbprn ドライバのすべてのマイナーアクセス権エントリを削除します。
example# update_drv -d -m '* 0666 root sys' usbprn使用例 3 ドライバ別名エントリの追加
次のコマンドは、ugen ドライバのドライバ別名エントリを usb459,20 の識別文字列を使用して追加します。
example# update_drv -a -i '"usb459,20"' ugen使用例 4 ohci ドライバのための driver.conf ファイルの再読み込み
次のコマンドは、driver.conf(4) ファイルを再読み込みします。
example# update_drv ohci使用例 5 tcp ソケットを開くために自己定義の特権を必要にする
次のコマンドは、tcp ソケットを開くために自己定義の特権を必要にします。
example# update_drv -a -P net_tcp -p \ 'write_priv_set=net_tcp read_priv_set=net_tcp' tcp使用例 6 パス指向の別名の確立
次のコマンドは、パス指向の別名を確立して、特定のドライバ qlt が強制的に特定のデバイスパスに使用されるようにします。
example# update_drv -a -i '"/pci@8,600000/SUNW,qlc@4"' qlt
次の終了ステータスが返されます。
正常終了。
エラーが発生した。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
add_drv(1M), modunload(1M), rem_drv(1M), driver.conf(4), attributes(5), privileges(5)
–a または –d オプションが指定されている場合、update_drv は driver.conf ファイルを再読み込みしません。
driver.conf ファイルを強制的に更新すると、ドライババイナリモジュールを再読み込みすることなく、driver.conf ファイルが再読み込みされます。この場合は、切り離せないデバイスが古い driver.conf ファイルのドライバ大域プロパティーを参照するのに対して、残りのドライバインスタンスは新しい driver.conf ファイル内の大域プロパティーを参照します。
別名を追加することができます。これにより、すでに別のドライバによって管理されているデバイスのドライバのバインドが変更されます。–a オプションを使用して強制的に更新すると、新しいドライバにバインドしようとし、それができない場合はエラーを報告します。–m、–i、–P、または –p オプションのうちの複数を指定した場合は、強制フラグによって別名またはアクセス権の変更が試みられます。これはほかの操作が失敗した場合でも実行され、その逆も同じです。