Autor |
Nachricht |
|
Titel: 'getkeycode' und Tastenkeycodes brauche Erläuterung
Verfasst am: 23.06.2006, 15:43 Uhr
|
|
Anmeldung: 30. Mai 2006
Beiträge: 9
|
|
Hallo
Es gibt Schwierigkeiten mit dem Komando oder besser mit der Ausgabe von 'getkeycode'.
Es geht darum die Zusatztasten von meinem Laptop HP nx6125 zu aktivieren.
Diese Tasten haben von Haus aus keinen Keycode. Ich habe dazu ein interessanntes HowTo in einem Gentoo Forum gefunden:http://de.gentoo-wiki.com/Multimediatasten
Es verhällt sich genau so wie beschrieben, auch die Fehlermeldung in /var/log/messages sind vorhanden.
Mein Ziel ist es nun mit 'setkeycode' der Taste den notwendigen Keycode zuzuornen. Dazu sollen mittels 'keycode' nach „freien“ Keycodes gesucht werden. Das Komando habe ich ausgeführt mit folgendem Ergebnis:
root@LinuxLap:’# getkeycodes[color=darkblue]
Einfache Scancodes xx (hexadezimal 1) und Tastencodes (dezimal)
for 1-83 (0x01-0x053) scancode equals keycode
0x50: 80 81 82 83 84 0 86 87
0x58: 88 117 0 0 95 183 184 185
0x60: 0 0 0 0 0 0 0 0
0x68: 0 0 0 0 0 0 0 0
0x70: 93 0 0 89 0 0 85 0
0x78: 90 92 0 94 0 124 121 0
Scancodes mit Escape e0 xx (hex)
e0 00: 0 0 0 0 0 0 0 0
e0 08: 0 0 0 0 0 0 0 0
e0 10: 165 0 0 0 0 0 0 0
e0 18: 0 163 0 0 96 97 0 0
e0 20: 113 140 164 0 166 0 0 0
e0 28: 0 0 255 0 0 0 114 0
e0 30: 115 0 150 0 0 98 255 99
e0 38: 100 0 0 0 0 0 0 0
e0 40: 0 0 0 0 0 119 119 102
e0 48: 103 104 0 105 112 106 118 107
e0 50: 108 109 110 111 0 0 0 0
e0 58: 0 0 0 125 126 127 116 142
e0 60: 0 0 0 143 0 217 156 173
e0 68: 128 159 158 157 155 226 0 112
e0 70: 0 0 0 0 0 0 0 0
e0 78: 0 0 0 0 0 0 0 0[/color]
Ich hatte eigentlich etwas anderes ehofft, zB alle meine Tasten schön der Reihe nach mit den dazugehörigen Keycodes oder irgendetwas, mit dem ich etwas anzufangen weiß.
Jetzt die Fage:
Hat schon mal jemand dieses Komando benutzt oder kann mir jemand bei der Deutung dieser Zahlenkette helfen?
Da ich selber keine Ahnung habe wäre ich für jede Hilfe dankbar.
Michel |
|
|
|
|
 |
|
Titel:
Verfasst am: 23.06.2006, 16:40 Uhr
|
|
Anmeldung: 09. Jan 2006
Beiträge: 1720
|
|
eine Tastatur besteht aus XX-Tasten. Jeder Taste ist ein Wert zugeordnet Zichen gibt es aber mehr als Tasten. deshlb sind einige Tasten mit Sonder-Codes die bei einem weiteren Tastendruck noch einen weitern Wert zur Taste mitsenden.
1 bis 126 sind die Nummer der Taste.
E0 80 F0 sind Codes die der ErweitertenTastenCodierung dienen.
Zum dekodieren einer Taste Braucht man 2 Codes. "make" 1 - 126 und 0 als "Break" Taste losgelassen erst mit dieser Srq. aus Make und Break ergibt sich der Zugehörige Wert der Taste. Der PC schaut in einer Tabelle (Zeichensatz) nach welches Zeichen weitergeleitet werden soll.
code 80 00 heißt ShiftTaste und es folgt noch ein weiterer Tasten Code. Eine 2. Tabelle sagt dann Welcher Wert.
code E0 00 heißt CTRL-gedrückt ........
Hoffe das ist soweit klar. |
|
|
|
|
 |
|
Titel:
Verfasst am: 23.06.2006, 18:46 Uhr
|
|
Anmeldung: 30. Mai 2006
Beiträge: 9
|
|
Danke für die Antwort
<...soweit klar> na ja Eigentlich nicht.
Die Tabellen haben so wenige Zeilen auf jeden Fall wesentlich weniger als 126. Wo sind die anderen Tasten (ich dachte 'getkeycodes' gibt alle Tastencodes aus)?
Irgendwo in den "unendlichen Weiten" des Basisordners muß das doch stehen?
'xev | grep -A2 Key' und Fehlermeldung meiner zwei Spezialtasten gibt denke ich den ganzen Code aus.
Für meine Xmodmap brauche ich aber eine Zahl 1 - 126 oder 127, 128 (Die beiden Tasten gehören nicht zur Tastatur).
Ich suche vermutlich nicht den code sondern die Nummer (obwohl die keycode XXX heist).
Ich kann halt nur spekulieren.
Michel |
|
|
|
|
 |
|
Titel:
Verfasst am: 23.06.2006, 22:09 Uhr
|
|

Anmeldung: 05. Apr 2005
Beiträge: 499
Wohnort: Bielefeld <:-P
|
|
Hier läuft (derzeit) eine Logitech (Modellbezeichnung Y-RR53) mit per scankeycodes definierten Mappings für die Zusatztasten und lineak für die Funktionsbelegung der Tasten unter KDE.
1. Über die 'Fehlermeldungen' undefinierter Tasten herausgefundenen Scancodes (atkbd.c...) im syslog (freie)Keycodes zugewiesen:
Code:
#
# Keycodes for Logitech MM-Keyboard
# um Funktion von lineakd zu gewährleisten (siehe auch /etc/lineakkb.def, ~/.lineak/lineak.conf)
#
setkeycodes e001 230 # Window
setkeycodes e011 145 # Messenger
setkeycodes e013 147 # Media_Music
setkeycodes e014 148 # Media_Video
setkeycodes e015 149 # Media_Picture
setkeycodes e01f 161 # Calculator
setkeycodes e02d 203 # Remote Control
setkeycodes e02f 204 # Eject
setkeycodes e031 205 # Microphone?
setkeycodes e055 213 # My Doc
setkeycodes e074 214 # Webcam
setkeycodes e075 215 # Status
setkeycodes e078 216 # Record
Um sie bei jedem Rechnerneustart zu setzen z.B. in /etc/init.d/bootmisc.sh o.ä. mit aufnehmen.
Danach sah die Ausgabe von getkeycodes so aus:
Code:
root@Jacobsen:/home/jacobsen# getkeycodes
Einfache Scancodes xx (hexadezimal) und Tastencodes (dezimal)
for 1-83 (0x01-0x53) scancode equals keycode
0x50: 80 81 82 83 84 0 86 87
0x58: 88 117 0 0 95 183 184 185
0x60: 0 0 0 0 0 0 0 0
0x68: 0 0 0 0 0 0 0 0
0x70: 93 0 0 89 0 0 85 91
0x78: 90 92 0 94 0 124 121 0
Scancodes mit Escape e0 xx (hex)
e0 00: 0 230 0 0 0 0 0 0
e0 08: 0 0 0 0 0 0 0 0
e0 10: 165 145 0 147 148 149 0 0
e0 18: 0 163 0 0 96 97 0 161
e0 20: 113 140 164 0 166 0 0 0
e0 28: 0 0 255 0 0 203 114 204
e0 30: 115 205 150 0 0 98 255 99
e0 38: 100 0 0 0 0 0 0 0
e0 40: 0 0 0 0 0 119 119 102
e0 48: 103 104 0 105 112 106 118 107
e0 50: 108 109 110 111 0 213 0 0
e0 58: 0 0 0 125 126 127 116 142
e0 60: 0 0 0 143 0 217 156 173
e0 68: 128 159 158 157 155 226 0 112
e0 70: 0 0 0 0 214 215 0 0
e0 78: 216 0 0 0 0 0 0 0
2. In der Datei /etc/lineakkb.def die Tastatur (Eintrag LT-YRR53) angepasst. Hinweis hier müssen dann die Keycodes hinein die xev beim Drücken der jew. Taste anzeigt (Böse Falle das).
Code:
[LT-YRR53]
#
# Keycodes for Logitech MM-Keyboard (activated in /etc/init.d/bootmisc_my.sh)
# um Funktion von lineakd zu gewährleisten (siehe auch /etc/lineakkb.def, ~/.lineak/lineak.conf)
#
#setkeycodes e001 230 # Window
#setkeycodes e011 145 # Messenger
#setkeycodes e013 147 # Media_Music
#setkeycodes e014 148 # Media_Video
#setkeycodes e015 149 # Media_Picture
#setkeycodes e01f 161 # Calculator
#setkeycodes e02d 203 # Remote Control??
#setkeycodes e02f 204 # Eject
#setkeycodes e031 205 # Microphone??
#setkeycodes e055 213 # My Doc
#setkeycodes e074 214 # Webcam
#setkeycodes e075 215 # Status
#setkeycodes e078 216 # Record??
brandname = "Logitech"
modelname = "Cordless Keyboard Y-RR53, USB/PS2"
[KEYS]
# Volume controls
AudioLowerVolume = 174
AudioRaiseVolume = 176
AudioMute = 160
# Media Controls
AudioPrev = 144
AudioNext = 153
AudioPlay|Pause = 162
AudioStop = 164
AudioMedia = 237
# Top Right
Sleep = 223
Calculator = 161 #setkeycodes e01f 161
Mail = 236
Messenger_SMS = 199 #setkeycodes e011 145
Status = 120 #setkeycodes e075 215
Webcam = 119 #setkeycodes e074 214
# Left Area
#iTouch = ! button 2
Search = 229
#Shopping = ! button 2
Window = 217 #setkeycodes e001 230
WWW = 178
Back = 234
Go = 233
# F-Key Alternates (Missing)
Eject|Close = 173 #setkeycodes e02f 204
Video_App = 159 #setkeycodes e014 148
Music_App = 147 #setkeycodes e013 147
Picture_App = 151 #setkeycodes e015 149
My_Doc = 118 #setkeycodes e055 213
[END KEYS]
[END LT-YRR53]
3.Die per User Konfiguration von lineakd für die Definition der Aktionen bei Tastendruck (~/.lineakd/lineakd.conf):
Code:
# LinEAK - Linux support for Easy Access and Internet Keyboards
# Copyright (c) 2001,2002, 2003 Sheldon Lee Wen <leewsb@hotmail.com>
# and Mark Smulders <Mark@PIRnet.nl>
# http://lineak.sourceforge.net
#
# lineakd configuration file
#
# example key configuration:
# play = "xmms --play-pause"
# eject = EAK_EJECT
#
# Lineakd supports the following modifier keys:
# control alt shift mod2 mod3 mod4 mod5
CdromDevice = /dev/dvdrumms
Display_align = center
Display_color = 0aff00
Display_font = -adobe-helvetica-bold-r-normal-*-*-240-*-*-p-*-*-*
Display_hoffset = 0
Display_plugin = xosd
Display_pos = bottom
Display_soffset = 1
Display_timeout = 3
Display_voffset = 50
KeyboardType = LT-YRR53
MixerDevice = /dev/mixer
RAWCommands =
Screensaver =
conffilename = /home/jacobsen/.lineak/lineakd.conf
keystate_capslock =
keystate_numlock =
keystate_scrolllock =
AudioLowerVolume = EAK_VOLDOWN(3)
AudioRaiseVolume = EAK_VOLUP(3)
AudioMute = EAK_MUTE(10000)
#
AudioPrev = "dcop `dcop|grep amarok` player prev &>/dev/null"
AudioNext = "dcop `dcop|grep amarok` player next &>/dev/null"
AudioPlay|Pause = "dcop `dcop|grep amarok` player playPause &>/dev/null"
AudioStop = "dcop `dcop|grep amarok` player stop &>/dev/null"
AudioMedia = "amarok"
#
Sleep = KDE_LOCK_DESKTOP
Calculator = "kcalc"
Mail = "kmail"
Messenger_SMS = ""
Status = "kinfocenter"
Webcam = "kdetv"
#
Search = "konqueror http://www.google.de"
Window = KDESKTOP_NEXT
Window+shift = KDESKTOP_PREVIOUS
WWW = KONQUEROR_HOME
Back = KONQUEROR_BACK
Go = ""
#
Eject = EAK_OPEN_TRAY(/dev/dvdrumms,/dev/branntschwein)
Close = EAK_CLOSE_TRAY(/dev/dvdrumms,/dev/branntschwein)
#
Video_App = "xine"
Music_App = "xmms"
Picture_App = "gimp"
My_Doc = KONQUEROR_HOME
4. Sicherstellen das lineakd für den jew. User gestartet wird damit Tasten funktionieren ( ~/.kde/Autostart o.ä.)
Im Debian-Repository vorhandene (und hier installierte) Pakete zu lineak: liblineak0, lineak-defaultplugin, lineak-kdeplugins, lineak-xosdplugin, lineakd
mfg. Hack-o-Master |
_________________ sidux2007-02 64Bit, Kernel 2.6.23rc..(Crypto-root), X.org 7.3, KDE 3.5.7
http://bernd-das-brot.de.be | Gästebuch , certified B.O.F.H.
|
|
|
|
 |
|
Titel:
Verfasst am: 24.06.2006, 19:28 Uhr
|
|
Anmeldung: 30. Mai 2006
Beiträge: 9
|
|
Hallo Haco-o-Master
Also so richtig habe ich immer noch nicht geblickt, was mir 'getkeycodes' alles sagen will.
Aber wichtig ist, daß ich nicht vorhandene Zahlen bei 'setkecodes e059 XXX' verwende.
Das habe ich gemacht in dem Fall 133 und habe danach mit 'xev | grep -A2 Key' die Ausgabe ...keycode 140... bekommen????
Aber besser als vorher. Ich hab' das einfach in meine 'Xmodmap' eigetragen und eine F14- Taste daraus gemacht, welche ich dann im Kontrollzentrum einem Programm zuordnen konnte.
Ganz schön umständlich, aber wenn's funktioniert, bei Dir ist es ja ähnlich.
Jetzt muß ich nur noch das „setkeycodes- Script“ automatisch ausführen - vor meiner Xmodmap also vor kde.
Dazu muß das Script irgendwohin. Hier im Forum stand schon mal was dazu.
Dort sollte es nach '/usr/local/bin'.
Was ist der richtige Ort und wem muß es göhren (vermutlich root) und weche Berechtigungen? Und wie darf ich es nennen?
Das nächste ist das Ausführen der Datei.
Was und an welcher Stelle mußl dazu in die Datei '/etc/init.d/bootmisc.sh' eingetragen werden?
Noch eine andere Frage. Das ist mir schon öfter augefallen, wenn ich in einem Schell- Scrip die Zeilen mit # oder ! einleite, werden diese „überspungen“?
Dann kann ich quasi einen Komentar hinschreiben?
Aber wo endet solch eine Zeile – beim nächsten 'ENTER' oder wo?
Grüße Michel |
|
|
|
|
 |
|
Titel:
Verfasst am: 24.06.2006, 20:18 Uhr
|
|

Anmeldung: 05. Apr 2005
Beiträge: 499
Wohnort: Bielefeld <:-P
|
|
Amateur hat folgendes geschrieben::
Jetzt muß ich nur noch das „setkeycodes- Script“ automatisch ausführen - vor meiner Xmodmap also vor kde.
Ich habe es so gelöst, das ich unter /etc/init.d/ ein eigenes Skript namens bootmisc_my.sh erstellt habe, wo meine beim Rechnerneustart 'speziellen' Einstellungen (u.a. die setkeycodes Befehle) drin stehen und einen Link auf das Skript im Single-User Runlevel Verzeichnis als /etc/rcS.d/S55bootmisc_my.sh verlinkt habe.
Code:
Also:
- Skript nach /etc/init.d/ kopieren und ausführbar machen, und testweise aufrufen ob's FEHLERFREI durchläuft.
- Befehle (als root) ausführen:
cd /etc/rcS.d
ln -sf ../init.d/bootmisc_my.sh S55bootmisc_my.sh
Ein eigenes Skript hat den Vorteil, das die eigenen Einstellungen nicht überschrieben werden würden, wenn bei dist-upgrades die /etc/init.d/bootmisc.sh aktualisiert wird.
( siehe auch zum Thema runlevel: http://debiananwenderhandbuch.de/startstop.html )
Amateur hat folgendes geschrieben::
Noch eine andere Frage. Das ist mir schon öfter augefallen, wenn ich in einem Schell- Scrip die Zeilen mit # oder ! einleite, werden diese „überspungen“?
Dann kann ich quasi einen Komentar hinschreiben?
Yepp sind Kommentarzeilen.
Das geht aber auch:
Code:
ls -l /bin # Kommentar hinter Befehlszeile
Amateur hat folgendes geschrieben::
Aber wo endet solch eine Zeile – beim nächsten 'ENTER' oder wo?
Denke schon.
mfg. Hack-o-Master |
_________________ sidux2007-02 64Bit, Kernel 2.6.23rc..(Crypto-root), X.org 7.3, KDE 3.5.7
http://bernd-das-brot.de.be | Gästebuch , certified B.O.F.H.
|
|
|
|
 |
|
Titel:
Verfasst am: 25.06.2006, 15:25 Uhr
|
|
Anmeldung: 30. Mai 2006
Beiträge: 9
|
|
Hallo Hack-o-Master
Die ganze Sache scheitert noch an derVerknüpfung!
Meine Verknüpfung ( -neu – Verknüpfung zu URL) hat irgendwie ganz andere Eigenschaften als die Aderen im Verzeichnis '/etc/rs.h'.
Wie erhalte ich eine Vrknüpfung mit den richtigen Eigenschaften?
Nur damit ich weiß was ich tue:
Die Verküpfung (S71 bootmisc-my.sh) im Verzeichnis '/etc/rcS.d' wird beim booten ausgeführt, wie alles aus diesem Verzeichnis (außer REDAME usw)?, und verweist auf das Shell- script (bootmisc – my.sh) im Verzeichnis '/etc/init.d', das dort nur abgelegt ist?
Einen Namen für meine Datei kann ich mir im Prinzip selber aussuchen?
Ich hoffe ich konnte der Sache soweit folgen.
Nur warum kommt die Verknüpfung in 'rcS.d?
Grüße Michel |
|
|
|
|
 |
|