Debian 8.3 auf einem Touch-Ultrabook einrichten

Viele Distributionen nutzen Debian als Basis. Warum nicht direkt Debian einsetzen? Gerade bei aktueller Hardware gibt es ein paar Stolpersteine, die man aus dem Weg räumen muss. Am Beispiel meines Touch-Ultrabook zeige ich wie das geht.

Ich besitze ein Toshiba Satellite Z30t mit Touchscreen. Auf diesem nutze ich Debian 8.3, statt dem vorinstalliertem Windows 8.1. Auf Grund der Vorgaben des Debian-Projectes sind in den ausgelieferten ISO-Dateien nur freie Treiber enthalten. Bis alles problemlos läuft ist deshalb etwas Handarbeit notwendig. Selbst bei dem Toshiba Satellite Z30t, welches die gleiche Hardware-Basis nutzt, wie das Buisness-Gerät Toshiba Portege Z30, funktionieren diverse Geräte nicht auf Anhieb. So benötigt das Intel-WLAN-Modul eine nicht freie Firmware, was auch auf 3 USB-WLAN-Adapter zutrifft, die mir zur Verfügung stehen. Der LAN-Port funktioniert dagegen sofort. Auch der Kernel ist mit Version 3.16 relativ alt. Das führt dazu, dass das Touchpad zwar funktioniert, jedoch ohne Unterstützung für Multitouch. Durch ein GitHub-Repository konnte ich herausfinden, dass mindestens Kernel 3.17 notwendig ist, damit das Touchpad des Z30t problemlos funktioniert (Quelle).

Im Folgenden beschreibe ich Schritt für Schritt die Einrichtung von Debian auf dem Touch-Notebook Toshiba Satellite Z30t.

Debian auf dem Z30t einrichten

Paketquellen einrichten

Da ich bei der Installation kein Netzwerkkabel angeschlossen hatte, konnte Debian keinen Spiegelserver für das Einspielen der Updates auswählen. Die Datei /etc/apt/sources.list ist entsprechend leer. Ich habe mir deshalb eine eigene Liste von Quellen zusammengestellt, über die ich die Updates beziehe:

deb ftp://ftp.uni-erlangen.de/debian/ jessie main contrib non-free
deb-src ftp://ftp.uni-erlangen.de/debian/ jessie main

deb ftp://ftp.hosteurope.de/mirror/ftp.debian.org/debian-security/ jessie/updates main contrib non-free
deb-src ftp://ftp.hosteurope.de/mirror/ftp.debian.org/debian-security/ jessie/updates main

# jessie-updates, previously known as 'volatile'
deb http://ftp.rrzn.uni-hannover.de/debian/debian/ jessie-updates main
deb-src http://ftp.rrzn.uni-hannover.de/debian/debian/ jessie-updates main

# backports
deb http://ftp2.de.debian.org/debian/ jessie-backports main contrib non-free

# tlp
# apt-key adv --keyserver pool.sks-keyservers.net --recv-keys CD4E8809
deb http://repo.linrunner.de/debian/ jessie main

# multimedia
# apt install deb-multimedia-keyring
deb http://debian.ids-services.de/debian-multimedia/ stable main
deb-src http://debian.ids-services.de/debian-multimedia/ stable main

# Iceweasel updates
# apt install pkg-mozilla-archive-keyring
deb http://mozilla.debian.net/ jessie-backports iceweasel-release

Neben den Spiegel-Servern für das Grundsystem gehören dazu noch die Backports für neuere Kernel-Versionen, tlp zum Aktivieren von zusätzlichen Stromsparfunktionen, Multimedia für nicht freie Codecs und Mozilla für neuere Versionen von Iceweasel. Bei drei Quellen beschwert sich apt über fehlende Signaturen, welche mit den in den Kommentaren vermerkten Befehlen hinzugefügt werden können.

sudo aktivieren

Debian vergibt noch für den Nutzer root ein separates Passwort und verzichtet auf die Nutzung von sudo. Lezteres lässt sich mit einem einzelnen Befehl als root korrigieren: usermod -aG sudo <user>. <user> ersetzt man dabei durch seinen eigenen Nutzernamen. Die Gruppe sudo ist bei Debian 8.3 schon vorhanden und ein zugehöriger Eintrag in der Datei sudoers existiert ebenfals. Startet man eine neue Shell, ist ab sofort sudo nutzbar.

Guake und fish (aus den backports) installieren

Um sudo zu testen kann man sich ein alternatives Terminal und eine alternative Shell installieren. Ich nutze die Kombination aus dem Terminal Guake und der Shell fish. Zum Installieren gibt man

sudo apt install -t jessie-backports guake fish

ein. fish gibt es nur in jessie-backports, welhalb diese Quelle als Target -t angegeben werden muss.

Guake ähnelt den Consolen aus Ego-Shootern (z.B. aus Quake) und erscheint als Overlay über den aktuellen Fenstern. Hat man es einmal gestartet, lässt es sich mit [F12] aufrufen. Ein Rechtsklick ermöglicht das Öffnen der Einstellungen, wo man im Tab Allgemein den Standard-Interpreter auf /usr/bin/fish ändern kann. Beendet man die aktuelle Shell (z.B. mit [Strg]+[D] öffnet Guake beim nächsten Start fish. fish ist für mich die am besten zu bedienende Shell. Auch deren Konfiguration ist sehr einfach, wenn man mit dem Befehl fish_config das zugehörige Web-Frontend aufruft.

Autostart für Guake einrichten

Bei Debian 8.3 (mit Gnome-Desktop) ist das Programm gnome-tweak-tool installiert und dient dazu diverse Einstellungen vorzunehmen. Dazu gehört auch das Festlegen von Startprogrammen. Im Gnome-Dash tippt man dazu tweak ein und bekommt das Programm Optimierungswerkzeug vorgeschlagen. Nach dem Start muss man den Tab Startprogramme auswählen, wo man Guake aus eine Liste von verfügbaren Programmen selektieren und zu den Startprogrammen hinzufügen kann.

Firmware für das WLAN-Modul einspielen

Um das richtige Paket für die Firmware zu finden, nutze ich die Suche von apt:

apt search intel wifi
apt show -a firmware-iwlwifi

Der erste Befehl liefert eine Liste mit Treffern zu den beiden Suchbegriffen. Mit dem zweiten Befehl schaue ich mir die Details zu einem der Treffer an, in diesem Fall ist es firmware-iwlwifi. Der Parameter -a sorgt dafür, dass auch die neuere Version aus den Backports angezeigt wird. Um letztere zu installieren nutze ich

sudo apt install -t jessie-backports firmware-iwlwifi

Nach einem Neustart des Notebooks funktioniert das WLAN.

Einen neueren Kernel installieren

Um einen aktuellen Treiber für mein Touchpad zu erhalten werde ich einen neueren Kernel installieren. Die Backports bieten mir die Versionen 4.2 und 4.3 an, was eine Suche mit apt search linux-image offenlegt. Installiert wird der neue Kernel analog zu den bisher aus den backports installierten Paketen.

sudo apt install -t jessie-backports linux-image-amd64

Bei einem Neustart steht der neue Kernel zur Auswahl, bzw. ist schon als Standard gewählt.

Touchscreen nach Suspend-to-RAM reaktivieren

Leider funktioniert der Touchscreen nicht mehr, nachdem ich Debian 8.3 aus dem Suspend-to-RAM aufwecke. Im ArchLinux-Forum bin ich auf eine Lösung für das Problem gestoßen. Mit den folgenden Befehlen werden zwei Dateien erstellt, damit Systemd das Reaktivieren automatisch ausführt. Die erste Datei ist das eigentliche Script, zum Reaktivieren des Touchscreen. Die zweite Datei stellt einen Systemd-Service dar, welcher auf Grund von After=suspend.target nach dem Aufwachen aus dem Suspend-to-RAM ausgeführt wird.

sudo mkdir /opt/touchscreen-fix
cd /opt/touchscreen-fix
echo '#!/bin/sh
/sbin/rmmod hid_multitouch && /sbin/modprobe hid_multitouch' | sudo tee resume.sh
sudo chmod +x resume.sh

echo '[Unit]
Description=Fix touchscreen after resume
After=suspend.target

[Service]
Type=simple
ExecStart=/opt/touchscreen-fix/resume.sh

[Install]
WantedBy=suspend.target' | sudo tee /etc/systemd/system/touchscreen-fix.service

sudo systemctl daemon-reload
sudo systemctl enable touchscreen-fix.service

TRIM für die SSD aktivieren

Bei Debian 8 wird kein TRIM für eine SSD eingerichtet. Aus diesem Grund muss man dies manuell nachholen. Ich verwende dazu die Methode, die auch bei Ubuntu Verwendung findet: Per cron wird ein Script ausgeführt, welches den Befehl fstrim ausführt. Details dazu können im Wiki von ubuntuusers nachgelesen werden.

Tastaturbeleuchtung steuern

Die Tastaturbeleuchtung des Toshiba Z30 lässt sich in einem Timeout-Modus betreiben, bei dem sie sich auf Tastendruck aktiviert. Drückt man eine bestimmte Zeit keine Taste, schaltet sich die Hintergrundbeleuchtung aus. Eigentlich kann man mit [FN]+[Y] zwischen dauerhaft an, vollständig deaktiviert und Timeout-Modus wechseln. Leider funktioniert dies unter Linux nicht. Es ist immer der Modus aktiv, den man im Bios eingestellt hat. Kann man mit dieser Einstellung nicht leben, kann man sich ein Script schreiben, um die Hintergrundbeleuchtung umzuschalten. Die Dateien

/sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS6208:00/kbd_backlight_mode
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS6208:00/kbd_backlight_timeout

ermöglichen die Konfiguration der Hintergrundbeleuchtung. In kbd_backlight_mode sind die Werte 2 (Timeout-Modus), 8 (dauerhaft an) und 16 (vollständig deaktiviert) zulässig. In kbd_backlight_timeout wird für den Timeout-Modus die Leuchtdauer in Sekunden festgelegt (Quelle). Um auf die Dateien zuzugreifen sind root-Rechte notwendig. Es kann deshalb sinnvoll sein die Zugriffsrechte von 644 auf 666 zu ändern.

Timeout von Grub2 deaktivieren

Von der SSD bootet Debian 8 in wenigen Sekunden (systemd-analyze zeigt den Wert für den letzten Bootvorgang an). Der Start von Debian wird jedoch deutlich verlängert, weil Grub2 ein Timeout von 5 Sekunden verwendet. Hat man nicht mehrere Betriebssysteme installiert, kann es sinnvoll sein den Timeout auszuschalten. Dazu sind nur zwei Schritte notwendig:

  1. In der Datei /etc/default/grub findet man die Zeile GRUB_TIMEOUT=5, wo man die 5 durch eine 0 ersetzen kann.
  2. Damit Grub2 den neuen Wert verwendet, muss man mit sudo update-grub die Datei /boot/grub/grub.cfg neu erzeugen.

Die Konfiguration von Grub2 wird detailliert im Wiki von ubuntuusers.de beschrieben.

Nützliche Software installieren

Ich schlage ein paar Programme vor, welche auf einem Ultrabook nicht fehlen sollten. Hauptsächlich geht es dabei um eine Verlängerung der Akkulaufzeit.

tlp zur Aktivierung weiterer Stromspar-Mechanismen

Mittlerweile sind die in Debian integrierten Mechanismen schon ganz gut. Viel kürzere Akku-Laufzeiten, als unter Windows sind selten geworden. Mit Hilfe von tlp kann man jedoch noch etwas mehr Laufzeit erreichen. Die passende Paketquelle habe ich schon eingerichtet, womit die folgende Zeile ausreicht, um tlp zu installieren. Anschließend startet es von alleine und benötigt normalerweise keine zusätzliche Konfiguration.

sudo apt install tlp tlp-rdw

Anschließend kann man sich ein Überblick über die unterstützen Mechanismen machen. sudo tlp-stat erzeugt eine ausführliche Übersicht, in der man außerdem SMART-Werte der Festplatte und den Status des Akkus (z.B. Energie, wenn vollgeladen) findet. Letzteres vermisse ich im Akku-Applet von Gnome3. Bei Ubuntu's Unity konnte ich Details zum Akku mit Hilfe des Applet aufrufen, was mit Gnome3 nicht funktioniert.

Effizienter Videos schauen mit mpv

Der mpv-Player ist eine Weiterentwicklung von mplayer2 und MPlayer. mpv verfügt über eine minimalistische Oberfläche, die als Overlay realisiert ist. Die meisten Funktionen lassen sich über Tastenkürzel bedienen. Ich nutze mpv, weil die Hardwarebeschleunigung besonders gut funktioniert. Bei Debian 8.3 sind folgende Schritte notwendig, wenn man einen Intel-Grafikchip besitzt:

sudo apt install mpv
echo 'hwdec=vaapi
vo=vaapi' | tee ~/.config/mpv/mpv.config

Die Konfigurationsdatei ist notwendig, damit mpv auch den Hardwaredecoder vaapi nutzt. Belohnt wird man mit einer sehr geringen CPU-Last und damit einer längeren Akku-Laufzeit. Aktiviere ich die Hardwarebeschleunigung mit vaapi nicht, stürzt mpv reproduzierbar ab, sobald ich in den Vollbild-Modus wechsle (Taste [F] wie bei VLC). Somit profitiere ich gleich doppelt von vaapi.