HowTo: Installation von Debian auf einem X61 Tablet

V164

Member
Themenstarter
Registriert
7 Dez. 2010
Beiträge
507
Hallo zusammen,

in der letzten Zeit habe ich ein wenig an meinem X61t mit Debian Testing rumgebastelt. Ich möchte ich gerne die von mir beschrittenen wege in Bezug auf die Tabletfunktionen darstellen. Wer weiß, vielleicht kann das einmal jemand gebrauchen.

1. Ausgangssituation / Gundistallation

Als Installationmedium habe ich ein Image von http://www.debian.org verwendet. Ich bin seit einiger zeit dazu über gegangen nur noch ein Grundsystem ohne X zu installieren und mir X dann nachzuinstallieren. Nach der Installation des Grundsystem nehme ich erst die bei mir notwendigen Änderungen in der /etc/fstab und in der /etc/apt/sources.list vor und installiere dann Gnome. Das ist wenig aufregend und hinreichend beschrieben bzw. bekannt.

2. Erster Reboot unter X

Nach dem ersten Reboot funktionierte bereits der Stift. Bis hierhin habe ich noch keine Veränderungen am System vorgenommen.

3. Meine Anforderungen und Gedanken

So....die erste wichtige Frage, die man sich stellen sollte ist: was will ich überhaupt. Meine persönlichen Ideen waren, dass ich eine Rotation über den Rotationbutton haben wollte (das ist ja ganz klar), des weiteren wollte ich Schnellstarter haben, mit denen ich jede beliebige Rotation sofort anwählen konnte. Des weiteren sollte, unter Gnome 3 recht praktisch, eine der Tablet-Hardware-Buttons die Funktion der Super-Taste haben (auch nicht aussergewöhnliches). Mit den Hoch / Runter / rechts / links-Buttons hatte ich jedoch etwas anderes vor. Hoch / Runter ist beim Surfen durchaus sinnvoll und sollte erhalten bleiben. Rechts / Links ist jedoch eher nutzlos (da mögen andere anders denken) und sollten durch Vor und Zurück ersetzt werden. Ausserdem sollten sich Hoch / Runter / Vor / Zurück mit der Bildschirmausrichtung "mitdrehen". Das heisst also: Ist die untere Bildschirmkante bei den Hardware-Buttons, sollte Hoch für Hoch stehen, Runter für Runter usw., ist der Bildschirm jedoch nach rechts gekippt, wird "Vor" zu "Hoch", "Zurück" zu "Runter", "Hoch" zu "Zurück" und "Runter" zu "Vor" (ich hoffen Ihr versteht, was ich meine). Diese Veränderung sollte bei jeder Änderung der Ausrichtung automatisiert erfolgen. Eine komplett automatische Rotation benötige ich nicht, diese wird hier also nicht berücksichtigt.

4. Das System mit den Hardware-Buttons bekannt machen (scancode --> keycode --> keysym)

Ich denke die meisten nutzen dafür am liebsten Hilfsmittel wie xev. Ich persönlich arbeite lieber mit evtest, aber das ist Geschmackssache. Ich gehe hier also nur auf die Verwendung von evtest ein. Das Paket ist in den Standardquellen vorhanden.

evtest erfordert root-Rechte. Als erstes finden wir heraus, welches Device wir brauchen:

Code:
root# egrep -e ".*keyboard.*/dev/input/event[0-9]{1,2}.*" /var/log/Xorg.0.log

Daraufhin erhält man eine Ausgabe wie:

Code:
[     5.543] (**) AT Translated Set 2 keyboard: Device: "/dev/input/event0"

Als nächstes startet man evtest mit folgendem Aufruf:

Code:
root# evtest /dev/input/event0

Daraufhin erhält man eine ziemlich lange Liste. Die oben aufgeführten Codes kann man sich mal ansehen, wichtig für uns sind jedoch die, die wir durch den Tastendruck im unteren Bereich herauslesen. Ein solcher Abschnitt sieht etwa so aus:

Code:
Event: time 1326493063.385652, type 4 (Misc), code 4 (ScanCode), [B]value 68[/B]
Event: time 1326493063.385661, type 1 (Key), [B]code 125[/B] (Leftmeta), value 0
Event: time 1326493063.385664, -------------- Report Sync ------------

Die wichtigen Werte habe ich fett hinterlegt. Ich habe mir also nun der Reihe nach den Keycode der verschiedenen Tasten herausgeschrieben. Mit den gewonnen Werten kann man schon ein wenig arbeiten. Um beispielsweise die mittlere der drei Hardware-Buttons mit dem Keysym der Supertaste zu hinterlegen, gibt man als root den folgenden Befehl ein:

Code:
root# setkeycodes 68 125

Das wäre quasi die Taste aus dem obigen Beispiel. Hierbei kann (fast) noch nichts schief gehen. Die Änderung der Tastenbelegung verschwindet nach einem reboot. Ihr könnt also ruhig probieren, ohne, dass was schief geht. Übrigens, kleine Geschichte am Rande: Ich bin bei dieser Aktion einmal in der Spalte verrutscht und habe irrtümlich meine Entertaste mit dem Keysym der Super-Taste belegt. das ist natürlich blöd, weil ich zu diesem Zeitpunkt keine weitere Entertaste belegt hatte, aber natürlich auch keine andere taste mit Enter belegen konnte, weil ich Enter ja nicht bedienen konnte. Da half nur ein reboot.

Nachdem ich die nötigen Belegungen heraus gefunden und getestet hatte, habe ich diese in die /etc/rc.local eingetragen, um sie auch nach einem Neustart gleich zu haben. Hier ein Auszug:

Code:
#rc.local
# Button Left
setkeycodes 6e 158

# Button Right
setkeycodes 6d 159

Damit sollten die Tasten schonmal das tun, was sie sollen.

5. Mein Rotationsscript

Was soll das Rotationsscript können?

  1. Bildschirm der Reihe nach von "None" über "Right" nach "inverted" und weiter zu "Left" und wieder nach "None" drehen.
  2. Stift "mitdrehen"
  3. Belegung der Hoch / Runter / Rechts (Vor) / Links (Zurück)-Buttons nach der Bildschirmausrichtung ändern.
  4. Bildschirmausrichtung in einen status-File schreiben
Zusätzlich sollte ja auch noch die Bildschirmdrehung per "Schnellstarter" möglich sein, so dass es nötig ist, die aktuelle Bildschirmausrichtung abzufragen. Es muss also noch eine Status-Datei her.

Die obigen Punkte erreicht man über die folgenden Befehle:

  1. xrandr
  2. xsetwacom set "Serial Wacom Tablet stylus" Rotate
  3. setkeycodes
  4. echo
Wie oben bereits dargestellt benötigt man für den Befehl "setkeycodes" root-Rechte, was eine Änderung der /etc/sudoers mit sich bringt, damit das Script läuft (und das tut, was es soll). Ich habe dazu eine Gruppe "rotation" angelegt und dieser Gruppe erlaubt, den Befehl "setkeycodes" auszuführen. Die Bearbeitung der Datei /etc/sudoers ist hinlänglich dokumentiert.

Den "Status-File" habe ich in meinem persönlichen Home-Verzeichnis abgelegt, ich nutze das Tablet allein. Er kann natürlich auch in /tmp abgelegt werden.

Hier nun das Script:

Code:
#!/bin/bash
# name: rotatex61t.sh
# from: Frank Zimmermann
# date: 2011-12-21
# version: 0.0.1

STATUS_FILE=/home/frank/bin/rotatex61t/.rotate-status
CONDITION=`cat $STATUS_FILE`

if [ -n "$1"  ]
    then
    case "$1" in
    3|right)    N=3; T=cw ;;
    1|left)        N=1; T=ccw ;;
    2|inverted)    N=2; T=half ;;
    0|normal)    N=0; T=none ;;
esac
    /usr/bin/xrandr -o $N && xsetwacom set "Serial Wacom Tablet stylus" Rotate $T && echo $N > $STATUS_FILE
    else    
case "$CONDITION" in
    0) `xrandr -o 3` && xsetwacom set "Serial Wacom Tablet stylus" Rotate cw && `sudo setkeycodes 6d 103 6e 108 71 158 6f 159` && echo 3 > $STATUS_FILE ;;
    3) `xrandr -o 2` && xsetwacom set "Serial Wacom Tablet stylus" Rotate half && `sudo setkeycodes 6d 158 6f 103 6e 159 71 108` && echo 2 > $STATUS_FILE ;;
    2) `xrandr -o 1` && xsetwacom set "Serial Wacom Tablet stylus" Rotate ccw && `sudo setkeycodes 6e 103 71 159 6d 108 6f 158` && echo 1 > $STATUS_FILE ;;
    1) `xrandr -o 0` && xsetwacom set "Serial Wacom Tablet stylus" Rotate none && `sudo setkeycodes 71 103 6d 159 6f 108 6e 158` && echo 0 > $STATUS_FILE ;;
esac
fi

exit 0

Der obere Bereich (bis else) ermöglicht die direkte Eingabe in ein Terminal (wird aber für gewöhnlich nicht gemacht), der untere Bereich liest den Status-File ein und führt dann die Befehle aus und schreibt das Ergebnis wieder in den Status-File.

Das Script habe ich unter /usr/local/bin/rotateX61.sh abgelegt. Hier sind noch die Rechte anzupassen.

Über die Tastenkombinationen habe ich die Rotationstaste mit diesem Script belegt. Das funktioniert also schonmal.

6. Schnellstarter

Die von mir gewünschten Schnellstarter sind ähnlich wie das Script aufgebaut. Hier mal die Datei "tabletright" als Anschauung:

Code:
/usr/bin/xrandr -o right
xsetwacom set "Serial Wacom Tablet stylus" Rotate Cw
xsetwacom set "Serial Wacom Tablet eraser" Rotate Cw
sudo setkeycodes 6d 103 6f 159 6e 108 71 158
echo 3 > /home/frank/bin/rotatex61t/.rotate-status

Man sieht also, dass diese einzelne Datei im Prinzip das gleich macht, die der Abschnitt "0)" in der zweiten case-Verzweigung. Ich habe noch für jede weitere mögliche Ausrichtung eine entsprechende Datei angelegt. Diese werden ebenfalls in /usr/local/bin abgelegt und die Rechte angepasst.

Als Abschluss habe ich mir noch vier Icons gebastelt, die ich für die Schnellstarter verwenden kann.

tablet-inverted.pngtablet-left.pngtablet-normal.pngtablet-right.png

Über "alacarte" habe ich mir in der Sektion "Zubehör" vier neue Einträge erstellt:

"Neuer Eintrag" --> "Name: Rotate Inverted" --> "Befehl: Ablageort der Schnellstarte-Datei" --> Kommentar nach belieben.

Diese vier Schnellstarter habe ich mir dann noch zu meinen Favoriten zugefügt, über den mittleren Hardware-Button kann ich bekanntlich die Supertaste bedienen. So komme ich schnell zu den Schnellstartern.

Wie gesagt, Auto-Rotation benötige ich nicht bzw. ich möchte gerne selber in der Hand haben, welche Ausrichtung ich gerade benötige. Soweit läuft alles ganz hervorragend, ich hoffe, dass ich in meinem kleinen How-To nichts vergessen habe.

Grüße
Frank
 
Zuletzt bearbeitet von einem Moderator:
Hi,

coole Sache! :thumbup:

Magst Du das vielleicht im Wiki unterbringen? Eventuell angereichert um noch gültige Hinweise aus dem veralteten TabletBuntu.
 
Definitiv ne wirklich coole Geschichte, danke für diese ausführliche Anleitung !
 
Magst Du das vielleicht im Wiki unterbringen?

Hallo zusammen,

ja, das kann ich machen. Kann aber noch ca. eine Woche dauern.....bei uns in der Arbeit brennt nämlich grad die Hütte. Vielleicht gehe ich in dem Bericht dann auch noch auf X41t und X200t ein, die habe ich unter Debian auch laufen. Aber da habe ich es ähnlich gelöst.

Grüße
Frank

[Edit]...noch eine Frage in diesem Zusammenhang: Was meint Ihr ist besser: Komplett neuen Wiki-Eintrag oder einen Abschnitt bei TabletBuntu oder TabletBuntu umbenennen in meinetwegen "Tablets unter Linix" und jeweils eigene Unterabschnitte machen?[/Edit]
 
Zuletzt bearbeitet:
rotate-Status zu speichern ist vielleicht nicht so gut (besonders wenn du deinen Rechner im rotated-zustand runterfährst). Hier ist mein rotate-script, das ich unter Suse auf x200t verwende:
Code:
#!/bin/bash
 ROTATION="$(xrandr --verbose|grep " connected ")"
 ROTATION=$(echo ${ROTATION#*)} | cut -d' ' -f1)
case $ROTATION in
        normal)
                xrandr -o 3;xsetwacom set 'Serial Wacom Tablet stylus' Rotate CW
                ;;
        left)
                xrandr -o 0;xsetwacom set 'Serial Wacom Tablet stylus' Rotate NONE
                ;;
        inverted)
                xrandr -o 1;xsetwacom set 'Serial Wacom Tablet stylus' Rotate CCW
                ;;
        right)
                xrandr -o 2;xsetwacom set 'Serial Wacom Tablet stylus' Rotate HALF
                ;;
        *)
                ;;
 esac
 
rotate-Status zu speichern ist vielleicht nicht so gut (besonders wenn du deinen Rechner im rotated-zustand runterfährst).

Hallo,

den momentanen Status brauche ich vor allem dazu, zwischen den beiden Möglichkeiten (drehen über Hardware-Button und drehen über Schnellstarter) hin- und herzuschalten. Aber ich kann Deinem Einwand natürlich folgen (auch wenn ich persönlich noch nie im Tabletmodus heruntergefahren habe, aber es natürlich grundsätzlich möglich). Ich probiere das heute Abend mal kurz, ansonsten schreibe ich in die rc.local ein kurzes:

Code:
echo 0 > Ablageort/des/Status/Files

Dann ist das automatisch nach jedem Neustart auf "0" gesetzt.

Grüße
Frank
 
Hallo zusammen, so, ich habe den Text ein bisschen weniger "flapsig" formuliert und ins Wiki gestellt. Ich habe mich für eine neue Seite, nämlich "Linux auf X-Tablets" entschieden (hier: http://www.thinkpad-wiki.org/Linux_auf_X-Tablets). Diese Seite bietet auch Platz für Installationsanleitungen weiterer Distributionen. Wir Ihr seht, wenn Ihr Euch die Seite anseht, habe ich da noch nichts "wikifiziert", es gibt also noch keine internen oder externen Links. Das kommt noch, bzw. da ist auch Eurer Fantasie / Erfahrung freier Raum gesetzt. Ich selber werde mich demnächst mit einen X201t mit MT befassen. Dann kommt dazu auch noch ein Abschnitt rein. Grüße Frank
 
Zuletzt bearbeitet:
Danke für die Mühe. Wird bald von einem sehr interessierten Linux-DAU getestet.
 
Ne, hast Du nicht :facepalm:...habe ihn jetzt noch nachträglich eingefügt.
 
Help:confused:

Ich versuche mich mit einem X61T & Ubuntu Gnome 14.04 an der Anleitung im WIKI. Und begreife manche Dinge einfach nicht.

1. Die Taste "Drehung" : Was schreibe ich in die rc.local als code (oder statt des code) ?
Die anderen Tasten gehen. Die waren ja einfach.

2.
Über "Systemeinstellungen" --> "Tastatur" --> "Tastenkombinationen" kann die zuvor konfigurierte Rotationstaste (Tablet-Taste) mit diesem Script belegt werden.
Was ich beim Anlegen des Tastenkürzels im Feld Befehl eintragen soll hab ich auch noch nicht begriffen - den Pfad zur rotatex61t.sh ?

3.
Code:
touch /Pfad/zum/anzulegenden/Status-File
Das hier verwirrt mich total. Das hat irgendwie keinen Bezug zur Anleitung? Steht direkt über dem X61T Script.

_______

EDIT: nun geht es, aber:

Die Taste Drehung musste ich mit dem Code für F9 (die Taste brauche ich sonst nicht) in der rc.lcal belegen. Und F9 dann in den Systemeinstellungen zum Erstellen der Tastenkürzel mit dem Drehbefehl verwenden.

Ich habe dann für den Drehbefehl nicht das Script aus unserem WIKI genommen, sondern dieses von help.ubuntu. Absolut Anfängertauglich, copy & paste, Drehtaste und Ausrichtung der Steuerkreuztasten funktionieren nun.

Der ganze Kram mit wacom-tools und xsetwacom ist komplett überflüssig. Die entsprechenden Zeilen habe ich auch aus den Scripten rausgenommen.
Das geht mittlerweile alles automatisch. Irgendein Entwickler war da fleißig. Der Stift ist bei mir genauer als unter W7, Kalibrierug überflüssig.

Die Schnellstarter hatte ich mir auch angelegt (und wieder gelöscht - Taste ist besser), aber das Programm alacarte hat sich beharrlich geweigert die Icons abzuspeichern. Immerhin haben die funktioniert.
 
Zuletzt bearbeitet:
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben