Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Linux/UNIX Linuxverfechter finden hier Weggefährten.

Keycodes (Sondertasten am Laptop)

Diskussion: Keycodes (Sondertasten am Laptop) im Forum Linux/UNIX, in der Kategorie Operating Systems; Anzeige Hallo, ich habe mir vor einigen Tagen ein neues Notebook (Samsung X360) gekauft, welches (mittels Tastenkombination Fn+F1-F12) Sonderfunktionen unter ...

Antwort
Alt 08.02.09, 22:26   #1 (permalink)
 
Registriert seit: 11.09.05
Heinzi Leistung: Facit NTK
Heinzi eine Nachricht über ICQ schicken Heinzi eine Nachricht über AIM schicken Heinzi eine Nachricht über Yahoo! schicken
Likes: 0
Standard Keycodes (Sondertasten am Laptop)

Anzeige

Hallo,

ich habe mir vor einigen Tagen ein neues Notebook (Samsung X360) gekauft, welches (mittels Tastenkombination Fn+F1-F12) Sonderfunktionen unter Windows zur Verfügung stellt.
Diese wollte ich nun auch unter Linux einrichten.
Ich habe also xev gestartet und festgestellt, dass einige der Tasten gar keine Keycodes schicken. Also in dmesg nachgeschaut, wo beim drücken von Fn+F2 folgendes stand:

Code:
[ 1092.749191] atkbd.c: Unknown key pressed (translated set 2, code 0x83 on isa0060/serio0).
[ 1092.749204] atkbd.c: Use 'setkeycodes e003 <keycode>' to make it known.
Zum Ausprobieren wollte ich nun also a auf die Taste legen, Bei Fn+F2 sollte also einfach ein a ausgegeben werden.
Ein sudo setkeycodes e003 30 müsste dies erledigen, also führe ich es aus.
Auf die 30 kam ich, indem ich showkeys in einem Terminal laufen lies und dort a eingab. Komischerweise gibt mir showkeys für die Taste a 30, xev für die Taste a aber den Keycode 36 zurück (Woran liegt das?)
Nun soweit funktioniert es auch, bis auf eine Kleinigkeit - wenn ich nun einmal Fn+F2 drücke, bekomme ich ein Dauerfeuer von a's. Es ist nicht nur ein Tastendruck, sondern es werden fleißig weiter a's geschrieben, obwohl ich die Taste längst losgelassen habe. Dies ist natürlich nicht der Sinn der Sache, sonst startet nachher in der Endkonfiguration mein Mailprogramm pro Tastendruck gleich 1000-mal ;)
Woran liegt das und wie kann ich das korrigieren?
Hier noch ein paar Systeminfos: Ich nutze Ubuntu 8.10 (32bit) mit dem 2.6.27-11-generic Kernel.

Vielen Dank schonmal für eure Hilfe!
-Heinzi
Heinzi ist offline   Mit Zitat antworten
Alt 08.02.09, 23:29   #2 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

die Sondertasten sind doch sicherlich hauptsächlich die Helligkeit/Standby und die Multimedia-Tasten?!

hab noch nie probiert, mit setkeycodes irgendwas einzeln zu setzen.

den ganzen Multimedia-Kram mach ich bei mir über die Datei ~/.Xmodmap (musst du evtl. erst anlegen)
http://wiki.ubuntuusers.de/Xmodmap

hier mal noch 2 Listen, was es da an XF86*-Codes und auch anderen Codes alles möglich ist:
http://wiki.linuxquestions.org/wiki/...sed_by_Xmodmap
http://wiki.linuxquestions.org/wiki/...yboard_symbols
beavisbee ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 09.02.09, 00:40   #3 (permalink)
Themenstarter
 
Registriert seit: 11.09.05
Heinzi Leistung: Facit NTK
Heinzi eine Nachricht über ICQ schicken Heinzi eine Nachricht über AIM schicken Heinzi eine Nachricht über Yahoo! schicken
Likes: 0
Standard

Danke für die schnelle Antwort
Ja, um genau diese Tasten geht es. Hauptsächlich will ich WLAN an und ausschalten können.
Die Tasten, die z.B. von xev oder showkey erkannt werden (denen also bereits ein keycode zugeordnet ist), sind nicht das Problem.
Das Problem sind eben die Tasten, die noch keinen Keycode zugeordnet haben.
Wenn ich nämlich z.B. Fn+F2 drücke, reagiert weder xev noch showkey.
showkey -s reagiert übrigens auch nicht, aber nach einem Tastendruck steht in dmesg der oben zitierte Ausschnitt. Dann muss ich dem Hardware-Scancode der Taste mittels setkeycodes einen Keycode zuweisen. Anschließend kann ich dann diesem Keycode mit .Xmodmap eine Aktion zuordnen.
Oder habe ich in den Internet-Anleitungen zu Tastenzuordnungen etwas falsch verstanden?
Lg
Heinzi ist offline   Mit Zitat antworten
Alt 09.02.09, 06:25   #4 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 441
Standard

Da wirst du evtl. Pech haben. Solche Laptop-"Sondertasten" benötigen oft zusätzliche Programme um angesteuert zu werden. Deswegen gibt es Programme wie toshutiils für Toshiba-Laptops, tpb für Thinkpads usw.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist offline   Mit Zitat antworten
Alt 09.02.09, 14:11   #5 (permalink)
Themenstarter
 
Registriert seit: 11.09.05
Heinzi Leistung: Facit NTK
Heinzi eine Nachricht über ICQ schicken Heinzi eine Nachricht über AIM schicken Heinzi eine Nachricht über Yahoo! schicken
Likes: 0
Standard

Die Tasten werden ja erkannt und ich kann damit arbeiten. Insofern glaube ich nicht, dass ich externe Treiber brauche. Das Problem ist, dass es zu gut funktioniert.
Wenn ich nach der Zuordnung von Fn+F2 zum Keycode 30 (entspricht der Taste A) Fn+F2 drücke, wird ein a geschrieben. Nur eben nicht nur eines, sondern das System tut so, als hätte ich die Taste gar nicht mehr losgelassen.

edit: noch ein paar Infos, die ich inzwischen herausgefunden habe:
1) Ich kann ja mit setkeycodes einem Scancode einen Keycode zuordnen, dem ich dann mit xmodmap eine Funktion zuordnen kann. Am Threadbeginn hatte ich mich darüber gewundert, dass die Zuordnung bei der Taste A nicht ganz stimmt, das kann ich jetzt präzisieren: Wenn ich der Taste mit dem Scancode e009 den Keycode 232 zuordnen will, muss ich nicht "setkeycodes e009 232", sondern "setkeycodes e009 224" schreiben. Ich muss in dem Zuordnungsbefehl also immer 8 vom Keycode abziehen und dann funktioniert die Zuordnung mit xmodmap.
Ich kann somit jetzt auch zum Beispiel schon die Taste für "Bildschirm heller" dem entsprechenden Keycode aus xmodmap zuordnen und der Bildschirm wird beim Drücken der Taste auch heller. Nur eben immer weiter heller, er merkt also nicht, dass ich die Taste längst losgelassen habe.

2) Bevor ich die Tasten mit setkeycodes zugewiesen habe, werden sie weder von showkey noch von xev erkannt. Nach der Tastenzuweisung erkennt sie showkey richtig (übrigens mit dem um 8 kleineren Keycode) und xev erkennt sie mit dem größeren Keycode. Während xev allerdings nach einem kurzen Tastendruck dauernd die KeyDown-Events bekommt, ist das bei showkey anders. Der zeigt genau 1x pro Tastendruck, dass die entsprechende Taste gedrückt wurde und bekommt kein Dauerfeuer der Taste. (showkey lasse ich übrigens im Strg+Alt+F1-Terminal laufen, xev natürlich in einem X11-Terminal). Also scheint es so, dass Hardwareseitig und Kernelseitig (showkey) alles funktioniert und erst der X-Server (xev) bzw xmodmap irgendwas durcheinander bringt und dann das Tastendauerfeuer schickt. Woran könnte das denn liegen?
Heinzi ist offline   Mit Zitat antworten
Alt 13.02.09, 10:30   #6 (permalink)
 
Registriert seit: 17.01.06
phx1024 Leistung: Facit NTK
Likes: 0
Standard

Gibt es evtl. noch einen Scancode für "Taste losgelassen"?
Ich weis nur das Tastaturen bei gedrückter Taste einmal ein Scancode für "xy-wurde gedrückt" absenden, und dann halt auch einen für "xy-wurde losgelassen".
Die Wiederholung usw. macht dann das Bios bzw. das Betriebsystem auch immer solang bis die Releasemeldung durchkommt.
(Hab mal auf einem PowerPC eine Tastaturabfrage in ASM schreiben müssen)
Evtl. liegt hier die Lösung vergraben.

Beste Grüße, phx1024
phx1024 ist offline   Mit Zitat antworten
Alt 13.02.09, 15:05   #7 (permalink)
Themenstarter
 
Registriert seit: 11.09.05
Heinzi Leistung: Facit NTK
Heinzi eine Nachricht über ICQ schicken Heinzi eine Nachricht über AIM schicken Heinzi eine Nachricht über Yahoo! schicken
Likes: 0
Standard

Hm wenn ich showkey -s eingebe und dann eine Taste wie z.B. A drücke, kommt zuerst ein Scancode für "Taste gedrückt" (0x1e) und wenn ich die Taste gedrückt lasse, wird der dann vom System wiederholt und kommt ganz oft. Sobald ich die Taste dann loslasse, kommt ein anderer Scancode für "Taste losgelassen" (0x9e).
Wenn die gedrückte Taste nun aber eine der Tasten ist, die mittels setkeycodes zugewiesen wurde, werden gleich 2 Scancodes geschickt und ob ich sie danach gedrückt lasse und später loslasse oder gleich loslasse macht keinen Unterschied - es werden erst beim nächsten Drücken der Taste wieder ein Scancode geschickt.
Was übrigens auch komisch ist: scancode -s gibt die Scancodes der Tasten erst NACH der Zuweisung mittels setkeycodes aus. Davor tut es so, als sei die Taste nicht gedrückt worden. Sollte nicht die Taste sowieso immer einen Scancode schicken und setkeycodes dem nur einen Keycode zuweisen? setkeycodes ändert doch nichts am Scancode, also wieso wird der Scancode erst nach der Zuweisung ausgegeben?
Heinzi ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Operating Systems » Linux/UNIX » Keycodes (Sondertasten am Laptop)
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SSD für Laptop? Serow Hardware Probleme 4 10.10.08 10:49
Laptop bis 200 ? 0wnZ HaBo-Marktplatz 23 17.07.08 02:04
KVM Switch und Sondertasten Macwin67 Hardware Probleme 4 30.12.05 17:42
Wo sind meine Sondertasten meiner Logitech hin? SteVe_O Hardware Probleme 5 07.11.05 14:09
MDA und Laptop scratchy Network · LAN, WAN, Firewalls 3 18.05.04 16:11


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61