USBD.CONF(5)

名称
usbd.conf - usbd(8) の設定ファイル

解説
usbd.conf ファイルは、 usbd(8) デーモン用の設定ファイルです。 カーネルの usb(4) サブシステムが報告したイベントに対応するユーザランドコマンドを 実行可能とするために、情報を提供します。 現在のところ、イベントはデバイスの接続と切り離しのみですが、 将来的には電源制御機能も含めて拡張可能です。

設定ファイルは、ソートされたエントリリストから成ります。 各エントリは、事象コマンドの集合を記述します。 イベント発生時には、事象がチェックされ合致すると、 このイベントに対応するコマンドがシェルを通じて実行されます。 リストは、ソートされて、先頭から末尾まで走査されます。 最初にマッチしたエントリが、イベントに対して使用されます。

各エントリはいくつかのフィールドから成ります。 フィールドには 3 種類あり、 記述フィールドと、選択事象と、イベント発生時に実行するコマンドです。 フィールド名には大文字小文字の区別があり、すべて小文字であるべきです。 各フィールドは 1 個以上の引数を取り得ます。

次のフィールドを使用可能です:

device string
    新規エントリを開始します。 string は任意の文字列であり、綺麗に表示するために使用されます。

product id
    プロダクト Id。

vendor id
    ベンダ Id。

release id
    リリース Id。リビジョン Id と呼ばれることもあります。

class id
    デバイスクラス。

subclass id
    デバイスサブクラス。

protocol id
    デバイスプロトコル。

devname string
    デバイス名であり、例えば umass2 や ums0 です。 これらのデバイス名には、正規表現を含み得ます。 regex(3) と re_format(7) を参照してください。 マッチしたデバイス名は、${DEVNAME} を文字列中のどこかに追加することで、 後述のコマンドにおいて使用可能です。

文字列引数は括ることができます。 文字列引数に空白やタブ文字を含む場合には、 文字列引数をシングルクォートまたはダブルクォートで括る必要があります。 引数にシングルクォートまたはダブルクォートを含む場合、 それぞれダブルクォートまたはシングルクォートで括る必要があります。 後述の使用例を参照してください。

数値引数は、10 進数 (42)、8 進数 (052)、16 進数 (0x2a) の いずれでも指定可能です。

フィールド product, vendor, release, class, subclass, protocol に対する値は、 usbd デーモンを殺してから -d と -v のフラグを付けて起動することにより取得可能です。

アクションがマッチした場合に実行するコマンド:

attach string
    デバイスが接続されたときに実行されるシェルコマンド。

detach string
    デバイスが切り離されたときに実行されるシェルコマンド。

使用例
Iomega USB Zip Drive の接続に際して、SCSI バスを再スキャンするサンプルエントリ:

       device "USB Zip drive"
          product 0x0001
          vendor  0x059b
          release 0x0100
          attach "/usr/bin/camcontrol rescan bus 0"

新規に接続されたマウスに対して moused を起動するには:

       device "Mouse"
          devname "ums[0-9]+"
          attach "/usr/sbin/moused -p /dev/${DEVNAME} -I /var/run/moused.${DEVNAME}.pid"

関連ファイル
/etc/usbd.conf
    usbd の設定ファイル

関連項目
usb(4), usbd(8), usbdevs(8)

バグ
現在のところ、選択項目を複数回使用できません。 例えば、複数個のベンダ ID を指定できません。

作者
usbd の設定ファイルのマニュアルページは Nick Hibma <n_hibma@FreeBSD.org> が記述しました。