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


15

キーボードとタッチパッドのデバイスの製造元とモデルを探して、XOrg構成ファイルをターゲットに書き込みます:

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

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

回答:


6

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

lsusb -v | grep -e idProduct -e idVendor

IDのみ:

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

lsusb用途は、/var/lib/usbutils/usb.ids変換するIDS名前は、私はXorgのは、同じソースを使用するかどうかはわかりません。


すごい、今ではUSBデバイスを見ることができますが、実際にはBluetooth情報を見つける必要があります。この情報はまさに私が探しているもので、Bluetoothデバイスに必要です。Bluetoothデバイスで16進ベンダーIDを見つけることはできますが、実際のベンダー名または製品名を見つけることはできません。
ナフトゥリケイ

-1これは非USBデバイスでは機能しないためです。またlsusb、製品名が表示されないことが多いため、すべてのusbデバイスに対しても機能しません。ManuelSchneid3rの答えは私にとって最もうまくいきましたxinput list
エリック

17

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

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

# 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デバイスのベンダー名(またはメーカー)を取得するには、クエリするデバイスパス(デバイスノードとも呼ばれます)を知ってからを尋ねる必要がありますudevadm info。パスを取得するには、デバイスのxinputプロパティをリストし、「デバイスノード」値を見つけます。

前の例から、タッチスクリーンのデバイスノードの値は、次のid=10ようになります。

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

デバイスベンダー名(メーカー)

これで、上記のパス名を持つデバイスに対して返されるプロパティの値を調べることで、xinputデバイスのベンダー名(またはメーカー)を取得できます。VENDORudevadm info

# 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

おかげで@ステファン@Daniel@ ManuelSchneid3r


1
xinput listベンダー名と製品名の両方を1行で、スペース文字のみで区切って表示します。私の場合は、Truly Ergonomic Computer KeyboardではなくTrulyErgonomic.com Truly Ergonomic Computer Keyboardでした。しかしMatchProduct、両方の文字列で動作するようです:ベンダーと製品名(リストにあるxinput list)または製品名のみ(リストにあるudevadm)。
エリック

1

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

xinput list 動作する正しい文字列を出力します MatchProduct


DOESのxinput listリスト、ベンダーと製品の両方を一緒?どっちがどれなのかを知っていますか?
スパラフーク

2
@Sparhawk xinput listは製品名を表示しますが、ベンダー名は表示しません。udevadm infoベンダー名は表示されますが、製品名は表示されません。
クリストファー

@Christopherこの情報が必要な理由を実際に思い出すことはできませんが、返信してくれてありがとう。
スパルフ

@Christopher:いいえ、xinput listベンダー名と製品名の両方を1行でスペースで区切って表示します。製品名のみを見つけるには、@ DanielKの回答を使用する必要がありました。しかし、udevadmショー_スペースの代わりに。より使いやすいのは、lsusbまたはで見つかったMatchUSBIDlsusb -vです。
エリック

[OK]を、私はちょうどそれをテストした:それはから文字列全体との両方で動作しますxinput listベンダーと製品名である、(少なくとも私の場合)、および製品名を持つだけ(私はからもらったudevadm交換_スペースで文字を。
エリック

1

次のコマンドは、xorg.conf構成で使用するモデル/ベンダーを見つけるのに役立つことがわかりました。

https://bbs.archlinux.org/viewtopic.php?pid=753773から:(/ 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

ただし、これはスペースの代わりに_を使用して製品名をリストします。私の場合、それはTruly Ergonomic Computer KeyboardではなくTruly_Ergonomic_Computer_Keyboardでした。正しく表示されますが、ベンダーと製品名が一緒に1行で表示されます。xinput list
エリック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.