| 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: 
#
Um sie bei jedem Rechnerneustart zu setzen z.B. in /etc/init.d/bootmisc.sh o.ä. mit aufnehmen.# 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
 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:
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.- 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
 ( 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“? 
Yepp sind Kommentarzeilen.Dann kann ich quasi einen Komentar hinschreiben?
 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
 |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
  
    |  |