O touchpad é registrado como ponteiro no X

2

Eu comprei um novo laptop ASUS K501U e instalei o Ubuntu 16.04 nele. Estou executando o kernel 4.7, apesar de ter o mesmo problema em 4.3. Recursos multitouch como a rolagem com dois dedos não estão funcionando. O touchpad é um touchpad da Elantech, e o Ubuntu não parece apoiá-lo além dos drivers genéricos.

Eu brinquei bastante com a configuração do X. Se eu definir o driver como libinput ou evdev , parece não funcionar com multitouch e synaptics gera erros. O dispositivo é denominado FTE1001:00 0B05:0101 , que é o endereço I2C do dispositivo, e X o detecta como um ponteiro em vez de um touchpad, o que parece ser o problema. Parece que o Ubuntu não reconhece o dispositivo e, por padrão, assume que é um ponteiro. Portanto, como posso dizer ao Ubuntu para reconhecê-lo como um touchpad, não como um ponteiro? A configuração para isso é no X ou no udev?

Para ficar claro, isso funciona (em uma entrada de arquivo x.conf.d ):

Section "InputClass"
        Identifier "psmouse pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

e isso não acontece:

Section "InputClass"
        Identifier "psmouse pointer catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Além disso, quando atualizei meu kernel para 4.7, notei que o DKMS estava tendo problemas ao criar o driver psmouse :

/var/lib/dkms/psmouse/elantech-x551c/build/src/cypress_ps2.c: In function ‘cypress_process_packet’:
/var/lib/dkms/psmouse/elantech-x551c/build/src/cypress_ps2.c:543:2: error: too few arguments to function ‘input_mt_assign_slots’
  input_mt_assign_slots(input, slots, pos, n);

Eu adicionei um 0 como um quinto argumento pela definição de input_mt_assign_slots da biblioteca multitouch do kernel do Linux, e então o DKMS pareceu criar e instalar corretamente: psmouse elantech-x551c . No entanto, se eu definir o driver para psmouse na configuração do X, X diz que não pode carregar o módulo (eu nem mesmo entendo o que psmouse é para que possa ser totalmente ingênuo). Qual relacionamento o driver psmouse tem para os drivers como evdev e libinput ?

Quando executo xinput --list-props com minha configuração atual, recebo isso:

Device 'FTE1001:00 0B05:0101':
    Device Enabled (137):   1
    Coordinate Transformation Matrix (139): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (263): 0
    Device Accel Constant Deceleration (264):   1.000000
    Device Accel Adaptive Deceleration (265):   1.000000
    Device Accel Velocity Scaling (266):    10.000000
    Device Product ID (259):    2821, 257
    Device Node (258):  "/dev/input/event14"
    Evdev Axis Inversion (267): 0, 0
    Evdev Axes Swap (269):  0
    Axis Labels (270):  "Rel X" (147), "Rel Y" (148), "Rel Vert Wheel" (262)
    Button Labels (271):    "Button Left" (140), "Button Unknown" (261), "Button Right" (142), "Button Wheel Up" (143), "Button Wheel Down" (144), "Button Horiz Wheel Left" (145), "Button Horiz Wheel Right" (146)
    Evdev Scrolling Distance (272): 1, 1, 1
    Evdev Middle Button Emulation (273):    0
    Evdev Middle Button Timeout (274):  50
    Evdev Third Button Emulation (275): 0
    Evdev Third Button Emulation Timeout (276): 1000
    Evdev Third Button Emulation Button (277):  3
    Evdev Third Button Emulation Threshold (278):   20
    Evdev Wheel Emulation (279):    0
    Evdev Wheel Emulation Axes (280):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (281):    10
    Evdev Wheel Emulation Timeout (282):    200
    Evdev Wheel Emulation Button (283): 4
    Evdev Drag Lock Buttons (284):  0

O que mais uma vez parece implicar que o Ubuntu está reconhecendo-o como mouse, em vez de como um touchpad.

tl; dr O Ubuntu não reconhece meu touchpad Elantech e assume que é um ponteiro em vez de um touchpad.

    
por singerng 23.08.2016 / 01:32

1 resposta

0

Encontrei algo aqui :

  

Primeiro, se você não tiver certeza de que seu computador foi criado com um touchpad Elantech, abra um terminal e digite o seguinte:

cat /proc/bus/input/devices
     

Você deve encontrar um bloco contendo uma linha parecida com esta, confirmando que você está em um touchpad da Elantech:

N: Name="ETPS/2 Elantech Touchpad"
     

Faça download de este arquivo (da página de relatórios de erros do Ubuntu).

     

Abra um terminal e siga estes passos (depois da [linha] 4, você não terá nenhum mouse):

cd ~/Downloads
sudo dkms ldtarball psmouse-elantech-x551c.tar.gz
sudo dkms install -m psmouse -v elantech-x551c
sudo rmmod psmouse
sudo modprobe psmouse
     

Aproveite o multitouch!

     

Fonte: O touchpad / touchpad da Elantech carece de recursos multitouch

Eu verifiquei os links, eles são do launchpad. Além disso, o número de comentários sugere que a página é genuína, embora ainda não exista uma classificação WOT; Se alguém quiser avaliar a página no WOT, por favor. Se for uma classificação negativa, informe-me também nos comentários e irei excluir essa resposta até encontrar outra fonte.

    
por EKons 30.08.2016 / 18:21