TrackPoint nach Debian-Update schwer zu kontrollieren

8

Ich bin auf Debian-Tests und nach dem Neustart (nach einer Betriebszeit von ungefähr 3 Wochen, die eine Reihe von Paketaktualisierungen beinhaltete, glaube ich, einschließlich des Kernels) neulich die Feineinstellung - was ein Golfer Putten nennen würde - der Mauszeigerposition wird sehr schwer, es fühlt sich an, als würde sich der Zeiger noch bewegen, obwohl sich der Trackpoint bereits wieder in seiner Mittelposition befindet. Die Verwendung des Trackpoints macht keinen Spaß mehr. Es dauert Sekunden, nur eine Reihe von Wörtern auszuwählen.

Ich denke nicht, dass es nur eine Trackpoint-Leistungskonfigurationseinstellung ist. Dies kann ein Schwellenwert oder die Deaktivierung eines cleveren Algorithmus (oder die Aktivierung eines Möchtegern-cleveren Algorithmus) sein, um die Benutzerfreundlichkeit des Trackpoints zu verbessern.

Dies ist eine externe USB-Tastatur von IBM / Lenovo (es handelt sich nicht um einen ThinkPad-Laptop, obwohl ich diese Frage mit "thinkpad" markiert habe, da es noch kein "Trackpoint" -Tag gibt und mein aktueller Ruf die Erstellung von Tags nicht zulässt).

Meine xinput Version:

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

Und hier die Requisiten des Geräts:

$ 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"

Update Ich habe vergessen, dass es 2 Geräte gibt, die relevant sein könnten. Dieses sieht tatsächlich relevanter aus als das Synaptikgerät:

$ 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

Hast du eine Idee, welchen Knopf du drehen sollst?

Update Ich habe die oben genannten Eigenschaften von denen eines anderen Computers (eines Lenovo-Laptops, auf dem TrackPoint einwandfrei funktioniert) unterschieden, auf dem auch Debian-Tests ausgeführt werden, und sie sind genau identisch. Die Version von xinput ist ebenfalls dieselbe. Ich denke, wir können die xinput-Version sowie die xinput-Einstellungen für diese Geräte von unseren Überlegungen ausschließen. Ich werde versuchen, eine andere IBM USB-Tastatur in die Hand zu nehmen und zu prüfen, ob es sich schließlich nicht um ein Hardwareproblem handelt ...

[Das Folgende ist eine Bearbeitung dieser Frage von Barry Grumbine (danke, Mann), die von https://unix.stackexchange.com/users/2180/shawn-j-goff abgelehnt wurde (nein danke, Mann). Da ich es sehr nützlich finde und Shawns Ablehnung diese Informationen vor mir (bis jetzt) ​​und anderen verborgen hat, werde ich sie hier einfügen:]

Zusätzliche Informationen
Es gibt einen offenen Debian-Fehlerbericht, der meines Erachtens dieses Problem beschreibt. # 682413 Das Problem scheint mit dem Kernelmodul synaptics_usb in Zusammenhang zu stehen . Laut synaptics_usb.c , Zeile 30:

[...] Touchstick-Unterstützung wurde noch nicht viel getestet [...]

Eugene Beresovsky
quelle
Sie vermissen den evdevTreiber, ich habe ähnliche Dinge auf Gentoo erlebt. Können Sie alle xf86-input-*Pakete auflisten, die Sie installiert haben?
Gänseblümchen
Namenskonvention unterscheidet sich in debian, aber ich habe folgendes xserver-xorg-input-*installiert s: evdev, synaptics, wacom, intel. Es gibt ungefähr ein Dutzend weitere, die ich nicht installiert habe und die nichts miteinander zu tun haben.
Eugene Beresovsky

Antworten:

4

Ich hatte genau das gleiche Problem, aber ich glaube, ich habe endlich eine Lösung gefunden.

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

Ermöglicht, dass der Touchstick / Trackpoint im Nahbereich stabil ist, dh wenn versucht wird, Text auszuwählen. Ändern Sie die '3' nach oben oder unten, bis Sie etwas bekommen, das Ihnen gefällt. Ich habe 2, 3 und 4 ausprobiert und mich für '3' entschieden. Dann spielen Sie mit,

xset m 5 1

um die Beschleunigung anzupassen. Die '5' ist der Beschleunigungsmultiplikator und '1' ist die Anzahl der Pixel, die Sie benötigen, um den Cursor zu bewegen, bevor die Beschleunigung einsetzt. Mit '5' kann ich gut über den Bildschirm fahren.

Als letztes müssen Sie diese Einstellungen in meine .xinitrc-Datei integrieren:

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

Ich habe all diese Informationen im ArchWiki gefunden .

Schlussbemerkung: Ich denke, dieses Problem ist aufgetreten, weil das kürzlich hinzugefügte Kernelmodul synaptics_usb keine vernünftigen Standardeinstellungen für den Trackpoint hat, sodass das Problem vom neuen Kernelmodul "aufgedeckt" wurde, aber kein Problem mit synaptics_usb selbst.

[EDIT:] Weitere Informationen Meine .xinitrc funktioniert nicht unter Debian Testing / LightDM / XFCE. Ich weiß nicht warum. Beschlossen, die xorg.conf-Optimierung durchzuführen.

Erstellt die Konfigurationsdatei:

$ 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

Neustart, immer noch keine Würfel. Ich habe herausgefunden, dass die XFCE die Xorg-Konfiguration überschreibt, also habe ich sie entfernt:

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

Neustart erneut, funktioniert wie erwartet.

Einige meiner Hinweise zur Fehlerbehebung :

# 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

Weitere Referenzen

Xorg PointerAcceleration Wiki xorg.conf Manpage

Barry Grumbine
quelle
Danke Barry. Nachdem ich in den letzten 5 Jahren mehr als 5 ThinkPads und diese USB-Tastatur verwendet habe, hatte ich nie Grund, mich mit den Beschleunigungs- / Verzögerungseinstellungen zu beschäftigen. Ich habe mit Ihren Einstellungen oben herumgespielt und obwohl sie es besser machen, ist das Setzen des Cursors immer noch nicht glatt. Ich frage mich, ob es eine Möglichkeit gibt, einfach das Standardverhalten einzuschalten. Ich habe Device Accel Profile (ohne weitere Änderungen) ausprobiert , aber es ist auch nicht perfekt.
Eugene Beresovsky
1
Nun ja ... wir sind mit Debian Testing. Ich muss ein bisschen Fremdheit erwarten. Ich frage mich, welche Gerätebeschleunigungsprofile Sie ausprobiert haben. Ich habe noch nicht mit dieser Geräteeigenschaft gespielt. Die Dokumentation zu X.Org PointerAcceleration scheint darauf hinzudeuten, dass sie mit dem Wert _threshold zusammenhängt (in meinem Beispiel die '1'). Vielleicht würde eine Änderung der Schwelle einen Unterschied machen. Außerdem wird angegeben, dass AccelerationProfile 1 gerätespezifisch für synaptisch sein kann und AccelerationProfile 2 das empfohlene Profil ist.
Barry Grumbine
Barry, als beste (und einzige;) Antwort hast du das Kopfgeld verdient! Ich habe gerade mit einer anderen ähnlichen Tastatur bestätigt, dass es sich nicht um ein Hardwareproblem handelt. Wenn also kein weiterer einzeiliger Fix zum Kopieren und Einfügen angezeigt wird, muss ich wohl die xinput-Regler fummeln. Vielen Dank für Ihre ausführliche Antwort!
Eugene Beresovsky
+1 - Ich versuche, Ihnen die Bearbeitung meiner Frage (siehe Ende der Frage) zu würdigen, indem ich Ihren Kommentar hier unten abstimme. Da die Bearbeitung von jemand anderem abgelehnt wurde, konnte ich dies nicht tun, indem ich die Bearbeitung einfach so akzeptierte, wie es normalerweise der Fall wäre.
Eugene Beresovsky
1

Es gibt tatsächlich einige Probleme mit dem synaptics_usb-Treiber mit Trackpoint. Selbst mit den hier erwähnten Verbesserungen ist es immer noch ziemlich schmerzhaft. Ein Patch ist verfügbar unter http://thread.gmane.org/gmane.linux.kernel.input/31935, obwohl ich ihn nicht getestet habe.

Ich fand, dass die schnellste Lösung darin besteht, zum USBBID-Treiber zurückzukehren. Leider werden Synaptics-Geräte standardmäßig von versteckten Macken auf die schwarze Liste gesetzt (ignoriert), um keine Konflikte für das Gerät zu verursachen. Glücklicherweise gibt es zumindest in neueren Kerneln eine Möglichkeit, die Signatur aufzuheben, indem die USB-ID und das spezielle Flag an versteckte Macken übergeben werden.

Sammeln Sie zunächst die Informationen zum USB-Gerät:

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

Wenn usbhid als Modul geladen ist (lsmod | grep usbhid), erstellen Sie Folgendes:

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

Dann können Sie testen durch:

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

Wenn usbhid wie in meiner Distribution in den Kernel kompiliert wird, muss es zu den Kernel-Boot-Parametern hinzugefügt werden. In meinem Fall (CentOS 7) habe ich Folgendes getan:

 /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

Dann neu starten! Der Trackpoint sollte jetzt von usbhid erkannt werden.

dbran
quelle