L530/L430 Trackpoint unter Linux

Was funktioniert bei dir?

  • Nur Touchpad

    Stimmen: 3 15,8%
  • Nur Trackpoint

    Stimmen: 3 15,8%
  • Beides

    Stimmen: 13 68,4%

  • Umfrageteilnehmer
    19

Faule Socke

New member
Registriert
25 Apr. 2013
Beiträge
23
Hallo,

ich hätte mal gerne gewusst, ob alle hier das Problem haben, dass unter Linux entweder

a) Nur das Touchpad (dann aber mit Multitouch), oder
b) Das Touchpad und der Trackpoint funktionieren, dann allerdings ohne Multitouch

Sollte jemand sowohl Multitouch als auch Trackpoint haben (gleichzeitig!), bitte unbedingt melden :) Ich bin dabei, einen Treiber zu entwickeln, der das Problem hoffentlich bald löst.

Gruß Socke
 
Hi,

ich wünsche viel Erfolg bei der Treiberentwicklung! Ist ja kein Zustand so wie es jetzt ist. :D

Hast Du was dagegen den Thread ins Linux-Unterforum verschieben zu lassen? Ist mMn der bessere Treffpunkt für ThinkPad-Benutzer mit Linux.
 
Hallo,
erstmal Respekt, dass du schon in deinem 2. Beitrag solch eine wichtige Aufgabe angehst (bist so garnicht "Faule Socke", Faule Socke :D )
also ich habe genau das selbe Problem und bin bisher auf keine Lösung gekommen (options psmouse elantech=1, options psmouse proto=bare, ...proto=imps, ...exps, ...any und so hab ich schon durch ;) )
Momentan leb ich mit "options psmouse proto=bare" über den Bugfix (mit mittlerer Maustaste fix) aus linrunner's Repository :thumbup:
 
Thema in den Forenbereich "Linux" verschoben.
 
Tja scheinbar scheint tatsächlich jeder das Problem zu haben, der Thread läuft ja schon eine ganze Weile.

Ja supertux, schließlich hocke ich jeden Tag ein paar Stunden vor dem Teil hier und hin und wieder wäre ein Touchpad mal ganz nett (vor allem zum präziseren Scrollen).Ich hätte auch schon lange einen funktionierenden Treiber entwickelt, wäre nicht die Architektur vom psmouse Modul so abartig verpimmelt... Ich überlege derzeit, ein komplett eigenes Modul zu schreiben, aber dann müsste ich mich auch um den Touchpad Code kümmern, das könnte auch nochmal ein kleines gemetzel geben.

Gruß Socke
 
@vpn: Dein Linux kann sowohl Trackpoint als auch Touchpad mit Multitouch (also 2 Finger drauf zum Scrollen oder so) gleichzeitig? Und du hast ein Thinkpad L530 oder L430?
Welche Distribution benutzt du? Kannst du mir mal Ausgaben von den Befehlen "uname -a" und "xinput list" liefern?

@supertux: Jau. Hab bereits das Trackpoint Protokoll "entschlüsselt" und einen Patch entwickelt, sodass ich im Xorg zwischen relativen (Trackpoint) und absoluten (Touchpad) Koordinaten wählen kann, aber eben nicht beides gleichzeitig weil der psmouse Treiber es nicht (einfach) erlaubt, mehrere Devices zu erstellen und es kein Xorg Modul gibt, dass sowohl relative als auch absolute Koordinaten über das selbe Device zu verarbeiten.

Gruß Socke
 
Bei mir funktioniert auch nur jeweils eine der Fuktionen a) oder b). Wäre auch sehr an einer Lösung interessiert!
Liebe Grüße
 
Dein Linux, ist mein Linux. Habe ein fc18 und zuvor nur -Trackpoint unter Linux- gelesen ...

[root@xxx ~]# uname -a
Linux xxx 3.9.11-200.fc18.x86_64 #1 SMP Mon Jul 22 21:04:50 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@xxx ~]# xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=12 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [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)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=13 [slave keyboard (3)]
[root@xxx ~]# killall -u mods
 
Du kannst eben nicht beides haben, du musst jedes mal die Xorg config ändern :( Keine Ahnung, ob das auch dynamisch ginge zur Laufzeit ehrlichgesagt. Habe den Patch hier eingestellt, incl. Xorg config: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/967399

Falls du C kannst, nutze die Gelegenheit und lese den Code, dann wirst du mein Problem verstehen :) (drivers/input/mouse/elantech.c und drivers/input/mouse/psmouse-base.c)

Ich suche leider immernoch einen erfahrenen Kernel Entwickler, der mir sagt, wie genau ich denn jetzt die Ausgabe über zwei Devices implementieren soll, damit der Patch hinterher auch akzeptiert wird und ob es da überhaupt eine gute Möglichkeit gibt. Habe leider nicht so wirklich die Zeit, mich darum zu kümmern da ich wie gesagt mit Trackpoint auch voll zufrieden bin und das Touchpad nur ein nettes Extra wäre :) Aber hier Infos sammeln schadet nicht, es gibt eine gewisse Wahrscheinlichkeit, dass es tatsächlich nur ein Bug und kein fehlendes Feature ist.

Gruß Socke
 
Da dies in diesem Thread etwas undeutlich rüberkommt: es gibt bereits einen Fix für das "gleichzeitige Betreiben von Trackpoint (mit dessen Scrollfunktion) und Touchpad(dieses allerdings ohne jegliches Multitouch):
Als besonderes Bonbon habe ich für Waschmittels Lösungsansatz im ThinkPad Extras PPA das Paket tp-trackpoint-elantech bereitgestellt, das alles automatisch erledigt.

@Faule Socke: Sowie ich das verstanden habe versuchst du gerade das Multitouchproblem zu lösen :thumbup: Inwiefern unterscheidet sich zum aktuellen Stand dein Patch von dem im "linrunner-repository"?
 
Der bisherige Fix sieht so aus, dass man dem psmouse Treiber sagt (mit proto=bare), er solle bitte nicht das Elantech Protokoll benutzen. Dadurch wird das Touchpad nicht in den Absolute Mode versetzt, wodurch man die tollen Sachen wie Multitouch, Scrollen an der Touchpadseite etc. nicht hat, denn das Touchpad selbst liefert nur relative Koordinaten, wie eine Maus. Der Treiber für das Elantech Protokoll hingegen versetzt das Touchpad in den Absolute Mode, kann jedoch mit den Daten vom Trackpoint nichts anfangen (schaut mal ins Syslog, dort wird je nach Einstellung des psmouse Moduls die Hardware regelmäßig zurückgesetzt, weil es eben Protokollfehler gibt). Mein Patch fügt dem Elantech Treiber jetzt die Verarbeitung der Trackpoint Daten hinzu. Aber das wäre ja schön, wenn es damit schon getan wäre: Um die Eingabedaten von Eingabegeräten an die Systemprogramme weiterzureichen, werden sogenannte Event Devices erstellt, i.d.R. eins pro angeschlossene Hardware. Die Erstellung dieses Devices erledigt hier nicht der Code der für das Elantech-Protokoll zuständig ist, sondern das psmouse Modul ganz allgemein (und damit auch für andere Protokoll Codes wie synaptics oder das alte Trackpoint Protokoll [ich vermute, dass das damals separat angeschlossen war und nicht mit am Touchpad hing]). Kriegt psmouse dann mit, dass Hardware angeschlossen wurde, bittet es die Protokolle alle einmal, zu schauen, ob sie damit was anfangen können. Solange nicht proto=bare (o.ä.) angegeben ist, kommt irgendwann Elantech an die Reihe und meldet, dass das hier ein Elantech Touchpad ist.
Wie gesagt wurde das Device hier bereits schon erstellt, psmouse reicht es dann einfach an den Elantech-Protokoll-Code weiter, damit dieser darüber die Eingaben weiterleiten kann.
So weit, so gut. Es ist auch kein Problem über das Device was dort ankommt die absoluten Touchpad Koordinaten und die relativen Trackpoint Koordinaten weiterzurreichen. Das Problem liegt vielmehr bei Xorg: Der Xorg Server kann von einem Device entweder relative oder absolute Koordinaten verarbeiten, jedoch nicht beides. Da der Code jedoch wie oben beschrieben aufgebaut ist, ist es nicht grade einfach, ein zusätzliches Device für die separaten relativen Koordinaten zu basteln.
In den meisten Default-Configs nimmt der Xorg Server jetzt sein Synaptics Modul (das ist kein Kernelmodul sondern ein Xorg Modul) für das Device was er gefunden hat, dieses ignoriert einfach die relativen Koordinaten ohne sich zu beschweren. Man kann ihn jedoch zwingen, evdev zu nehmen und muss dann noch evdev sagen, er soll bitte die relativen nehmen, dann hat man mit meinem Patch einen funktionierenden Elantech Driver allerdings ohne Touchpad.

Ich hoffe, ich konnte das einigermaßen beschreiben.

Das Problem an dem ich gerade noch Arbeite ist: Ich will ein zweites Device für die Trackpoint Daten erstellen, dann würde Xorg das als separates Gerät erkennen und ohne zusätzliche Config evdev drauf ansetzen, weil dort eh nur relative Koordinaten rauskommen. Aber wie gesagt, der Code ist so doof, der ist nicht dafür ausgelegt, dass man zwei Devices brauchen könnte.

Gruß Socke
 
Oha, @vpn, dein Post ist sehr interessant. Scheinbar wird wirklich ein Trackpoint UND ein Touchpad erkannt. Ich werde die Tage mal probieren, ob ein aktueller Kernel das Problem behebt (wäre sehr schön!). Habe leider erst wieder ende nächster Woche Zeit dafür :( Ansonsten könnte bei dir andere Hardware verbaut sein, das wär dann doof für alle mit der Problem-HW und schön für dich :) Was für ein Thinkpad hast du? (L530 oder L430)?

Damit du weißt wie das bei uns Problemkindern aussieht:
Code:
socke@Sockpad ~ % xinput list
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                  id=4    [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                    id=11    [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)]
    ↳ Sleep Button                                id=8    [slave  keyboard (3)]
    ↳ Integrated Camera                           id=9    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard                id=10    [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                      id=12    [slave  keyboard (3)]

Gruß Socke
 
SynPS/2 Synaptics TouchPad id=11
Das dürfte sicher kein L?30 sein, die ham bisher nämlich alle nicht Synaptics, sondern Elantech verbaut :crying:
es sei denn, man brächte die Elantech Hardware mittels Synaptics Treiber dazu sich zu spalten :D
 
oder lenovo ist ganz oder teilweise auf synaptic umgestiegen.
 
ich habe hier: http://www.spinics.net/lists/linux-input/msg26869.html
einen interessanten Patch gefunden, welcher laut Beschreibung das Aufsplitten von Trackpoint und Touchpad beim L530 ermöglichen soll :eek:
so weit so gut, aber wie bringe ich den Patch in mein XUbuntu-System :confused: (habe leider (noch) keine Erfahrung im Treiber/Kernel/header-files compilen :( )

Edit: bevor jetzt haufenweise Warnungen ala "is nicht für dein System"(klar: vanilla-kernel und so) "mach nix kaputt" kommen:
Ich finde einfach nichts anderes was mir ermöglicht trackpoint und Touchpad einzeln zu konfigurieren (das fehlende Multitouch nervt einfach gewaltig)
und wenn mir etwas zu riskant für mein aktuelles System ist, setze ich halt zum debuggen ein Bastelsystem auf ;)
 
Zuletzt bearbeitet:
probiers doch einfach.
grundlagen:
http://wiki.ubuntuusers.de/Kernel/Kompilierung
den patch spielst du direkt vor dem punkt konfiguration ein.

dazu kopierst du den code des patches (beginnend mit diff -uprN bis unsigned char reg_11;) in eine datei, z.b. elantech.patch (diesen namen werde ich jetzt benutzen). diese datei kopierst du nach ~/kernel/linux-source<version>/elantech.patch (entsprechend anpassen!). danach führst du in genau diesem verzeichnis folgenden befehl aus:
Code:
patch -p1 < elantech.patch
sofern der patch komplett angewendet wurde, also keine teile rejected wurden, kannst du mit dem punkt konfiguration weitermachen.

viel erfolg!
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben