"Sonder-" Funktionstasten am Notebook belegen

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

"Sonder-" Funktionstasten am Notebook belegen

Beitrag von Duff » 29.05.2006 17:00:33

Hallo,

ich habe ein ASUS M6 Notebook und würde gerne die "Sonder-" Funktionstasten (wlan, emailprogramm, browser etc. an-/ausschalten) nutzen können.

Habe dazu auch einen Aritel unter http://de.wikibooks.org/wiki/Asus_M6N-K ... _ACPI#DSDT gefunden.
Mich würde nur mal interessieren, ob jemand Erfahrung damit hat und mir weiterhelfen kann bzw. Tips geben kann.

Des Weiteren würde ich gerne (wenn es denn überhaupt geht) die super tollen WINDOWS-Tasten auf meinem Notebook anders belegen. Beispielsweise gelangt man nach drücken einer der beiden Tasten im KDE-Menü oder so.

Wäre super, wenn mir jemand Tips geben könnte.
Oh, yeah!

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 30.05.2006 13:41:53

Also, fuer die Sondertasten, die kann man via acpid abfangen und dann entsprechend Skripten starten lassen.
Dazu benoetigst du die Event-ID, die beim Druecken einer Taste per ACPI uebermittelt wird. Rausfinden kannst du diese z.B. durch acpi_listen. Nach dem Starten drueckst du die gewuenschte Taste und er sollte dir den Code dieser Taste ausgeben.
Schau dir mal /etc/acpi/events an. Dort liegen die Dateien, die festlegen, fuer welches Event welches Skript aufgerufen wird. Die Skripten liegen normal unter

Code: Alles auswählen

/etc/acpi/
Habe damit z.B. erst letztens bei meinem IBM T43 erreicht, dass ein

Code: Alles auswählen

FN+F12
das hibernate-Skript fuer den Suspend-to-disk aufruft, oder ein

Code: Alles auswählen

FN+F4
einen Suspend-to-Ram macht.
Voraussetzung ist natuerlich, dass du die ACPI-Unterstuetzung fuer dein Notebook schon entsprechend im Kernel eingebaut hast.

Zu KDE kann ich leider nichts sagen, das benutze ich nicht. Eventuell koennte es im Controlcenter aber was geben, wo man Tastenkombinationen konfigurieren kann und diese dann mit entsprechenden Aktionen verknuepfen kann.

Edit by Snoopy:
Code-Tags für die Leserlichkeit eingefügt.

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 30.05.2006 14:54:40

Du musst asus_acpi in deinem Kernel erhalten und kannst dann wie oben bereits geschrieben die Events abfangen.
Musst dir dafür aber IIRC einen neuen Kernel bauen, da der Spaß in den Debian-Kerneln nicht aktiviert ist.
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 30.05.2006 17:38:50

Danke für die Antworten.

Bei mir im Kernel gibt es allerdings schon ein Modul für asus:

Code: Alles auswählen

#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
CONFIG_PM_LEGACY=y
# CONFIG_PM_DEBUG is not set
# CONFIG_SOFTWARE_SUSPEND is not set

#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_SLEEP_PROC_FS=y
# CONFIG_ACPI_SLEEP_PROC_SLEEP is not set
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_VIDEO=y
# CONFIG_ACPI_HOTKEY is not set
CONFIG_ACPI_FAN=m
CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_ASUS=m
# CONFIG_ACPI_IBM is not set
CONFIG_ACPI_TOSHIBA=m
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
# CONFIG_ACPI_CONTAINER is not set
Entspricht ein CONFIG_ACPI_ASUS=m deinem asus_acpi Trigger.?

Wenn ich acpi_listen aufrufe und dann die "Funktions-" Tasten drücke, bekomme ich die Event-ID.

Code: Alles auswählen

root@daniel-laptop:/etc/acpi/events# acpi_listen
hotkey ATKD 0000005d 00000000
hotkey ATKD 00000051 00000000
hotkey ATKD 00000050 00000000
hotkey ATKD 0000005c 00000000
hotkey ATKD 0000006a 00000000
Was muss ich denn dann noch machen?
Muss die Event-ID in ein bestimmtes Scripts geschrieben werden oder kann ich ein neues Script erstellen und dieses dann (wie auch immer) aufrufen lassen?
Oh, yeah!

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 30.05.2006 17:47:41

Jo, alles paletti bei dir.
Jetzt am besten noch die Datei /etc/acpi/events/hotkey anlegen und mit folgendem Inhalt befüllen:

Code: Alles auswählen

#/etc/acpi/events/hotkey
event=hotkey ATKD .*
action=/etc/acpi/hotkey.sh %e
Dann legst du in action=/etc/acpi/hotkey.sh etwas folgendes ab:

Code: Alles auswählen

#!/bin/sh
case "$3" in
# Mute button (Fn+F6)
00000032) /usr/bin/amixer set Master toggle
;;
# Volume up button
00000030) /usr/bin/amixer set Master 1+
;;
# Volume down button
00000031) /usr/bin/amixer set Master 1-
;;
# Browser button
00000051) su - trigger -c "export DISPLAY=:0.0;/usr/bin/firefox &"
;;
# Mail button
00000050) su - trigger -c "export DISPLAY=:0.0;/usr/bin/thunderbird &"
;;
#Mehr davon.................

*) logger "ACPI hotkey $3 is not defined"
;;
Musst die Datei halt für die Keys entsprechend anpassen.

Fertig :-)
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 30.05.2006 17:58:18

So, habe die Dateien angelegt, will aber noch nicht funktionieren.
Muss ich dazu den Rechner rebooten?

Was ich gemacht habe:

1. Anlegen der Datei hotkey unter /etc/acpi/events

Code: Alles auswählen

-rw-r--r--  1 root root  51 2006-05-30 17:49 hotkey
-rw-r--r--  1 root root 423 2004-02-17 20:28 powerbtn

Code: Alles auswählen

daniel@daniel-laptop:/etc/acpi/events$ cat hotkey
event=hotkey ATKD .*
action=/etc/acpi/hotkey.sh %e
2. Anlegen der Datei hotkey.sh

Code: Alles auswählen

daniel@daniel-laptop:/etc/acpi$ ll
insgesamt 16
-rwxr-xr-x  1 daniel daniel 2320 2005-11-19 14:52 default.sh
drwxr-xr-x  2 root   root   4096 2006-05-30 17:49 events
-rwxr-xr-x  1 root   root    187 2006-05-30 17:54 hotkey.sh
-rwxr-xr-x  1 root   root    299 2004-10-01 11:11 powerbtn.sh

Code: Alles auswählen

daniel@daniel-laptop:/etc/acpi$ cat hotkey.sh
#!/bin/sh
case "$3" in
# Browser Button
00000051)su - daniel -c "export DISPLAY=:0.0;/usr/bin/firefox &"
;;
# Wenn nichts gefunden wird
*) logger "ACPI hotkey $3 is not defined"
;;
esac
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 30.05.2006 18:13:23

Oder liegt der Fehler vielleicht an dieser Zeile hier:

Code: Alles auswählen

su - daniel -c "export DISPLAY=:0.0;/usr/bin/firefox &" 
?
Wenn ich diese Zeile nämlich eingebe, wird natürlich nach dem Passwort des Benutzers daniel gefragt.
Oh, yeah!

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 30.05.2006 18:58:41

Teste das ganze mal als root.
Ich vergaß: /etc/init.d/acpid restart steht noch an...
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 30.05.2006 19:05:37

Jawohl, nach dem Restart funktioniert es.

Aber wieso muss ich denn kein Passwort für den user eingeben?

Theoretisch müsste ich doch die hotkeys, wie z.B. den für wlan so belegen können, dass er mir beim ersten drücken das modul ipw2200 läd und ein iwlist scanning durchführt. Beim zweiten Drücken der Taste soll dann das Modul ipw2200 wieder entfernt werden und ggf. sich die shell beenden.

Wenn ich ein acpi_listen ausführe und dann die WINDOWS-Taste drücke, passiert nichts. Wie belege ich denn diese Tasten???
Oh, yeah!

ToPeG
Beiträge: 437
Registriert: 14.04.2004 00:42:06

Beitrag von ToPeG » 30.05.2006 19:23:56

Aber wieso muss ich denn kein Passwort für den user eingeben?
Der ACAPI-Deamon läuft mit Rootrechten und von root aus kann man in jeden Benutzer wechseln ohne ein Passwort zu brauchen.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 30.05.2006 20:40:04

OK, das stimmt natürlich.
Hatte ich vergessen.
Oh, yeah!

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 01.06.2006 13:20:00

Die Windows-Tasten werden wahrscheinlich kein ACPI-Event triggern oder?
Die muesstest du dann anderweitig abfangen. Z.B. ueber Keybindings im jeweiligen Windowmanager.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 01.06.2006 15:23:06

Über das Kontrollzentrum --> Tastenkürzel --> Sondertasten kann ich die X-Sondertasten Zuordnung sehen. Doch leider kann ich nichts für die Windows-Tasten (mod4) belegen.

Würde diese Tasten gerne so belegen, dass durch drücken einer der beiden Windows-Tasten das kde-Menü angezeigt wird (sprich, wenn ich mit der Maus aufs K klicke, der "Menübaum" (mit den Büroprogrammen, Dienstprogramm, Multimedia, etc.) erscheint.
Oh, yeah!

Antworten