TrackPoint é difícil de controlar após a atualização do Debian

7

Eu estou no teste da Debian, e após a reinicialização (depois de um período de 3 semanas, incluindo um monte de atualizações de pacotes, acredito que inclua o kernel) no outro dia, o ajuste fino - o que um golfista faria chamar colocando - da posição do ponteiro do mouse fica realmente difícil, parece que o ponteiro ainda está se movendo, embora o trackpoint já está de volta à sua posição central. Usar o trackpoint não é mais divertido, leva apenas alguns segundos para selecionar um monte de palavras.

Eu não acho que seja apenas uma configuração de desempenho do trackpoint. Pode ser algum limite ou a desativação de algum algoritmo inteligente (ou a ativação de um algoritmo inteligente) para melhorar a usabilidade do trackpoint.

Este é um teclado USB externo IBM / Lenovo (não é um laptop ThinkPad, embora eu tenha marcado essa pergunta como 'thinkpad', já que ainda não há tag 'trackpoint' e minha reputação atual não permite a criação de tags) .

Minha versão do xinput:

$ xinput --version
xinput version 1.6.0
XI version on server: 2.2

E aqui os adereços do dispositivo:

$ xinput list-props 10
Device 'Synaptics Inc. Composite TouchPad / TrackPoint':
        Device Enabled (125):   0
        Coordinate Transformation Matrix (127): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (247):     1
        Device Accel Constant Deceleration (248):       2.500000
        Device Accel Adaptive Deceleration (249):       1.000000
        Device Accel Velocity Scaling (250):    12.500000
        Synaptics Edges (251):  1632, 5312, 1572, 4284
        Synaptics Finger (252): 25, 30, 256
        Synaptics Tap Time (253):       180
        Synaptics Tap Move (254):       221
        Synaptics Tap Durations (255):  180, 180, 100
        Synaptics ClickPad (256):       0
        Synaptics Tap FastTap (257):    0
        Synaptics Middle Button Timeout (258):  75
        Synaptics Two-Finger Pressure (259):    282
        Synaptics Two-Finger Width (260):       7
        Synaptics Scrolling Distance (261):     100, 100
        Synaptics Edge Scrolling (262): 1, 0, 0
        Synaptics Two-Finger Scrolling (263):   0, 0
        Synaptics Move Speed (264):     1.000000, 1.750000, 0.039809, 40.000000
        Synaptics Edge Motion Pressure (265):   30, 160
        Synaptics Edge Motion Speed (266):      1, 401
        Synaptics Edge Motion Always (267):     0
        Synaptics Off (268):    0
        Synaptics Locked Drags (269):   0
        Synaptics Locked Drags Timeout (270):   5000
        Synaptics Tap Action (271):     0, 0, 0, 0, 0, 0, 0
        Synaptics Click Action (272):   1, 1, 1
        Synaptics Circular Scrolling (273):     0
        Synaptics Circular Scrolling Distance (274):    0.100000
        Synaptics Circular Scrolling Trigger (275):     0
        Synaptics Circular Pad (276):   0
        Synaptics Palm Detection (277): 0
        Synaptics Palm Dimensions (278):        10, 200
        Synaptics Coasting Speed (279): 20.000000, 50.000000
        Synaptics Pressure Motion (280):        30, 160
        Synaptics Pressure Motion Factor (281): 1.000000, 1.000000
        Synaptics Grab Event Device (282):      1
        Synaptics Gestures (283):       1
        Synaptics Capabilities (284):   1, 1, 1, 1, 1, 1, 1
        Synaptics Pad Resolution (285): 1, 1
        Synaptics Area (286):   0, 0, 0, 0
        Synaptics Noise Cancellation (287):     25, 25
        Device Product ID (242):        1739, 9
        Device Node (243):      "/dev/input/event6"

Atualizar Esqueci que há dois dispositivos que podem ser relevantes, esse parece mais relevante do que o dispositivo de sinápticos:

$ xinput list-props 11
Device 'TPPS/2 IBM TrackPoint':
    Device Enabled (135):   1
    Coordinate Transformation Matrix (137): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (260):     0
    Device Accel Constant Deceleration (261):       1.000000
    Device Accel Adaptive Deceleration (262):       1.000000
    Device Accel Velocity Scaling (263):    10.000000
    Device Product ID (255):        2, 10
    Device Node (256):      "/dev/input/event9"
    Evdev Axis Inversion (302):     0, 0
    Evdev Axes Swap (304):  0
    Axis Labels (305):      "Rel X" (145), "Rel Y" (146)
    Button Labels (306):    "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
    Evdev Middle Button Emulation (307):    0
    Evdev Middle Button Timeout (308):      50
    Evdev Third Button Emulation (309):     0
    Evdev Third Button Emulation Timeout (310):     1000
    Evdev Third Button Emulation Button (311):      3
    Evdev Third Button Emulation Threshold (312):   20
    Evdev Wheel Emulation (313):    0
    Evdev Wheel Emulation Axes (314):       0, 0, 4, 5
    Evdev Wheel Emulation Inertia (315):    10
    Evdev Wheel Emulation Timeout (316):    200
    Evdev Wheel Emulation Button (317):     4
    Evdev Drag Lock Buttons (318):  0

Alguma ideia de qual botão girar?

Atualizar Eu diferenciei as propriedades acima daquelas de outra máquina (um laptop Lenovo onde o TrackPoint funciona bem) também executando testes Debian, e eles são exatamente idênticos. A versão do xinput é a mesma também. Então, eu acho que podemos excluir a versão xinput, bem como as configurações de xinput para esses dispositivos de nossas considerações. Vou tentar colocar minha mão em outro teclado IBM USB e verificar se não é - afinal - um problema de hardware ...

[O que se segue é uma edição desta questão feita por Barry Grumbine (obrigado, cara), que foi rejeitada por link (não obrigado, cara). Porque eu acho muito útil e a rejeição de Shawn escondeu essa informação de mim (até agora) e outros, eu vou colá-la aqui:]

Informações adicionais em Existe um relatório de bugs aberto do Debian que eu acredito que descreve este problema # 682413 O problema parece estar relacionado ao módulo do kernel synaptics_usb . De acordo com synaptics_usb .c , linha 30:

[...] touchstick support has not been tested much yet[...]

    
por Eugene Beresovsky 19.07.2012 / 01:27

2 respostas

3

Eu estava tendo exatamente o mesmo problema, mas acho que finalmente encontrei uma solução.

xinput --set-prop 11 'Device Accel Constant Deceleration' 3

permite que o touchstick / trackpoint seja estável a curta distância, ou seja, ao tentar selecionar texto. Mude o '3' para cima ou para baixo até conseguir algo que goste, tentei 2, 3 e 4 e decidi por '3'. Então brinque com

xset m 5 1

para ajustar a aceleração. O '5' é o multiplicador de aceleração e '1' é o número de pixels que você precisa para mover o cursor antes que a aceleração seja ativada. '5' permite que eu navegue pela tela com facilidade.

A última coisa a fazer é incorporar essas configurações no meu .xinitrc:

xinput --set-prop 11 'Device Accel Constant Deceleration' 3 &
xset m 5 1 &
exec ck-launch-session startxfce4

Encontrei todas essas informações na ArchWiki .

Nota final: Acho que este problema apareceu porque o módulo kernel recentemente adicionado synaptics_usb não possui padrões sãos para o trackpoint, então o problema foi "exposto" pelo novo módulo do kernel, mas não um problema com o próprio synaptics_usb.

[EDIT:] Mais informações Meu .xinitrc não funciona no Debian Testing / LightDM / XFCE, não sei porquê. Decidi fazer os ajustes do xorg.conf.

Criado o arquivo de configuração:

$ cat /usr/share/X11/xorg.conf.d/50-synaptics_trackpoint.conf
Section "InputClass"
        Identifier "Synaptics TrackPoint"
        MatchProduct "Stick"
        # set the following to 1 1 0 respectively to disable acceleration.
        Option "AccelerationNumerator" "5"
        Option "AccelerationDenominator" "1"
        Option "AccelerationThreshold" "1"
        # linear deceleration (mouse speed reduction)
        Option "ConstantDeceleration" "2"
        # some curved deceleration
        Option "AdaptiveDeceleration" "1"
EndSection

Rebooted, ainda sem dados. Eu descobri que o XFCE estava sobrescrevendo a configuração do Xorg, então eu o removi:

$ rm ~/.config/xfce4/xfconf/xfce-perchannel-xml/pointers.xml

Rebooted novamente, funciona como esperado.

Algumas das minhas notas de resolução de problemas :

# Get the current acceleration values.
xinput --get-feedbacks 11

# Get the current deceleration values.
xinput --list-props 11 | grep Deceleration

# What does Xorg know about this?
grep -i stick /var/log/Xorg.0.log

# Set acceleration.
xinput --set-ptr-feedback 11 1 5 1

# Set deceleration.
xinput --set-prop 11 'Device Accel Constant Deceleration' 2

Mais referências

Xorg PointerAcceleration Wiki página do manual xorg.conf

    
por 29.07.2012 / 22:58
1

Existem alguns problemas com o driver synaptics_usb com o Trackpoint. Mesmo com os ajustes mencionados aqui, ainda é muito doloroso. Um patch está disponível link embora eu não tenha testado.

Eu descobri que a correção mais rápida é voltar para o driver usbhid. Infelizmente, os dispositivos Synaptics são colocados na lista negra (ignorados) por padrão por ocultos-bacias, de modo a não causar contenção para o dispositivo. Felizmente existe uma maneira em pelo menos os kernels recentes de ignorar isso passando o ID do USB e o sinalizador especial para ocultos.

Primeiro, colete as informações do dispositivo USB:

$ lsusb
...
Bus 001 Device 008: ID 06cb:0009 Synaptics, Inc. Composite TouchPad and TrackPoint

Se usbhid for carregado como um módulo (lsmod | grep usbhid), crie o seguinte:

/etc/modprobe.d/usbhid.conf:
  options usbhid quirks=0x06cb:0x0009:0x40000000 # 0x4 is to unignore
  blacklist synaptics_usb  # Prevent synaptics_usb from being loaded

Então você pode testar por:

$ sudo rmmod synaptics_usb 
$ sudo rmmod usbhid  (keeping in mind your usb keyboard might stop working here)
$ sudo modprobe usbhid

Se o usbhid for compilado no kernel como estava em minha distribuição, ele precisará ser adicionado aos parâmetros de inicialização do kernel. No meu caso (CentOS 7) eu fiz o seguinte:

 /etc/default/grub:
  GRUB_CMDLINE_LINUX="[...] usbhid.quirks=0x06cb:0x0009:0x40000000"

 $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

 /etc/modprobe.d/synaptics_usb.conf:
  blacklist synaptics_usb

Em seguida, reinicie! O Trackpoint agora deve ser reconhecido pelo usbhid.

    
por 10.04.2015 / 18:46