• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

xev erkennt nicht alle Tasten (Logitech Lx700)

A

Anonymous

Gast
Hi Leute

ich benutze den Cordless Desktop LX700 mit einer LX700 Tastatur und einer MX700 Maus, genauere Infos unter
http://www.logitech.com/index.cfm/products/features/comforttopics/DE/DE,CRID=2075,CONTENTID=9477


Um alle Multimediatasten zum Laufen zu bekommen, habe ich zahlreiche Treads durchstöbert und letzendlich auf ein Programm names keytouch gestoßen. Demnach habe ich es installiert und die entsprechende Tastatur ausgewählt, gespeichert, und per Autostart lasse ich den keytouch-Daemon keytouchd starten. Einige Tasten, wie z.B. Laut, Leise, Mute etc funktionieren, nur die nachstehenden Tasten funktionieren nicht, beim starten von xev aus der Konsole heraus wird bei den unten aufgeführten Tasten auch kein Key erkannt:

Zoom
100%
iNav Tilt Wheel: waarerechte Bildlauf
Anwendung schließen
Programmumschalter
Eigene Dateien
Brennen
Medienvoreinstellungen
MediaLife™
Auswerfen
Status
Webkamera
ebenso funktioniert die Zweitbelegung der F1-F12 - Tasten nach Drücken der F-Mode-Taste nicht

Habt ihr ähnliche Probleme, oder funktionieren bei euch alle Tasten? Wie kann ich sie aktivieren


Danke schon mal im Vorraus

Gruss Krischi
 
OP
A

Anonymous

Gast
Mit keytouch kenn ich mich nicht aus.
Aber es gibt auch noch "linEAK".

Schon mal damit probiert?

Ansonsten musst Du erstmal die scancodes des Kernels je Tastendruck ermitteln:
Code:
tail -f /var/log/messages
dann Taste drücken, es sollte sowas ausgegeben werden wie:
Code:
kernel: atkbd.c: Use 'setkeycodes e03b <keycode>' to make it known
Interessant ist die hexadezimale Zahl vor "<keycode>", in unserem Beispiel "e03b".

Diese müssen anschließend mit dem setkeycodes Befehl einem Keycode zugewiesen werden:
Code:
setkeycodes scancode1 keycode1 scancode2 keycode2 ... scancodeN keycodeN
Unbenutzte Keycodes gibt's in /etc/defkeymap.map. Die kannst Du dir natürlich auch in eine Datei schreiben lassen:
Code:
grep '^keycode *[0-9]* =$' /etc/defkeymap.map > ~/unusedKeyCodes.txt

Damit die Zuordnungen dauerhaft funktionieren sollte der setkeycodes-Befehl in ein passendes Startskript geschrieben werden. In deinem Fall vielleicht das Startskript von keytouch.

Danach sollten die ursprünglich "toten" Tasten mit xev einen Keycode ausspucken.

Wie Du die dann bei keytouch zuordnen musst, weiss ich nicht.
Das kann ich Dir nur für linEAK sagen.


Hoffe ich konnte Dir weiterhelfen.
 
OP
A

Anonymous

Gast
@tisyb

lineak hab ich bisher noch nicht probiert, hab es aber soeben installiert!

Der Befehl: tail -f /var/log/messages führt bei mir zu folgender Ausgabe:

Code:
SuseP4P800:/home/krischi # tail -f /var/log/messages
Nov 24 15:28:02 SuseP4P800 sudo:  krischi : TTY=unknown ; PWD=/home/krischi ; USER=root ; COMMAND=/bin/mount -o loop* -t iso9660 Test.iso /home/krischi/.kisotmp/Mount
Nov 24 15:48:24 SuseP4P800 syslog-ng[2809]: STATS: dropped 0
Nov 24 16:00:00 SuseP4P800 su: (to root) krischi on /dev/pts/2
Nov 24 16:00:00 SuseP4P800 su: (to root) krischi on /dev/pts/2
Nov 24 16:02:52 SuseP4P800 kernel: ISO 9660 Extensions: Microsoft Joliet Level 3
Nov 24 16:02:52 SuseP4P800 kernel: ISO 9660 Extensions: RRIP_1991A
Nov 24 16:04:07 SuseP4P800 checkproc: checkproc: Empty pid file /var/lock/susehelpindex for /usr/bin/susehelpindex
Nov 24 16:04:08 SuseP4P800 syslog-ng[2809]: SIGHUP received, restarting syslog-ng
Nov 24 16:04:09 SuseP4P800 syslog-ng[2809]: new configuration initialized
Nov 24 16:08:09 SuseP4P800 su: (to root) krischi on /dev/pts/3


das anschließende Betätigen einer Taste führt leider nicht zu der von dir aufgezeigten Ausgabe. (nichtmal ansatzweise)

Code:
kernel: atkbd.c: Use 'setkeycodes e03b <keycode>' to make it known

es wird, nur der zugewiesene Wert der Taste angezeigt, bzw. ausgeführt, bei Betätigung der nichtfunktionierenden Tasten, geschieht überhaupt nichts.

Gruss Krischi
 
OP
A

Anonymous

Gast
KrischiD schrieb:
das anschließende Betätigen einer Taste führt leider nicht zu der von dir aufgezeigten Ausgabe. (nichtmal ansatzweise)

es wird, nur der zugewiesene Wert der Taste angezeigt, bzw. ausgeführt, bei Betätigung der nichtfunktionierenden Tasten, geschieht überhaupt nichts.

Gruss Krischi

Wenn die Tasten bereits einen zugewiesenen Wert haben, wird natürlich nix ausgegeben, dafür sollte aber xev 'nen Keycode melden!

Bei Tasten die mit xev keine Ausgabe erzeugen, oder keine mit Keycode-Zuordnung, sollte der Kernel eigentlich schon die besagte Meldung ausgeben. Vielleicht ist dein Logging-System irgendwie anders eingestellt?
Probier doch mal nach Drücken einer toten Taste "dmesg" als root in Konsole aufzurufen. Steht die besagte Ausgabe vielleicht hier drin?

Wenn der Kernel beim Drücken einer unbekannten Taste tatsächlich keine Meldung ausgibt, dann würd' ich mal vermuten, dass auch kein Signal vom Keyboard beim Rechner ankommt (Keyboard defekt, Übertragung gestört)

Mehr kann ich dazu leider nicht sagen.


Gruss
 
OP
A

Anonymous

Gast
@tisyb
ich habe nach der Betätigung einer nicht fkt. Taste
dmesg | grep key
eingegeben, dies fühte aber zu keiner erfolgreichen Ausgabe.

@all
Mir ist allerdings aufgefallen, dass nach Abschluss des Bootvorgangs unter der virtuellen Konsole 1, Fehlermeldungen der Form:

Code:
keytouch-init Failed to set keycode: keycode 203 to scancode 215

auftreten.
Unter welcher Log-Datei wird diese abgespeichert. Unter LinVDR brauchte ich nur logread eingeben und schon wurde mir die Logdatei angezeigt, wie ist dies bei Suse. Unter /var/log/ habe ich keine Logdatei mit dem entsprechenden Inhalt gefunden!!

hat jemand einen Rat, wie ich weiter vorgehen soll, um mein Problem zu lösen.

Gruss Krischi
 
OP
A

Anonymous

Gast
KrischiD schrieb:
Mir ist allerdings aufgefallen, dass nach Abschluss des Bootvorgangs unter der virtuellen Konsole 1, Fehlermeldungen der Form:
Code:
keytouch-init Failed to set keycode: keycode 203 to scancode 215
auftreten.

Daraus schließe ich erstmal, dass keytouch noch aktiv ist. Wenn nun linEAK gleichzeitig aktiv ist führt das mit Sicherheit zu Konflikten.
Also sorge erstmal dafür, dass am Besten keiner der beiden mehr aktiv ist und du wieder eine saubere Ausgangsbasis hast (Startskripte deaktivieren, etc. oder besser beide erst nochmal komplett deinstallieren, und evtl. verbliebene Konfigurationsdateien löschen).

Dann probier' mal das hier:
http://www.linux-club.de/viewtopic.php?t=72012

Gruß
 
OP
A

Anonymous

Gast
Sorry, dass ich erst so spät antworte.

@tisyb

Wenn der Kernel beim Drücken einer unbekannten Taste tatsächlich keine Meldung ausgibt, dann würd' ich mal vermuten, dass auch kein Signal vom Keyboard beim Rechner ankommt (Keyboard defekt, Übertragung gestört)

unter Windows funktioniert es einwandfrei, daher kann man diese Fehlerquelle ausschließen.


@all

Es hat sich mittlerweile herausgestellt, dass ich keine LX700, sondern eine MX3100 habe, per Überprüfung der SNR: Y-RR54 RT7R33 (unter der Tastatur)
Es hat aber nichts gebracht diese Tastatur unter keytouch auszuwählen. Die beschriebenen Sondertasten funzen nicht, eben so gibt xev keine Ausgabe heraus.


ade keytouch- hallo LinEAK
Anschließend habe ich keytouch komplett deinstalliert, sogar alle darauf bezogene Dateien und Ordner gelöscht. Lineak von Packman gezogen, und wie beschrieben installiert,

  • installierte Komponente:
    LinEAK v0.8.4-17

    lineakd
    lineak_defaultplugin
    lineak_kdeplugins
    lineak_xosdplugin

sicherheitshalber reboot.

Code:
krischi@SuseP4P800:~> lineakd -l | grep -i mx3100
 LTCMX3100] By Evan Co  Logitech MX3100 (Y-RR54 & RT7R33)

da mein Keyboard aufgeführt wird, bin ich zu Absatz E. KEYBOARD KONFIGURIEREN übergegangen
  • 1. Zuerst müssen wir eine Konfigurationsdatei für unser Keyboard erstellen: Code:
    lineakd -e ~/.lineak/myKeyboard.def -c ~/.lineak/lineakd.conf

Code:
krischi@SuseP4P800:~> lineakd -e ~/.lineak/myKeyboard.def -c ~/.lineak/lineakd.conf

NOTE: if '-f', '-e','u', '-d', or '-m' parameters are used in conjunction with '-c', please
      make sure you specify those BEFORE '-c' !

*** FATAL ERROR: No keyboard defintions could be loaded!

Was habe ich hier falsch gemacht? Muss man für myKeyboard etwas einsetzten?

aber auch bei der Ausführung von C 1-3 bin ich zu dem schon zuvor genannten Problem gestoßen, dass messages die fehlenden Keycodes nicht ausgibt.

Es wäre nett, wenn noch jemand ne Idee hätte, warum message den Dienst verweigert. Ich habe mittlerweile sogar SuSE10.1 diesmal (remastered) neu aufgesetzt und auch hierbei hat es keinen Fortschritt gegeben.



Danke an alle die sich Gedanken machen
Gruss Krischi
 
OP
A

Anonymous

Gast
Ups! Ich glaube da gibt's 'nen Fehler in meinem Howto.
Das schau ich mir heute Nachmittag in Ruhe an und melde mich dann nochmal.


Gruß
 
OP
A

Anonymous

Gast
Bin jetzt doch schon früher dazu gekommen, und hab' gleich meinen WIKI Eintrag korrigiert.
Ausgerechnet bei deinem Keyboard gibt's allerdings ein kleines Problem in der Definitionsdatei von linEAK. Deshalb hier eine kurze Schritt-für-Schritt-Anleitung:

  1. Kopiere die Definitionsdatei in den versteckten Ordner .lineak in deinem Homeverzeichnis:
    Code:
    cp /etc/lineakkb.def ~/.lineak/
  2. Füge fehlendes Kommentarzeichen ein:
    Code:
    cat lineakkb.def | sed 's/\[LTCMX3100\] By Evan Cox/[LTCMX3100] #By Evan Cox/' > lineakkb.def
  3. Erstelle Konfigurationsdatei:
    Code:
    lineakd -e ~/.lineak/lineakkb.def -f ~/.lineak/lineakd.conf -c LTCMX3100
Weiter geht's dann im WIKI bei "KEYBOARD KONFIGURIEREN" Punkt 2.

Damit solltest Du deine Keyboardtasten soweit zum Laufen bringen, daß xev für jede Taste einen Wert ausgibt (der dann natürlich auch so in der lineakd.conf vorkommen muß).

Bei der Belegung der Tasten kannste Dich ja dann schrittweise vorarbeiten.

Viel Glück

:wink:
 
OP
A

Anonymous

Gast
Also schauen wir mal ob ich das richtig verstanden habe.

Das Problem liegt darin, dass 'By Evan Cox' nicht auskommentiert wurde und demnach die Tastatur nicht gefunden werden kann. Ich habe deine Anleitung ein wenig abwandeln müssen, da unter Schritt 2
Code:
cat lineakkb.def | sed 's/\[LTCMX3100\] By Evan Cox/[LTCMX3100] #By Evan Cox/' > lineakkb.def
, die Datei lineakkb.def anschließend leer war und beim Ausführen des nachstehenden Befehls:
lineakd -e ~/.lineak/lineakkb.def -f ~/.lineak/lineakd.conf -c LTCMX3100
keine Konfigdatei generiert wurde, sondern folgende Meldung erscheint:
Code:
krischi@SuseP4P800:~/.lineak> lineakd -e ~/.lineak/lineakkb.def -f ~/.lineak/lineakd.conf -c LTCMX3100

NOTE: if '-f', '-e','u', '-d', or '-m' parameters are used in conjunction with '-c', please
      make sure you specify those BEFORE '-c' !

Attempting to create a config file with no keyboard definitions loaded

anschließend habe ich folgendes gemacht:

Code:
su
cd /etc/lineakkb.def /etc/lineakkb.def.orig						
cp /etc/						
cat lineakkb.def | sed 's/\[LTCMX3100\] By Evan Cox/[LTCMX3100] #By Evan Cox/' > lineakkb.def.tmp
mv lineakkb.def.tmp lineakkb.def
su krischi
cp /etc/lineakkb.def ~/.lineak/	
lineakd -e /etc/lineakkb.def -f ~/.lineak/lineakd.conf -c LTCMX3100

- manuell ein paar Tasten Befehle zugewiesen, per Editierung von~/.lineak/lineakd.conf/
- Autostart von lineakd eingerichtet
- reboot

Es funktioniert nichts!!!!!!!!!!

Vergleich der Tastencodes der Datei ~/.lineak/lineakkb.def und xev - unterschiedliche Codes werden angezeigt - demnach die Datei ~/.lineak/lineakkb.def angepasst.

reboot

Es funktionieren die zugewiesen Codes!!!
Aber nur für jene Tasten, die unter keytouch auch schon funktioniert haben wie Mute, lauter, leiser, etc
aber alle anderen, die damals nicht funktioniert haben, funktionieren auch jetzt nicht!

Lineak hab ich zum Laufen bekommen, aber das Problem ist noch immer nicht gelöst

wie gehabt, werden sie unter xev nicht angezeigt, auch das anschließende Ausführen von
tail -f /var/log/messages
und abermaliges Drücken der nichtfunktionierenden Tasten bringt keine Ausgabe hervor

Was nun????

liegt es am Kernel?
kann es sein, das nicht alles mitgelogged wird?
hatte schon mal jemand dieses Problem?


Gruss Krischi
 
OP
A

Anonymous

Gast
Das sieht alles danach aus, daß unser Problem seinen Ursprung woanders hat.

Die in meinem Howto angegebene Vorgehensweise hat bei meinen Tests mit 4 verschieden Tastaturen funktioniert (mehr standen mir nicht zur Verfügung), wobei ich bemerken muss, dass ich für alle eine eigene Definition geschrieben habe, unabhängig davon, ob es für sie bereits einen Eintrag in der lineakkb.def gab.

Das Hauptproblem ist, dass der Kernel (warum auch immer) keine scancodes ausspuckt. Das ist mir neu, und ich hab keine Vorstellung, woran das liegen könnte. Wenn Du den SuSE-Standardkernal installiert hast (wovon ich mal ausgehe) bleiben eigentlich kaum noch Fehlerquellen übrig:
  1. Das Logging-System.
    Um dem auf den Grund zu gehen, würde ich mal in anderen Logdateien suchen, ob was zu den scancodes auftaucht, und die Konfiguration von syslog-ng nach Veränderungen untersuchen. Möglich wäre auch noch, dass der Kernel-Loglevel auf einer höheren Stufe als "warn" steht.
  2. Fehlende(s) Modul oder Software.
    Die Ausgabe für die scancodes wird nicht generiert. Das ist unwahrscheinlich, wenn Du 'ne Standardinstallation gemacht hast und nichts unter Umgehung der rpm-Datenbank installiert hast.
  3. Hardwarebedingtes Problem.
    Muß nicht Defekt bedeuten. Vielleicht wird das Keyboard irgendwie anders angesteuert (ich weiß zwar nicht, wie das geht, würde es aber auch nicht ausschließen wollen). Hast Du mal ein anderes Multimedia-Keyboard ausprobiert (mit nicht unterstützten Tasten)?
  4. Anderer Signalempfänger.
    Es werden irgendwo die Scan- UND Key-Codes abgefangen (an Kernel und xev vorbei). Das liesse auf verbliebene Reste der keytouch-Installation schliessen oder auf so was wie ein keylogger. Auch hier wäre der Test eines anderen Keyboards evtl. hilfreich.

Meine Empfehlung: Anderes MM-Keyboard ausprobieren, und vor allem schauen, ob scancodes ausgespuckt werden.

Tut mir leid, dass ich Dir bei deinem Problem nicht weiter helfen konnte.
Daraus, dass linEAK aber einen Eintrag für dein Keyboard hat, schließe ich, dass es möglich sein muß, das Teil zum Laufen zu bringen.


Gruß
 
Oben