web-dev-qa-db-ja.com

xinputデバイスのメーカーとモデルを決定しますか?

デバイスの製造元と、キーボードとタッチパッドのモデルを見つけようとしています。そのため、次の方法で、XOrg構成ファイルを記述できます。

Section "InputClass"
    Identifier "touchpad"
    MatchIsTouchpad "on"
    Driver "synaptics"
    MatchProduct "Product Name"
    MatchVendor "Vendor Name"
EndSection

CLIツールを使用してデバイスの製品とベンダー名を見つけるにはどうすればよいですか? Xorgの構成を調整できるように、Bluetoothタッチパッドとキーボードを固定します。

15
Naftuli Kay

LinuxのUSBデバイスの場合、以下を使用できます。

lsusb -v | grep -e idProduct -e idVendor

IDのみ:

grep . /sys/bus/usb/devices/*/id*

lsusb/var/lib/usbutils/usb.idsを使用してidsnamesに変換します。Xorgが同じソースを使用するかどうかはわかりません。

6

デバイス製品名(モデル)

xinput listを使用して、xinputデバイスの製品名(またはmodel)を取得します。出力例は次のようになります。

# xinput list
⎡ Virtual core pointer                      id=2  [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4  [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=10 [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=13 [slave  pointer  (2)]
⎜   ↳ Logitech Unifying Device. Wireless        id=16 [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3  [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5  [slave  keyboard (3)]
    ↳ Power Button                              id=6  [slave  keyboard (3)]
    ↳ Video Bus                                 id=7  [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12 [slave  keyboard (3)]

上記の出力では、タッチスクリーンデバイスのモデル名または製品名は「ELAN Touchscreen」です。

デバイスパス(ノード)

Xinputデバイスのベンダー名(またはmanufacturer)を取得するには、クエリするデバイスパス(デバイスノードとも呼ばれます)を知ってから、udevadm infoに問い合わせる必要があります。デバイスのxinputプロパティをリストし、「デバイスノード」の値を見つけることで、パスを取得できます。

前の例から、タッチスクリーンのデバイスNodeの値は、id=10があることを示していますが、次のように見つかります。

# xinput list-props 10 | grep 'Device Node'
    Device Node (253):    "/dev/input/event9"

デバイスベンダー名(製造元)

これで、udevadm infoによって返されたVENDORプロパティの値を見て、xinputデバイスのベンダー名(またはmanufacturer)を取得できます。上記で見つかったパス名を持つデバイス:

# udevadm info --query=property --name=/dev/input/event9 | grep 'VENDOR='
ID_VENDOR=ELAN

上記の出力では、タッチスクリーンの製造元またはベンダー名は「ELAN」になります。

XOrgの設定

すべてをまとめると、特定のデバイスベンダー、製品、またはパスに一致する新しい XOrg構成InputClassセクション を作成できます。前の例を使用すると、このセクションは、ELANベンダーによって製造されたすべてのタッチスクリーン製品と一致します。

Section "InputClass"
    Identifier "elan touchscreen catchall"
    MatchDevicePath "/dev/input/event*"
    MatchProduct "Touchscreen"
    MatchVendor "ELAN"
EndSection

@Stéphane@ Daniel 、および @ ManuelSchneid3r に感謝

17
Christopher

MatchProduct "Product Name"は、ステファンの提案の出力では機能しませんlsusb -v | grep -e idProduct -e idVendor。私はそれをテストしました。

xinput listMatchProductで機能する正しい文字列を出力します

1
ManuelSchneid3r

以下のコマンドは、xorg.conf構成で使用するモデル/ベンダーを見つけるのに役立ちます。

From https://bbs.archlinux.org/viewtopic.php?pid=75377 :(/ dev/sdxはターゲットデバイスのデバイスパス、つまり/ dev/input/mouse1に置き換えられます)

udevadm info --query=all --path=$(udevadm info --query=path --name=/dev/sdx)

http://fedoraproject.org/wiki/Input_device_configuration によると:

udevadm info --export-db | grep ID_MODEL
1
Daniel