Installation von Ubuntu Intrepid Ibex (8.10) auf ThinkPad X200s

Zwar liegt die Installation von Ubuntu auf meinem ThinkPad X200s schon ein paar Monate zurück (November 2008), ich möchte meine Erfahrungen aber dennoch teilen (auch wenn ich das Problem mit einer ansprechenden Code-Darstellung in WordPress immer noch nicht lösen konnte). Inzwischen läuft 9.04 darauf, aber als Upgrade und nicht als Installation, weshalb ich keine Erfahrungen mit der Installation von 9.04 habe. [Update 21. Mai 2010:] Inzwischen läuft 10.04, entsprechende Aktualisierungen wurden in den Text eingefügt. [Update 17. Oktober 2010:] Änderungen, die sich mit Ubuntu 10.10 ergeben, arbeite ich ein, sofern sie mir auffallen.

Vorbereitungen

Da das X200s kein optisches Laufwerk besitzt und ich keinen Bedarf für ein Ultrabase habe, muss die Installation via USB-Stick vorgenommen werden. Dazu habe auf meinem Desktop-Rechner über System -> Systemverwaltung ein USB-Startmedium erstellt. Nach dem Einschalten des ThinkPads kann man über F12 das Gerät auswählen, von dem gebootet werden soll.

Partitionierung

Der erste Anlauf der Partitionierung der Festplatte – Verkleinerung der NTFS-Partition – schlug fehl. Nach einem Neustart waren die NTFS-Partitionen allerdings dennoch verändert und Vista machte sich an die Reparatur. Nach einem erneuten Neustart von Ubuntu vom USB-Stick zeigte der Partitions-Editor die verkleinerten Partitionen an. Ich habe dann bloß Partitionen für boot, swap und angelegt. Die anschließende Installation verlief reibungslos.

Display-Auflösung

Die voreingestellte Display-Auflösung ist mit 1024×768 falsch. Allerdings wird die korrekte Auflösung (1280×800) erst angezeigt, wenn man vor »Bildschirme spiegeln« unter System -> Einstellungen -> Anzeige das Häkchen entfernt. Dann allerdings platziert sich der GNOME-Desktop nach wie vor auf 1024×768. Das heißt die beiden Panels sind nur 1024 Pixel breit und das untere Panel liegt nicht ganz unten bei 800 Pixeln, sondern auf 768 Pixel, so dass unter diesem Panel noch 32 Pixel Platz. Fenster lassen sich hingegen auf die korrekte Auflösung maximieren. Mit Hilfe des ThinkWikis war aber auch dieses Problem schnell zu beheben. Diese Einstellungen sind mit Ubuntu 9.04 nicht mehr notwendig. Dafür gibt es in 9.04 mit dem Intel-Treiber und dem Standard-Kernel neue, schwerwiegendere und viel diskutierte Probleme. Diese habe ich gelöst, in dem ich einen neueren Kernel installiert habe.

Netzwerk

WLAN funktionierte beim ersten Start out-of-the-box, die Verbindung zu meinem WLAN-Router wurde problemlos hergestellt. Die Anmeldung funktioniert also automatisch. Einem Tipp auf der Linux-ThinkPad-Mailingliste folgend habe ich /sys/bus/pci/drivers/iwlagn /0000:03:00.0/power_level auf 5 gesetzt, wodurch sich die durchschnittliche MiniPCI-Temperatur um 5°C gesenkt hat.

Hotkeys

Fn-F2, Fn-F4, Fn-F5, Lautstärke hoch/runter/stumm, ThinkLight und Bildschirm-Helligkeit funktionieren out-of-the-box; mehr habe ich nicht getestet. [Update 19. März 2010:] Diese Woche habe ich erstmals Fn-F7 mit einem angeschlossenen Beamer getestet. Das hat wunderbar funktioniert. Man kann zwischen vier verschiedenen Ausgabemöglichkeiten wechseln: Ausgabe nur auf Display, Ausgabe nur auf Beamer, Spiegelung der Ausgabe auf Beamer und Display und Erweiterung des Displays um die Beamer-Anzeige. Letzteres ist nützlich, um beispielsweise die Präsentation über den Beamer zu zeigen und Notizen nur auf dem Laptop-Display anzeigen zu lassen.

Trackpoint

Damit ich mit dem Trackpoint und gedrückter mittlerer Maustaste horizontal und vertikal scrollen kann und der mittlere Mausklick trotzdem noch zum Einfügen von Ausgewähltem verwendet werden kann, musste ich die Datei /etc/hal/fdi/policy/mouse-wheel.fdi mit folgendem Inhalt anlegen:

<match key="info.product" string="TPPS/2 IBM TrackPoint">
 <merge key="input.x11_options.EmulateWheel" type="string">true</merge>
 <merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
 <merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
 <merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
 <merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
 <merge key="input.x11_options.EmulateWheelTimeout" type="string">200</merge>
</match>

Außerdem habe ich Geschwindigkeit und Empfindlichkeit über sysfs.conf (benötigt sysfsutils, siehe auch Abschnitt Batterie) angepasst, in dem ich folgende Zeilen in /etc/sysfs.conf eingefügt habe:

# Geschwindigkeit und Empfindlichkeit des Trackpoints einstellen:
devices/platform/i8042/serio1/speed=90
devices/platform/i8042/serio1/sensitivity=250

[Update 21. Mai 2010:] Seit 10.04 (Lucid Lynx) verwendet Ubuntu HAL nicht mehr. Stattdessen wird diese Funktionalität wieder wie früher über den X-Server konfiguriert. Neu ist allerdings, dass die Einstellungen nicht wie früher in /etc/X11/xorg.conf vorgenommen werden, sondern eine Datei mit den Einstellungen unterhalb von /usr/lib/X11/xorg.conf.d/ angelegt wird. Ich habe die Datei bei mir 20-ThinkPad.conf genannt. Sie hat folgenden Inhalt:

Section "InputClass"
	Identifier	"Trackpoint Wheel Emulation"
	MatchProduct	"TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics
Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with
TrackPoint|USB Trackpoint pointing device"
	MatchDevicePath	"/dev/input/event*"
	Option		"EmulateWheel"		"true"
	Option		"EmulateWheelButton"	"2"
	Option		"Emulate3Buttons"	"false"
	Option		"XAxisMapping"		"6 7"
	Option		"YAxisMapping"		"4 5"
EndSection

[Update 17. Oktober 2010:] Der Pfad zu 20-ThinkPad.conf hat sich in Ubuntu 10.10 geändert. Die Datei muss nun in /usr/share/X11/xorg.conf.d/ abgelegt werden.

Weitere Informationen im ThinkWiki.

Webcam

Ekiga zeigt mir das Bild von der Webcam out-of-the-box an. Mangels Nutzung kann ich nicht sagen, ob die Übertragung zu einem Gesprächspartner auch reibungslos funktioniert. Seit 9.04 funktioniert die Webcam auch mit Cheese, das damit Bilder und Videos aufnehmen kann.

Lüfter

Das einzige Nervige ist der ständig laufende Lüfter. Einige Minuten nach dem Einschalten springt der Lüfter an und läuft dann permanent auf mindestens 2 300 RPM . Der Lüfter ist zwar fast nicht zu hören – die Festplatte ist lauter –, aber im Batterie-Betrieb zieht der Lüfter natürlich unnötig Strom. Außerdem stresst es mich, wenn der Lüfter ständig läuft, weil es nicht sein muss, wie man unter Vista feststellen kann. Das Problem konnte bisher auch nicht mit Hilfe der linux-thinkpad-Mailingliste eingegrenzt werden. Interessant ist meine Beobachtung, dass mit Hilfe eines externen Lüfters die Temperaturen der Sensoren soweit gesenkt werden können, dass auch unter Linux der Lüfter wieder still steht. Das Problem muss also etwas mit den Temperaturen und der Hysterese zu tun haben. Unter Vista läuft der Lüfter bei gleichen Temperaturen allerdings nicht an … Vorsicht ist geboten, bei dem an vielen Stellen empfohlenen Programm tpfand zur Steuerung des Lüfters. Der Entwickler des Kernel-Moduls thinkpad-acpi, Henrique de Moraes Holschuh, rät auch explizit von der Verwendung etwaiger Tools zur Kontrolle des Lüfters ab. Bei mir hat tpfand dazu geführt, dass die verschiedenen Lüfter-Stufen, die über thinkpad-acpi angesprochen werden können, nicht mehr einstellbar waren. Ich musste erst wieder tpfand deaktivieren – in Wirklichkeit habe ich es direkt entfernt –, um die Lüfter-Stufen von Hand einstellen zu können. Wichtig ist, dass das Modul thinkpad-acpi mit der Option fan_control=1 geladen wird. Dazu legt man am besten eine Datei in /etc/modprobe.d/ an, die folgende Zeile enthält: options thinkpad_acpi fan _control=1. Bei mir heißt die Datei thinkpad_acpi.modprobe, was aber bei anderen Distributionen aufgrund des Punktes im Dateinamen zu Problemen führen kann. Letzteres gilt inzwischen auch für zukünftige Ubuntu-Versionen. [Update Mai 2009:] Mit 9.04 hat sich die Lüfter-Situation deutlich entspannt, der Lüfter geht beim Erreichen bestimmter Temperaturen auch wieder aus. Testweise habe ich neulich den Lüfter beim Arbeiten von Hand ausgeschaltet (echo level 0 > /proc/acpi/ibm/fan) und die Temperaturen sind nicht über 55°C gestiegen, was unbedenklich ist (mit echo level auto > /proc/acpi/ibm/fan schaltet man die automatische Steuerung wieder ein). [Update 13. Februar 2010:] Mit der BIOS-Version 3.11 hat sich die Situation nochmals verbessert, der Lüfter läuft nur noch sehr selten.

Batterie

Die meisten ThinkPad-Modelle bieten die Möglichkeit den Ladezustand der Batterie genau zu kontrollieren. So kann man beispielsweise Ober- und Untergrenzen für die Ladung der Batterie angeben, um die Lebensdauer der Batterie zu erweitern. Dazu benötigt man das Kernel-Modul tp_smapi, das noch das Modul thinkpad_ec und außerdem noch eine verbesserte Version des HDAPS-Treiber mit bringt. Auf dem X200s – und weiteren neuen ThinkPad-Modellen – muss thinkpad_ec mit der Option force_io=1 geladen werden. Damit dies automatisch beim Starten passiert, legt man sich wieder eine Datei in /etc/modprobe.d/ an und trägt folgendes ein: options thinkpad_ec force_io=1. Damit die Module automatisch geladen wird, habe ich tp_smapi und hdaps in /etc/modules eingetragen; thinkpad_ec wird dann ebenfalls geladen. Von den Grenzwerten für die Ladung der Batterie mache ich Gebrauch. Die werden solange im EC gespeichert, bis das Gerät vollständig vom Strom getrennt wurde (Netzteil und Batterie entfernt) oder Windows gestartet wurde, das die Grenzwerte bei jedem Start ins EC schreibt. Damit dies auch mit Linux geschieht – und man es nicht nach jedem Neustart von Hand machen muss –, installiert man sich sysfsutils und trägt anschließend folgende zwei Zeilen in /etc/sysfs.conf ein: devices/platform/smapi/BAT0/start_charge_thresh=35 und devices/platform/smapi/BAT0/stop_charge_thresh=80. Die Grenzwerte kann man zwischen 0 und 100 wählen und sie geben den prozentualen Ladestand an. Bei der Installation von tp_smapi ist zu beachten, dass Ubuntu selbst schon thinkpad_ec und tp_smapi in /lib/modules/‘uname -r‘/kernel/ubuntu/misc/ mit bringt. Damit diese nicht geladen werden, habe ich sie umbenannt.

HDAPS

Um HDAPS sinnvoll nutzen zu können, müssen Kernel < 2.6.28 gepatcht werden; in 2.6.28 ist der Code bereits enthalten. Bei mir schlug die Installation des gepatchten Kernels zunächst fehl, weil ein Skript in der Postinstallations-Routine mit einem Fehler ausstieg. Da es sich um nvidiacommon handelte und im X200s keine Nvidia-Komponenten verbaut sind, bin ich getrost dem Rat gefolgt, zu Beginn der Datei exit 0 zu schreiben. Danach hat die Installation funktioniert. Auch hdapsd konnte damit seinen Dienst verrichten, dafür schlägt jetzt aber dieser Bug zu: https: //bugs.launchpad.net/bugs/286285, der auch im normalen 8.10-Ubuntu-Kernel vorhanden ist, wie ich feststellen muss. Ich habe erst mal mit sudo /etc/init.d/klogd stop klogd gestoppt. Der Bug ist im Kernel aus den intrepid-proposed-Quellen behoben, weshalb ich mir diesen installiert hatte. Wie bereits erwähnt, läuft inzwischen aber ein Mainline-Kernel (2.6.30).

Damit das Modul automatisch geladen wird, habe ich es in /etc/modules eingetragen. Bei meinem ThinkPad musste ich auch noch den richtigen Wert in /sys/devices/platform/hdaps/ invert eintragen, damit die Rotations-Achsen stimmen. Damit auch dies automatisch funktioniert, nimmt man wieder einen Eintrag in /etc/sysfs.conf vor: devices/platform/hdaps/invert=5. hdapsd zur Überwachung des Beschleunigungssensors habe ich mir aus den Quellen selbst kompiliert. Seit Version 20090129 ist eine Installationsroutine dabei, wie man sie auch von anderen Programmen kennt:

./configure
make
sudo make install

VGA-Ausgang

Der VGA-Ausgang bereitet mir derzeit noch die größten Probleme: https://lists.ubuntu.com/ archives/ubuntu-de/2008-December/015152.html. Mit 9.04 und dem 2.6.30er Kernel habe ich den VGA-Ausgang allerdings nicht mehr getestet.

Energie sparen

Folgende Einstellungen habe ich mit Hilfe von ltp-ML, powertop, ThinkWiki und anderen ThinkPad-Nutzern vorgenommen:

# WWAN-Karte ausschalten
echo 0 > /sys/devices/platform/thinkpad_acpi/wwan_enable
# Power-Management für WLAN-Karte
iwconfig wlan0 power on
# USB 1.1 ausschalten, indem das entsprechende Modul entladen wird
#rmmod uhci_hcd # inzwischen in blacklist aufgenommen
echo -n 5 > /sys/bus/pci/drivers/iwlagn/0000:03:00.0/power_level
for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $i; done
echo 10 > /sys/module/snd_hda_intel/parameters/power_save
echo 5 > /sys/module/usbcore/parameters/autosuspend
for i in /sys/class/scsi_host/host*/link_power_management_policy; do echo min_power > $i; done
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

Schlussbemerkung

Gerne wäre ich an manchen Stellen ausführlicher geworden, aber dann hätte ich jetzt immer noch nicht veröffentlichen können. Sollte jemand auf diesen Eintrag stoßen und etwas nicht verstehen oder weitergehende Fragen haben, kann er diese gerne stellen und ich will versuchen diese zu beantworten. Grundsätzlich sei auch auf das ThinkWiki hingewiesen, das sehr viele nützliche Informationen zu Linux auf ThinkPads bereit hält. Dort wäre auch ein geeigneter Platz für diesen Eintrag, wenn ich ihn ins Englische übersetzen würde. Aber dafür fehlt mir eindeutig die Zeit. Außerdem gibt es dort bereits Berichte zum X200(s) und Ubuntu: http://www.thinkwiki.org/wiki/Installation_instructions_for_the_ThinkPad_X200. Ich lese regelmäßig die englischsprachige Mailingliste linux-thinkpad, was sehr nützlich ist, um auf den aktuellen Stand zu bleiben: http://www.thinkwiki.org/wiki/Mailinglists#Linux-ThinkPad_Mailinglist. Schließlich gibt es noch einen Ubuntu-Bug-Report mit dem Ziel den Energieverbrauch von X200(s)-Modellen unter Ubuntu zu optimieren: https://bugs.launchpad.net/bugs/380293.

Last but not least: Ich bin sehr zufrieden mit dem X200s! 🙂 Leicht, schnell, robust, klasse Tastatur und alle typischen ThinkPad-Spezialitäten.

ThinkPad X200/X200s nicht auf BIOS 3.01 aktualisieren!

Mehrere Besitzer eines Lenovo ThinkPad X200 und X200s berichten von schwerwiegenden Problemen nach dem Upgrade auf die BIOS-Version 3.01. Das System lässt sich nicht mehr hochfahren und das Einspielen einer alten BIOS-Version schlägt ebenfalls fehl. Leider erweist sich der Lenovo-Support als wenig hilfreich, was ich ausgesprochen bedauerlich finde. Ich bin selbst Besitzer eines X200s und ein wichtiger Grund für die Anschaffung von ThinkPads war der bisher vorbildliche Service von IBM und später auch Lenovo. Über meinen lokalen Lenovo-Händler kann ich bisher auch nicht klagen …

Für das BIOS-Problem hat ein Anwender einen Workaround gefunden: In den BIOS-Einstellungen (nach dem Einschalten über F1 zu erreichen) ist unter Config > CPU »Intel VT-d Feature« zu deaktivieren. Bleibt zu hoffen, das Lenovo dieses Problem schnell behebt.