IBM X41t

Aus wiki.archlinux.de

Mit einer ressourcenschonenden Linux-Distribution ist auch das mitlerweile etwas angestaubte X41t von Lenovo ein flotter Begleiter für den Alltag.

IBM X41t mit ArchLinux


Mit der richtigen Software-Auswahl kann man aus dem Tablet noch viel herauskitzeln. Im wesentlichen ist aber auch gute Hardware nötig, ich selbst besitze ein X41 Tablet mit folgenden technischen Daten:


  • Intel Centrino mit 1,6 Ghz Taktfrequenz
  • 1,5 GB Arbeitsspeicher
  • 60 GB Festplatte
  • Bluetooth
  • Intel PRO/Wireless 2915ABH WLAN-Karte
  • Fingerprint-Reader
  • Wacom-Tablet



Software-Auswahl

Bezüglich der Software-Auswahl, sollte man wissen, was man benötigt, ich setze hier auf:


  • LXDE-Desktop (minimalistisch, schnell, schick, dezent, GTK-basierend)
  • OpenOffice
  • Firefox 3.0 und Thunderbird


Ich setze hier bewusst nicht auf GNOME, KDE oder XFCE, da diese Desktop-Systeme meines Erachtens nach zu langsam und ressourcenfressend sind. KDE fällt hier schon als erstes raus, GNOME läuft akzeptabel auf dem X41 - wer aber wirklich schnell arbeiten will, ist auch hiermit nicht zufrieden. XFCE ist gar nicht viel schneller als GNOME, ferner überzeugt mich der Aufbau nicht. LXDE ist ein recht junger, aber nicht zu verachtender Desktop. Er ist schnell, simpel, dezent und dennoch schön.

Wichtig ist es auch, da LXDE das GTK-Framework benutzt, nach Möglichkeit auch GTK-Software zu benutzen. Das hat den Vorteil, dass keine weitere Bibliotheken mit geladen werden müssen. Das spart Speicher im Arbeitsspeicher und unnötige CPU-Last durch das Laden der Bibliotheken.

Später werden noch diverse Anwendungen installiert, die den "Flair" des Tablets untermalen und die "Usability" erhöhen sollen, beispielsweise:

  • Xournal als Programm für Notizen
  • Easystroke für Stiftbefehl
  • Cellwriter für Gestenerkennung


Selbstverständlich sollen auch alle Sondertasen und Events, wie das Drehen des Tablets möglich sein.

Grund-Installation

Ich setze voraus, dass ArchLinux korrekt installiert wurde - wir sprechen hier von der Grundinstallation ('core'). Wichtig sind bei der Grundinstallation folgende Pakete:

  • ipw2100-fw bzw. ipw2200-fw
  • iwlwifi-4965-ucode (jeweils für WLAN-Karten, je nach eingesetztem Modul - Ausgabe von lspci beachten)
  • netcfg

Diese Module ermöglichen nach der Installation die Anbindung über die integrierte WLAN-Karte, sowie eine Profilerstellung.

System-Updates

Nach der Installation empfiehlt es sich zuerst einmal die neuesten Updates zu installieren - hierfür wird eine Internet-Verbindung benötigt. Netzwerkprofile sind in /etc/network.d/ abgelegt, Beispiele liegen im Unterordner examples/ parat.

Wurde ein Profil erstellt, können ganz leicht die Updates eingespielt werden:

pacman -Syu

Sollte pacman zuerst aktualisiert werden wollen, so muss dies bejaht werden.

Nach der Installation kommt es manchmal vor, dass weitere Installationsvorgänge fehlschlagen, in einem solchen Fall muss die Datei /etc/pacman.d/mirrorlist überprüft werden, wahrscheinlich ist einfach kein Server ausgewählt worden. Bitte mindestens einen Server in geografischer Nähe aktivieren.


Es empfiehlt sich übrigens das community-Repository von ArchLinux zu aktivieren, da dieses viele nützliche von der Community gepflegte, Anwendungen enthält - hierfür muss eine Zeile in der /etc/pacman.conf angepasst werden:

[community]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mirrorlist

Nach dem Speichern ist eine erneute Einlesung der Pacman-Datenstände notwendig:

pacman -Syu

X-Server

Grundinstallation

Der X-Server ist für die grafische Ausgabe zuständig, er ist nach der Grundinstallation noch nicht vorhanden und muss nachinstalliert werden:

pacman -S xorg

Danach fehlen noch einige Eingabe-Treiber (aus welchen Gründen auch immer!), ebenso wie der Intel-Grafiktreiber. Sie müssen ebenfalls nachträglich installiert werden:

pacman -S xf86-input-keyboard xf86-input-mouse xf86-input-mice xf86-video-intel

xorg.conf

Ist der X-Server installiert, muss eine Konfigurationsdatei erstellt werden. X kann die Hardware erkennen und eine simple Konfigurationsdatei erstellen:

X -configure

Die angelegte Datei xorg.conf.new muss nun in das Konfigurationsverzeichnis /etc/X11 verschoben und anschließend editiert werden:

mv xorg.conf.new /etc/X11/xorg.conf
nano /etc/X11/xorg.conf

Folgende Bereiche müssen aktualisiert/modifiziert werden:


Tastatur

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "keyboard"
        Option      "XkbLayout" "de"
        Option      "XkbVariant" "nodeadkeys"
        Option      "XkbModel" "pc105"
EndSection

Maus/TrackPoint

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/input/mouse1"
        Option      "ZAxisMapping" "4 5 6 7"
        Option      "EmulateWheel" "true"
        Option      "EmulateWheelButton" "2"
EndSection

Intel-Grafikkarte

Section "Device"
        Identifier  "Card0"
        Driver      "intel"
        VendorName  "Intel Corporation"
        BoardName   "Mobile 915GM/GMS/910GML Express Graphics Controller"
        BusID       "PCI:0:2:0" #ggf. lspci beachten
EndSection

TFT-Auflösung

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes "1024x768"
        EndSubSection
EndSection

Fehlerbehebung

Damit der X-Server überhaupt beim Starten Tastatur und Maus findet, musste ich folgende Optionen im ServerFlags-Bereich hinzufügen:

Section "ServerFlags"
        Option "AutoAddDevices" "false"
        Option "AutoEnableDevices" "false"
        Option "AllowEmptyInput" "false"
EndSection

Wacom-Tablet

Das Tablet des X41t's kann in den meisten Fällen über die Gerätedatei des seriellen Geräts /dev/ttyS0 angesprochen werden, das kann man auf der Konsole überprüfen:

cat /dev/ttyS0

Wird der Stift auf dem Tablet bewegt, erscheint hier nun ziemlicher "Kauderwelsch". Ist dies nicht der Fall muss eine der folgenden Gerätedateien verwendet werden:

  • /dev/ttyS1
  • /dev/wacom
  • /dev/input/wacom


Treiber-Installation

Für den X-Server ist ein experimenteller Treiber notwendig, welchen wir aus dem AUR kompilieren müssen. Doch hierfür muss zuerst die Enwicklungsumgebung installiert werden:

pacman -S base-devel

Nun wird der Tarball des linuxwacom-cvs Pakets benötigt, er ist im AUR-Archiv von ArchLinux.org zu finden: http://aur.archlinux.org/packages/linuxwacom-cvs/linuxwacom-cvs.tar.gz


Dieser Tarball wird nun entpackt, um danach ein Paket daraus zu erstellen:

tar -xvzf linuxwacom-cvs.tar.gz

Hier fehlt noch das Programm cvs, sowie eventuell weitere Abhängigkeiten (siehe Ausgabe des nächsten Befehls!), installieren wir es:

pacman -S cvs

Nun kann aus dem Tarball ein Paket werden, welches wir anschließend installieren:

makepkg
pacman -U linuxwacom-cvs-*-i686.pkg.tar.gz

Wichtig, bei Fehlermeldungen unbedigngt die Abhängigkeiten überprüfen und erneut versuchen.


Ist der Treiber kompiliert, muss nur noch die /etc/X11/xorg.conf angepasst werden.

xorg.conf

Im ServerLayoutBereich werden drei Zeilen hinzugefügt:

InputDevice     "stylus" "SendCoreEvents"
InputDevice     "cursor" "SendCoreEvents"
InputDevice     "eraser" "SendCoreEvents"

Ferner werden drei neue InputDevice-Absätze eingefügt:

Section "InputDevice"
  Driver        "wacom"
  Identifier    "stylus"
  Option        "Device"        "/dev/ttyS0"
  Option        "Type"          "stylus"
  Option        "ForceDevice"   "ISDV4"
EndSection

Section "InputDevice"
  Driver        "wacom"
  Identifier    "eraser"
  Option        "Device"        "/dev/ttyS0"
  Option        "Type"          "eraser"
  Option        "ForceDevice"   "ISDV4"
EndSection

Section "InputDevice"
  Driver        "wacom"
  Identifier    "cursor"
  Option        "Device"        "/dev/ttyS0"
  Option        "Type"          "cursor"
  Option        "ForceDevice"   "ISDV4"
EndSection

Wichtig: Statt /dev/ttyS0 muss eventuell eine andere Gerätedatei (vorhin erwähnt) eingetragen werden!

Login-Manager

Als Login-Manager stehen hier verschiedene Möglichkeiten zur Verfügung, ich habe mich für slim entschieden, da dieser Manager ein Kompromiss zwischen Optik und Leistung ist:

pacman -S slim

Die Konfigurationsdatei /etc/slim.conf kann noch ein wenig angepasst werden:

hidecursor          false
...
daemon  yes
...
sessions            lxde
...
welcome_msg         Willkommen!
...
session_msg         Sitzung:
...
shutdown_msg       Herunterfahren...
reboot_msg         Neustart...
...
default_user        ihr Benutzername


Anschließend empfiehlt es sich, slim in der /etc/rc.conf in die Daemon-Liste einzutragen, wenn SLiM automatisch beim Start geladen werden soll:

DAEMONS=(syslog-ng network ... slim)


Sound

Für die Soundausgabe müssen lediglich zwei, bzw. drei Pakete installiert werden:

pacman -S alsa-lib alsa-utils alsa-oss

alsa-oss wird nur benötigt, um die Ausgabe von älteren OSS-Anwendungen auf ALSA zu skalieren/transponieren.

Nach der Installation steht der Sound sofort zur Verfügung, die Lautstärken der Regler Master, Master Mono, PCM und Headphone müssen erhöht (auf ca. 75) gestellt werden:

alsamixer

Nun werden die Einstellungen gespeichert:

rm /etc/asound.state
/etc/rc.d/alsa restart

Töne sollten nun wiedergegeben werden:

aplay /usr/share/sounds/alsa/Noise.wav

Damit die Soundumgebung auch beim Booten automatisch geladen wird, ist ein Eintrag in die Daemon-Liste der /etc/rc.conf notwendig:

DAEMONS=(... alsa ...)

Benutzer, die die Soundumgebung nutzen sollen, müssen Mitglied der Gruppe audio sein:

gpasswd -a BENUTZERNAME audio

LXDE-Desktop

Nun muss der LXDE-Desktop installiert werden. Kurioserweise installiert pacman derzeit den Fenstermanager openbox nicht automatisch mit. Dieser muss manuell dazu installiert werden, da Fenster ansonsten keine Rähmen haben und auch kein Mauszeiger zur Verfügung steht:

pacman -S lxde openbox obconf

obconf ist ein optionales Paket und bietet die Möglichkeit, das Aussehen und Handeln des Fenstermanagers an die eigenen Wünsche anzupassen.


Benutzerkonto und .xinitrc

Nun sollte ein Benutzerkonto für nicht-administrative Aufgaben angelegt werden:

adduser

Die Datei .xinitrc (grafisches Autostart-Skript) dieses Benutzers muss angepasst werden, damit LXDE nach dem Einloggen zur Verfügung steht:

#!/bin/sh
exec ck-launch-session startlxde

ck-launch-session wird hier benötigt, damit später mit DBus/HAL externe Medien, wie Speicherkarten und USB-Sticks, mit normalen Rechten gemoutet werden können.

Zusätzliche Dienste

Damit Sticks und Karten auch von einem normalen Benutzer gemountet werden können, müssen die Dienste portmap, dbus und hal installiert und gestartet werden:

pacman -S portmap dbus hal

Diese Dienste sollten in der /etc/rc.conf als Start-Daemons definiert werden:

DAEMONS=(... portmap dbus hal ...)

Der Benutzer muss nun noch zwei Gruppen hinzugefügt werden, damit er Medien mounten darf:

gpasswd -a BENUTZERNAME optical
gpasswd -a BENUTZERNAME storage

Für Schreibzugriff auf NTFS-Medien ist noch das NTFS-3G Framework notwendig:

pacman -S ntfs-3g

Letztendlich muss in der Datei /etc/pam.d/login noch folgende Zeile eingefügt werden:

session                     optional                   pam_ck_connector


Herunterfahren, etc...

Damit der Benutzer den Rechner auch herunterfahren, neustarten und in den Ruhezustand versetzen kann, muss er Mitglied der Gruppe power sein:

gpasswd -a BENUTZERNAME power

Software

Nun muss lediglich noch die Anwendersoftware installiert werden:

Firefox

pacman -S firefox firefox-i18n

Thunderbird

pacman -S thunderbird thunderbird-i18n

OpenOffice

pacman -S openoffice-de

Packer

pacman -S xarchiver unzip zip unrar

TrueCrypt

pacman -S truecrypt

Medienplayer und Codecs

pacman -S vlc codecs libdvdcss2

Xournal

pacman -S xournal

Cellwriter

wget http://aur.archlinux.org/packages/cellwriter/cellwriter.tar.gz
tar -xvzf cellwriter.tar.gz && cd cellwriter
pacman -S libgnome librsvg
makepkg
pacman -U cellwriter*.pkg.tar.gz

Easystroke

wget http://aur.archlinux.org/packages/easystroke/easystroke.tar.gz
tar -xvzf easystroke.tar.gz && cd easystroke
pacman -S gtkmm libxtst boost
makepkg
pacman -U easystroke*.pkg.tar.gz

Feinheiten und Extras

Zuletzt noch einige Feinheiten und Extras, die das Arbeiten mit dem Tablet-PC erst so richtig angenehm machen.

Bildschirm drehen

Extra-Knöpfe

System-Tuneups

Swappiness

Wenn der Arbeitsspeicher des Notebooks groß genug ist, kann man die Swappiness auf 0 setzen, die Swap (Auslagerungsdatei) wird dann nur verwendet, wenn der RAM zu Überlaufen droht. Ansonsten nicht. Das bringt mehr Speed ein, da der RAM um einiges schneller ist, als die Festplatte. Hierfür muss lediglich die Datei /etc/sysctl.conf um folgende Zeile erweitert werden:

vm.swappiness=0


Pacman-Cache

Nach der wilden Installationsorgie empfiehlt es sich, den Pacman-Cache zu löschen. Dort befinden sich noch viele temporäre Dateien, die unnötigen Speicherplatz belegen:

df -h && pacman -Scc && df -h
Dateisystem          Größe Benut  Verf Ben% Eingehängt auf
/dev/sda2             8,3G  2,7G  4,8G  40% /

Puffer-Verzeichnis: /var/cache/pacman/pkg/
Möchten Sie ALLE Pakete aus dem Puffer entfernen?  [j/N] j
Entferne alle Pakete aus dem Puffer... Fertig.
Datenbank-Verzeichnis: /var/lib/pacman/
Möchten Sie ungenutzte Repositorien entfernen?  [J/n] j
Datenbank-Verzeichnis wurde aufgeräumt

/dev/sda2             8,3G  2,6G  5,4G  33% /