Nachdem nun der Touchscreen wie gewünscht funktioniert, kommt jetzt die Rotation an die Reihe.

Dieses Beispiel funktioniert für ein Lenovo X61 Tablet.

Zuerst muss das HDAPS Kernel Modul installiert werden. Wieder in der beliebten Konsole:

1
sudo apt-get install build-essential module-assistant

Danach müssen wir das Kernelmodul bauen:

1
sudo m-a a-i tp-smapi

Dann laden wir die Module:

1
sudo modprobe -a tp_smapi hdaps

Sollte hier ein Fehler auftreten kann es eventuell nützlich sein zuerst:

1
sudo modprobe -r hdaps

durchzuführen und dann den obigen Befehl auszuführen.

So damit sollte HDAPS installiert sein.

Da ich bereits früher dieses Problem gelöst habe greife ich auf schon vorhandene Elemente zurück:
Dazu speichern wir Lukes Rotationsskript, welches ich angepasst habe, dass es mit Ubuntu 9.10 auch zusammen läuft.

1
2
3
cd /usr/local/bin
wget http://v220091139841893.yourvserver.net/downloads/ubuntu910/rotate
chmod +x ./rotate

Dazu dann noch das kleine Skript von mir:

1
2
wget http://v220091139841893.yourvserver.net/downloads/ubuntu910/rotatebutton.sh
chmod +x ./rotatebutton.sh

Da bei den Skripten die Keymap geändert wird, brauchen wir sudo Rechte damit das ganze funktioniert, um nicht jedes mal beim Rotieren das Passwort eingeben zu müssen, ändern wir zwei Dinge:

Dazu müssen wir einmal eine Gruppe der Tabletbenutzer anlegen. Gruppen werden in der Datei /etc/group eingerichtet.

1
nano /etc/group

Wir fügen in eine zusätzliche Zeile einfach folgendes ein:

1
tabletgroup:x:501:root,<strong>Tabletnutzernamen</strong>

Wobei die Nutzernamen jeweils durch Komma getrennt einzutragen sind, bei mir wäre es zum Beispiel tabletgroup:x:501:root,arsenal.

Jetzt muss noch eingestellt werden, dass keine Passwortabfrage gestartet werden soll wenn das Skript oder die Keymapänderung ausgeführt werden soll. Diese Einstellung befindet sich in der Datei /etc/sudoers. Diese Datei darf nur mit dem Befehl visudo verändert werden.

1
visudo

Dort fügen wir am Ende die folgenden Zeilen ein:

1
2
##Allow users to do tablet screen rotations if in this group
%tabletgroup ALL=(ALL) NOPASSWD:/usr/bin/setkeycodes,/usr/local/bin/rotate

Falls eine Zeile mit

1
Defaults requiretty

vorhanden ist wird diese auskommentiert.

Jetzt hauchen wir dem Rotateknopf noch Leben ein:
Dazu starten wir Verwaltung für die Tastenkombinationen:

1
System -> Einstellungen -> Tastenkombinationen

Dort hilft ein Klick auf Hinzufügen weiter.
Dann richten wir als Befehl folgendes ein:

1
/etc/local/bin/rotatebutton.sh

Jetzt muss nur die Taste zugewiesen werden, ein Klick auf Deaktiviert lässt uns die Tastenbelegung ändern und ein Druck auf den Rotateknopf später ist die Funktion auch schon aktiviert.

Zusätzlich kann man auch ein automatisches Drehen beim Wechsel zwischen Tablet- und Normalmodus einrichten über die ACPI-Ereignisse.

Dazu muss man zuerst die ACPI-Ereignisse abhören, dazu öffnet man eine Konsole und tippt acpi_listen ein, dreht den Bildschirm in den Tabletmodus und wieder zurück.

1
acpi_listen

Die Ausgabe sollte etwa so aussehen:

1
2
ibm/hotkey HKEY 00000080 00005009
ibm/hotkey HKEY 00000080 0000500a

(Dies scheint wohl bei vielen Lenovo Tablets so zu sein, aber keine Garantie)
Nun müssen wir Eventhandler einrichten, einen für das Umklappen und einen für das Zurückklappen:

1
sudo nano /etc/acpi/events/x61t-swivel-down

Und fügen dort ein:

1
2
3
4
# /etc/acpi/events/x61t-swivel-down
# called when tablet head swivels down
event=ibm/hotkey HKEY 00000080 00005009
action=/usr/local/bin/rotate left

Statt left kann man natürlich die gewünschte Richtung angeben (normal, right, inverted, left)

Dann für das Aufklappen:

1
sudo nano /etc/acpi/events/x61t-swivel-up

Und fügen dort ein:

1
2
3
4
# /etc/acpi/events/x61t-swivel-up
# called when tablet head swivels up
event=ibm/hotkey HKEY 00000080 0000500a
action=/usr/local/bin/rotate normal

Jetzt muss nur noch der acpid neugestartet werden, dieser lädt dann die neuen Anweisungen:

1
sudo service acpid restart

Ja das wars, nun funktioniert die Rotation wie man es gewöhnt ist, oder sogar besser. Wer zwischen den einzelnen Rotationen durchschalten will kann auch statt /usr/local/bin/rotatebutton.sh dem Tastendruck /usr/local/bin/rotate zuweisen, dann wird reihum durch die Rotationsmöglichkeiten geschalten. Ich bevorzuge den Komfort durch das kippen des Tablets die Richtung auswählen zu können.
It’s magic…