Xinput cihazı üreticisini ve modelini belirle?


15

Klavyem ve dokunmatik yüzeyin cihaz üreticisi ve modelini bulmaya çalışıyorum, böylece onu hedefleyen bir XOrg yapılandırma dosyası yazabiliyorum:

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

Bir CLI aracı kullanarak bir cihazın ürününü ve satıcı adını nasıl bulabilirim? Xorg yapılandırmasını özelleştirmek için Bluetooth dokunmatik yüzümü ve klavyemi çivilemek istiyorum.

Yanıtlar:


6

Linux'taki USB aygıtları için şunları kullanabilirsiniz:

lsusb -v | grep -e idProduct -e idVendor

Yalnızca kimlikler için:

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

lsusbkimlikleri isimlere/var/lib/usbutils/usb.ids çevirmek için kullanır , Xorg'un aynı kaynağı kullanıp kullanmayacağını bilmiyorum.


Harika, şimdi USB aygıtlarımı görebiliyorum, ancak aslında Bluetooth bilgilerini bulmam gerekiyor. Bu bilgi tam olarak aradığım şey, sadece Bluetooth cihazlarım için ihtiyacım var. Bluetooth cihazlarında onaltılık satıcı kimliklerini bulabilirim, ancak gerçek satıcı veya ürün adlarını bulamıyorum.
Naftuli Kay

-1, çünkü bu usb olmayan cihazlar için çalışmaz. Ve lsusbçoğu usb aygıtı için bile çalışmaz, çünkü çoğu zaman bir ürün adı göstermez. ManuelSchneid3r cevabı olduğunu, benim için en iyi çalıştı: xinput list.
erik

17

Cihaz Ürün Adı (Model)

Kullanarak xinput cihazının Ürün Adını (veya modelini ) edinin xinput list. Örnek çıktı aşağıdaki gibi görünebilir:

# 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)]

Yukarıdaki çıktıda, Dokunmatik Ekran cihazının modeli veya ürün adı "ELAN Dokunmatik Ekran" dır.

Cihaz Yolu (Düğüm)

Xinput aygıtı Satıcı Adı'nı (veya üreticisini ) almak için sorgulanacak aygıt Yolunu (Aygıt Düğümü de denir) bilmemiz ve sonra sormamız gerekir udevadm info. Bir aygıtın xinput özelliklerini listeleyerek ve 'Aygıt Düğümü' değerini bularak yolu alabilirsiniz.

Önceki örneğimizden, Dokunmatik Ekranın sahip olduğunu söyleyen Cihaz Düğümü değeri şu id=10şekilde bulunabilir:

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

Cihaz Satıcı Adı (Üretici)

Şimdi xinput cihazı Satıcı Adı'nı (veya üreticisini ), yukarıda yol yolumuza sahip olan cihaz için VENDORdöndürülen mülkün değerine bakarak alabiliriz udevadm info:

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

Yukarıdaki çıktıda, Dokunmatik Ekran için üretici veya satıcı adı "ELAN" olacaktır.

XOrg Yapılandırması

Hepsini bir araya getirerek, belirli cihaz satıcılarını, ürünlerini veya yollarını eşleştirmek için yeni bir XOrg yapılandırma InputClassBölümü oluşturabiliriz . Önceki örneklerimizi kullanarak, bu bölüm ELAN Satıcısı tarafından üretilen herhangi bir Dokunmatik Ekran Ürünüyle eşleşir:

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

Sayesinde @ Stéphane , @Daniel ve @ ManuelSchneid3r


1
xinput listyalnızca satıcının ve ürün adını yalnızca boşluk karakteriyle ayrılmış bir satırda gösterir. Benim durumumda Gerçekten Ergonomik Bilgisayar Klavye yerine TrulyErgonomic.com Gerçekten Ergonomik Bilgisayar Klavye oldu . Ancak MatchProducther iki dizeyle de çalışıyor gibi görünüyor: satıcı ve ürün adı (listelendiği gibi xinput list) veya yalnızca ürün adı (listelendiği gibi udevadm).
erik

1

MatchProduct "Product Name"Stephane'nin önerisinin çıktısı ile çalışmaz lsusb -v | grep -e idProduct -e idVendor. Sadece test ettim.

xinput list ile çalışan doğru dizeyi çıktılar MatchProduct


xinput listHem satıcıyı hem de ürünü birlikte listeliyor mu ? Hangisinin nasıl çözüleceğini biliyor musunuz?
Sparhawk

2
@Sparhawk xinput list, Ürün adını gösterir ancak Satıcı adını göstermez. udevadm infoSatıcı adını gösterir ancak Ürün adını göstermez.
Christopher

@Christopher Bu bilgiyi neden istediğimi gerçekten hatırlayamıyorum, ancak yanıtladığınız için teşekkürler ve umarım başka birine yardımcı olabilir.
Sparhawk

@Christopher: Hayır, xinput listhem satıcının hem de ürün adını bir satırda boşlukla ayrılmış olarak gösterin. Sadece ürün adını bulmak için @ DanielK'nin cevabını kullanmam gerekiyordu. Ancak boşluk yerine _ değerini udevadmgösterir . Kullanımı daha kolay veya ile eşleşen MatchUSBID olabilir . lsusblsusb -v
erik

Tamam, sadece test ettim: Hem xinput listsatıcıdan gelen tüm dize, hem de ürün adı (en azından benim durumumda) ve sadece ürün adı ( _ karakterleri boşluklarla udevadmdeğiştirmekten aldım) ile çalışır.
erik

1

Aşağıdaki komutları xorg.conf yapılandırmasıyla kullanmak için model / satıcı bulmakta yararlı buldum.

Kaynaktan https://bbs.archlinux.org/viewtopic.php?pid=753773 : (burada / dev / SDX hedef aygıtın cihazı yolu ile değiştirilir, yani / dev / giriş / mouse1)

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

Http://fedoraproject.org/wiki/Input_device_configuration'a göre :

udevadm info --export-db | grep ID_MODEL

Ancak bu , boşluk yerine _ ile ürün adlarını listeler . Benim durumumda , Gerçekten Ergonomik Bilgisayar Klavyesi yerine Truly_Ergonomic_Computer_Keyboard oldu . doğru bir şekilde gösterir, ancak satıcı ve ürün adını tek bir satırda birlikte gösterir. xinput list
erik
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.