Determina o fabricante e modelo do dispositivo xinput?

13

Estou tentando encontrar o fabricante do dispositivo e o modelo do meu teclado e touch pad para que eu possa escrever um arquivo de configuração do XOrg direcionado a ele por:

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

Como posso descobrir o nome do produto e do fornecedor de um dispositivo usando uma ferramenta CLI? Eu gostaria de pregar meu touchpad e teclado Bluetooth para poder adaptar a configuração do Xorg.

    
por Naftuli Kay 10.12.2012 / 21:30

4 respostas

5

Para dispositivos USB no Linux, você pode usar:

lsusb -v | grep -e idProduct -e idVendor

Apenas para os IDs:

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

lsusb usa /var/lib/usbutils/usb.ids para traduzir ids para nomes , não sei se o Xorg usaria a mesma fonte.

    
por 10.12.2012 / 22:29
12

Nome do Produto do Dispositivo (Modelo)

Obtenha o nome do produto do dispositivo xinput (ou modelo ) usando xinput list . Exemplo de saída pode ser algo como isto:

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

Na saída acima, o modelo ou nome do produto para o dispositivo Touchscreen é "ELAN Touchscreen".

Caminho do dispositivo (nó)

Para obter o nome do fornecedor do dispositivo de xinput (ou fabricante ), precisamos conhecer o caminho do dispositivo (também chamado Nó do dispositivo) para consultar e, em seguida, perguntar udevadm info . Você pode obter o caminho listando as propriedades xinput de um dispositivo e encontrando o valor 'Device Node'.

Em nosso exemplo anterior, o valor do Nó do dispositivo para a tela sensível ao toque, que diz ter id=10 , pode ser encontrado assim:

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

Nome do fornecedor do dispositivo (fabricante)

Agora podemos obter o nome do fornecedor do dispositivo de xinput (ou fabricante ) observando o valor da propriedade VENDOR retornada por udevadm info para o dispositivo com o nome do caminho encontrado acima:

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

Na saída acima, o nome do fabricante ou fornecedor da tela sensível ao toque seria "ELAN".

Configuração do XOrg

Juntando tudo, podemos criar um novo InputClass Seção para corresponder a fornecedores de dispositivos, produtos ou caminhos específicos. Usando nossos exemplos anteriores, esta seção corresponde a qualquer Produto Touchscreen fabricado pelo Fornecedor da ELAN:

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

Graças a @ Stéphane , @ Daniel e @ ManuelSchneid3r

    
por 04.08.2015 / 10:36
1

MatchProduct "Product Name" não funciona com a saída da sugestão de Stephane lsusb -v | grep -e idProduct -e idVendor . Eu apenas testei isso.

xinput list exibe a string correta que funciona com MatchProduct

    
por 17.04.2013 / 11:56
1

Eu encontrei os seguintes comandos para ser útil em encontrar o modelo / fornecedor para uso com a configuração do xorg.conf.

De link : (onde / dev / sdx é substituído pelo caminho do dispositivo do dispositivo de destino, por exemplo, / dev / input / mouse1)

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

De acordo com o link :

udevadm info --export-db | grep ID_MODEL
    
por 18.10.2014 / 20:18

Tags