Thinkpad R61i

[Thinkpad R61i von der Seite]

Thinkpad R61i

Da ich seit Februar 2008 im Besitz eines neuen, schicken lenovo Thinkpads R61i bin möchte ich an dieser Stelle einfach ein paar Zeilen zum Linux support dieses Gerätes schreiben. Generell in einem Satz zusammengefasst kann man schreiben Linux, hier Kubuntu 10.10, läuft sehr gut auf diesem Laptop. Was heißt das im einzelnen?

  • Die eingebaute Hardware ist unterstützt: WLAN, LAN, Sound, Grafik (mit beschleunigtem Treiber), USB, PCMICA Steckplatz
  • Energiesparmodi funktionieren
  • Viele Zusatztasten bzw. über die Tastatur erreichbare Sonderfunktionen funktionieren auf Anhieb, die anderen sind hier im Text beschrieben.

Im Thinkpad R61i verwendete Hardware

Im Thinkpad R61i (Modell NG1D6GE) werden nach dem Start von Linux die folgenden PCI Devices gefunden:

00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 0c)
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c)
00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)
04:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express (rev 02)
15:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b6)

Nach dem aktivieren des Bluetooth Adapters mittels der Tastenkombination Fn+F5 meldet sich an der USB Schnittstelle noch der Broadcom Blootooth Adapter.

Bus 001 Device 002: ID 0a5c:2110 Broadcom Corp.

Über diese Auflistung muß man sich aber eigentlich keine weiteren Gedanken machen, sie dient mehr der Information für diejenigen die sich für ein solches Gerät zum Einsatz unter Linux interessieren. Kubuntu 10.10 unterstützt die gesamte Hardware fast direkt nach der Installation, manchmal sind aber kleine, manuelle Eingriffe nötig. Die ursprüngliche Beschreibung hier ist tatsächlich mit der ersten Installation von 9.04 entstanden, seitdem aktualisiere ich den Rechner immer. Am besten lädt man sich eine Installations+Live-CD über Bittorrent. Ich habe seinerzeit die Version Karmic Koala heruntergeladen und seitdem bis Maverick Meerkat (10.10) upgedated. Es waren nie Anpassungen des Systems nötig.

Partitionieren

Leider läßt sich die Windows-Steuer nur schwer vermeiden. So wird das Gerät wie folgt partitioniert ausgeliefert: Eine große Partition für "C:" auf der Windows XP vorinstalliert war und eine versteckte Partition auf der sich ein Rettungssystem befindet mit dem man den Ursprungszustand wiederherstellen kann. Mit dem Partitionierer von kubuntu habe ich die große Partition gelöscht und neu unterteilt um ein /, /home und natürlich swap-space zu bekommen. Das Rettungssystem habe ich behalten und auch nicht verschoben oder sonstwie angefasst (ist ja auch nur ca. 6 GB groß)

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        6322    50781433+  83  Linux
/dev/sda2           13867       14593     5836320   12  Compaq diagnostics
Partition 2 does not end on cylinder boundary.
/dev/sda3            6323       13714    59376240   83  Linux
/dev/sda4           13715       13866     1220940   82  Linux swap / Solaris

So sieht die Paritionierung dann aus wenn man sie sich mit fdisk im installierten System anschaut. Die Platte meldet sich übrigens wie folgt (auf den interessanten Teil gekürzt):

ata1.00: ATA-8: HITACHI HTS542512K9SA00, BB2ZC3HP, max UDMA/133
ata1.00: 234441648 sectors, multi 16: LBA48 NCQ (depth 31/32)
ata1.00: configured for UDMA/133
scsi 0:0:0:0: Direct-Access     ATA      HITACHI HTS54251 BB2Z PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 234441648 512-byte hardware sectors (120034 MB)

Verwenden

Nach der Installation darf man sich erstmal freuen. Grundsätzlich bootet in der Defaultkonfiguration des Laptops (keine Bios Einstellungen geändert o.ä.) Linux mit dem während der Installation geschrieben grub einwandfrei. Es startet direkt der X-Server in der richtigen Auflösung von 1280x800 Pixeln.

Verbesserungsmöglichkeiten

Nach erster Freude kann man feststellen daß ein paar Kleinigkeiten nicht funktionieren. Meist lässt sich das durch Nachinstallieren einiger Pakete und Auswahl spezieller Optionen erledigen.

Mit Fn+F-Taste erreichbare Funktionen

Damit die mit der Fn-Taste erreichbaren Sonderfunktionen funktionieren sollte man die Optionen des thinkpad_acpi Moduls überprüfen. Diese sind in der Datei /etc/modprobe.d/thinkpad_acpi abgelegt. Mit den folgenden Optionen funktionieren dann alle Fn-Tastenkombinationen.

options thinkpad_acpi hotkey=enable,0xffffff experimental=1

Der aktuelle Kernel von 10.10 meckert über diese Option allerdings. Also habe ich sie entfernt. Die Funktionen (hell-dunkler, Lautstärke) funktionieren trotzdem.

Im Linux-Kernel sourceverzeichnis befindet sich eine ausführliche Dokumentation in Documentation/thinkpad_acpi.txt.

Folgende Aktionen werden getriggert wenn Fn + die gegebene Taste gedrückt wird.

Stromsparen

Zum mobilen Arbeiten ist es hilfreich erstmal die stromverbrauchende Hardware und Prozesse zur Ermitteln. Hierzu kann man powertop verwenden. Dieses nette Programm (kann man mittels apt-get install powertop nachinstallieren) gibt einem einfache und effiziente Tipps zum Stromsparen.

Sinnvolle Einstellungen sind iwpriv eth1 set_power 5 um den eingebauten WLAN Controller in den Energiesparmodus zu schalten. Diese Einstellung ist allerdings mit dem kubuntu Kernel von 8.10 mit Vorsicht zu genießen (9.04 habe ich nicht getestet). Im Energiesparmodus kommt es vor, daß nach längerer Zeit (ein bis zwei Stunden) plötzlich der Link verloren geht und sich keine WLAN Verbindung mehr herstellen lässt.

Eine weitere sinnvolle Einstellung ist echo 5 > /proc/sys/vm/laptop_mode.

Bild^ und Bildv im Terminal umbelegen

Eine Einstellung die ich bei SUSE Linux immer sehr praktisch fand ist die Belegung der Bild^ und Bildv Taste mit einer Suche in der Kommandohistory der Shell. Mit der folgenden Änderung in der Datei /etc/inputrc bekommt man dieses Verhalten auch wieder bei kubuntu hin. Hat man keine root-Rechte kann man sich auch mit einer Datei .inputrc im Homeverzeichnis behelfen.

# alternate mappings for "page up" and "page down" to search the history
"\e[5~": history-search-backward
"\e[6~": history-search-forward

Diese Zeilen sind schon vorbereitet, man muß nur das `#' Zeichen am Zeilenanfang entfernen.

Geblinke der WLAN LED abstellen

Manche mögen es als Feature empfinden, ich finde es sehr lästig: Bei Netzwerkverkehr zum oder aus dem WLAN blinkt die WLAN Kontroll LED - das ist sehr irritierend, weil hier die ganze Zeit eine irritierendes Geflacker im Sichtfeld bemerkbar ist.

Update zu 10.10. Der untere Trick funktioniert nicht mehr, da der entsprechende Eintrag unter /sys... fehlt. Man kann jetzt aber einen Modulparameter angeben. Also nun folgende Änderung:

boa:~>cat /etc/modprobe.d/iwl3945.conf 
options iwlcore led_mode=1

damit hat auch mit Kubuntu 10.10 das nervige geblinke wieder ein Ende.

echo 0 > /sys/class/leds/iwl-phy0\:assoc/brightness

das funktioniert aber nur mit 9.04. Offensichtlich gibt es in 9.10 einen Bug, da wollen nämlich zwei Doppelpunkte geschrieben werden

echo 0 > /sys/class/leds/iwl-phy0\:\:assoc/brightness

Ich habe eine Datei /etc/network/if-up.d/ibm-wireless angelegt die den folgenden Shellcode enthält

#!/bin/sh
# . /usr/share/acpi-support/state-funcs

if [ -f /sys/class/leds/iwl-phy0\:assoc/brightness ]; then
        echo 0 > /sys/class/leds/iwl-phy0\:assoc/brightness
fi
if [ -f /sys/class/leds/iwl-phy0\:\:assoc/brightness ]; then
        echo 0 > /sys/class/leds/iwl-phy0\:\:assoc/brightness
fi

und das Geblinke hat ein Ende, sowohl auf 9.04 als auch auf 9.10.

Knackenden Sound abstellen

Nach der Installation fiel mir auf das aus den Lautsprechern laufend ein fieses Knacken kommt, sobald man Sound längere Zeit nicht benutzt, oder wieder benutzt. Das ist ein bekannter Bug und mit einer kurzen Änderung in /etc/modprobe.d/alsa.conf habe ich das bei mir abgestellt:

#options snd-hda-intel power_save=10 power_save_controller=N
options snd-hda-intel power_save_controller=0

die originale Zeile habe ich auskommentiert und die darunterstehende neue eingegeben. Nach einem reload der alsa module bzw. einem Neustart ist das geknacke weg.