IBM ThinkPad Z60M

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Teil ist Artikel der Hardware Serie.
Laptops Motherboards Servers Eingabegeräte RAID Controller TV Karten Wireless Andere Hardware Andere Architekturen alphabetischer Hardware Index


Inhaltsverzeichnis

[Bearbeiten] Einleitung

Hier findest du eine Anleitung, wie du Gentoo auf einem IBM ThinkPad Z60m UH3FBGE zum laufen bekommst. Bekanntlich führen viele Wege nach Rom, so ist es auch hier. Ich beschreibe eine Möglichkeit davon. Vielleicht sind noch andere Lösungen möglich, aber diese funktioniert auf jeden Fall. Damit bekommst du fast alles an diesem Gerät zum laufen, was bei Laptops unter Linux ja leider nicht immer selbstverständlich ist.

Ich teste es gerade noch auf einem zweiten Laptop und werde eventuelle Fehler bis nächste Woche noch ausbessern.

Diese Anleitung bezieht sich auf Gentoo 2006.0 und Kernel 2.6.15.1. Die verwendete Kernel-Version ist ganz wichtig, da einiges gepatcht werden muss. Also bitte darauf achten. Ich versuche alle Schritte zu beschreiben und nur wo es um nicht Z60m typische Dinge geht, verweise ich auf externe Dokumentationen.

Ich verwende selbst Gnome als Arbeitsoberfläche, aber mit geringen Abweichungen kannst du diese Anleitung hier sicher auch für andere Desktop-Umgebungen, ja vielleicht sogar für andere ThinkPad-Modelle verwenden.

Achso, wenn im Text nichts anderes erwähnt wird, sind alle Befehle hier als root auszuführen.

Viele Infos habe ich selbst im ThinkWiki - Linux ThinkPad Wiki (englisch) gefunden (vielen, vielen Dank!) und natürlich durch Google oder selber ausprobieren.

Jetzt kann ich nur noch für dich hoffen, dass IBM nicht wie andere Hersteller (trotz gleicher Produktbezeichnung) immer wieder andere Hardware verbaut. Also viel Spaß beim Installieren ...

[Bearbeiten] Vorbereitungen

Auf dem Laptop ist nach dem Kauf Windows vorinstalliert. Je nachdem wie du den Laptop nutzen willst, sind hier andere Vorbereitungen nötig. Ich fange gar nicht erst mit Dual-Boot oder komplizierter Partitionierung an. Bei mir kommt überall nur Gentoo drauf und so auch auf den Laptop! Du kannst dir aber spätere Arbeit ersparen, indem du einiges vor der Linux-Installation beachtest:

  • IBM liefert keine CD's mit dem Betriebssystem mit
    Auf der Festplatte gibt es deshalb eine "versteckte" Partition, auf der diese Daten gespeichert sind. Wenn mal nix mehr geht, drückt man beim booten die blaue "ThinkVantage" Taste und kann den ursprünglichen Zustand wiederherstellen. Wenn du irgendwann mal wieder den Auslieferungszustand schnell und bequem herstellen willst/musst, solltest du diese Partition nicht löschen!
  • Wiederherstellungsdatenträger erstellen
    Um im Notfall die vorinstallierte Software ohne der versteckten Partition wiederherzustellen, kannst du dir jedoch eine Wiederherstellungs-DVD erstellen. Dazu kannst du das Programm "Wiederherstellungsdatenträger erstellen" unter Windows verwenden. Dabei wird gleich noch die DVD "ThinkVantage Rescue and Recovery" miterstellt, mit einigen Systemtools. Den Wiederherstellungsdatenträger sollte man noch vor der Installation von Linux erstellen.
  • Bios-Update machen
    Vor der Linux-Installation sollte man auch gleich noch ein aktuelles Bios installieren. Geht vielleicht auch später (ungetestet), aber es erspart eventuell Ärger bei der Installation. Ich verwende hier die Version 1.14.
  • Lesegerät für Fingerabdrücke konfigurieren
    Ich habe noch vor der Linux-Installation meine Fingerabdrücke per vorinstallierter Software einlesen lassen. So kann ich den Sensor auch ohne spezielle Linux-Software bereits als Boot- und Biospasswortschutz verwenden.

[Bearbeiten] Installation von Gentoo

Die Installation erfolgt wie im Gentoo Linux 2006.0 x86 Handbuch beschrieben. Bei der Installation verzichte ich auf Wlan und habe den Laptop per Kabel an einen Router angeschlossen. Leider wird die Netzwerkkarte nicht automatisch von der LiveCD erkannt. Es ist eine Broadcom Corporation NetXtreme BCM5751M Gigabit Ethernet PCI Express Karte die mit dem Modul "tg3" funktioniert. Man muss sie vor der Installation "per Hand" aktivieren. Entwerder im Terminal per # modprobe tg3 oder man trägt im grafischen Installer bei der Pre-install Config folgendes ein:

Code: Pre-install Config
Networking
Interface:   eth1
Misc.
Other:
Kernel modules: tg3


Dann funktioniert auch das Netzwerk und man kann zb. eine stage3 Installation mit einem aktuellen stage3 Archiv machen.

Die Festplatte habe ich folgendermaßen aufgeteilt:

Code: cfdisk /dev/sda
                             Disk Drive: /dev/sda
                       Size: 80026361856 bytes, 80.0 GB
             Heads: 255   Sectors per Track: 63   Cylinders: 9729
   Name        Flags      Part Type  FS Type          [Label]        Size (MB)
------------------------------------------------------------------------------
   sda1                    Primary   Linux ext2        BOOT             106.93
   sda2                    Primary   Linux swap / Solaris              1069.29
   sda3                    Primary   Linux ext3        ROOT           31461.70
   sda4                    Primary   Linux ext3        HOME           47385.84


[Bearbeiten] Erste Schritte nach der Installation

Als erstes muss wieder das Netzwerk konfiguriert werden, da genkernel das nicht erkennt. Das Modul ist da, wird jedoch nicht geladen. Also ..

# modprobe tg3

dann ..

# cd /etc/init.d/net.eth0 start


Bei der Installation war das noch eth1, aber da gab es wohl ein Modul für den Wlan-Adapter.

Als nächstes holen wir uns den 2.6.15er Vanilla-Kernel, den wir dann auf unsere Bedürfnisse anpassen können und auch müssen, da für einige Harwarekomponenten der Kernel gepatcht werden muss:

# emerge vanilla-sources

Ergänzung: Jetzt ist schon der 2.6.16er aktuell (stable), deshalb mache bitte folgendes vorher:

# echo '>=sys-kernel/vanilla-sources-2.6.16' >> /etc/portage/package.mask

[Bearbeiten] Kernel konfigurieren

Das ist ein kritischer Punkt, bei dem man viel falsch machen kann. Ich kann auch nicht alles erklären und verweise deshalb auch auf das Gentoo Handbuch, Manuelle Konfiguration des Kernels oder auf Kernel manuell kompilieren, wo einiges schon beschrieben ist. Wichtig für unseren Laptop sind folgende Sachen:

Code: Kernel Version 2.6.15

Processor family (Pentium M) --->

   (X) Pentium M

--- Power Management support

   [*]   Legacy Power Management API
       [*] Software Suspend
       (/dev/sda2) Default resume partition

ACPI (Advanced Configuration and Power Interface) Support --->

   [*] ACPI Support                                                                                           
   [*]   Sleep States                                                                                         
   [ ]     /proc/acpi/sleep (deprecated)                                                                      
   <*>   AC Adapter                                                                                           
   <*>   Battery                                                                                              
   <*>   Button                                                                                               
   <*>   Video                                                                                                
   <*>   Generic Hotkey (EXPERIMENTAL)                                                                         
   <*>   Fan                                                                                                  
   <*>   Processor                                                                                            
   <*>     Thermal Zone                                                                                        
   < >   ASUS/Medion Laptop Extras                                                                            
   <*>   IBM ThinkPad Laptop Extras                                                                           
   < >   Toshiba Laptop Extras                                                                                
   (0)   Disable ACPI for systems before Jan 1st this year                                                      
   [ ]   Debug Statements                                                                                     
   [*]   Power Management Timer Support                                                                       
   < >   ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL)

CPU Frequency scaling --->

   [*] CPU Frequency scaling
   <*>   CPU frequency translation statistics
   <*>   'performance' governor
   <*>   'powersave' governor
   <*>   'ondemand' cpufreq policy governor
   <*>   'conservative' cpufreq governor
   <*>   Intel Enhanced SpeedStep
   [*]     Use ACPI tables to decode valid frequency/voltage pairs
   <*>   Intel Speedstep on ICH-M chipsets (ioport interface)

Device Drivers --->

Multi-device support (RAID and LVM) --->

   [*] Multiple devices driver support (RAID and LVM)
       <*>   Device mapper support
       <*>     Crypt target support

Networking --->

   <*>   Bluetooth subsystem support  --->
       --- Bluetooth subsystem support
       <*>   L2CAP protocol support
       <*>   SCO links support                                                                     
       <*>   RFCOMM protocol support                                                               
       [*]     RFCOMM TTY support                                                                  
       <*>   BNEP protocol support                                                                 
       [ ]     Multicast filter support                                                            
       [ ]     Protocol filter support                                                             
       <*>   HIDP protocol support                                                                 
       Bluetooth device drivers  --->
             <*> HCI USB driver
             <M> HCI BCM203x USB driver
       

Ethernet (1000 Mbit) --->

   <*> Broadcom Tigon3 support

Wireless LAN (non-hamradio) --->

   [*] Wireless LAN drivers (non-hamradio) & Wireless Extensions
   

Character devices --->

   <*> /dev/agpgart (AGP Support)
   <*>   ATI chipset support

Hardware Monitoring support --->

   <*> IBM Hard Drive Active Protection System (hdaps)

Graphics support --->

   [*]   VESA VGA graphics support
   [*] Backlight & LCD device support  --->
       <*>   Lowlevel Backlight controls                                                          
       <*>   Lowlevel LCD controls

<*> Sound card support

   Advanced Linux Sound Architecture  --->
       <M> Advanced Linux Sound Architecture                                                         
            <M> Sequencer support                                                                         
            < >   Sequencer dummy client                                                                  
            <M> OSS Mixer API                                                                             
            <M> OSS PCM (digital audio) API                                                               
            [ ] OSS Sequencer API                                                                         
            <M> RTC Timer support                                                                         
            [ ]   Use RTC as default sequencer timer                                                      
            [ ] Verbose printk                                                                            
            [ ] Debug                                                                                     
                Generic devices  --->
                PCI devices  --->
                       <M> Intel HD Audio

MMC/SD Card support --->

   <M> MMC support                                                                                     
   [ ]   MMC debugging                                                                                 
   <M>   MMC block device driver                                                                       
   < >   Winbond W83L51xD SD/MMC Card Interface support

Cryptographic options --->

   --- Cryptographic API
   <*>   SHA256 digest algorithm
   <*>   Blowfish cipher algorithm
   <*>   AES cipher algorithms (i586)


Das waren längst nicht alle Optionen, die im Kernel aktiviert werden müssen :-) Aber die wichtigsten, damit alles erkannt wird. Wenn es schnell gehen soll, biete ich dir hier meine eigene funktionierende Kernel-config von meinem Z60m an. Jetzt nur noch ein:

# make && make modules_install

Und dann den Kernel installieren.

Jetzt kannst du noch einen Eintrag in der /boot/grub/grub.conf hinzufügen, damit du den beim booten auch auswählen kannst:

Datei: grub.conf
[...]
title   GNU/Linux Gentoo 2006.0
root    (hd0,2)
kernel  (hd0,0)/boot/bzImage root=/dev/sda3 vga=0x318
[...]


[Bearbeiten] X11 und eine Desktop-Umgebung nach Wahl installieren

Hier kannst du nach dem X-Server Konfigurations HOWTO und zb. der Konfigurationsanleitung für Gnome vorgehen.

Ergänzung: Beim Konfigurieren mit # Xorg -configure werden Touchpad/Trackpoint leider nicht erkannt. Du kannst das in der neu erstellten Datei /root/xorg.conf.new aber einfach anpassen:

# nano -w /root/xorg.conf.new

Datei: Datei /root/xorg.conf.new bearbeiten
[...]
Section "InputDevice"
       Identifier  "Mouse0"
       Driver      "mouse"
       Option      "Protocol" "auto"
#      Option      "Device" "/dev/mouse"
#      ersetzen durch
       Option      "Device" "/dev/input/mice"
EndSection
[...]


[Bearbeiten] Wlan konfigurieren

Im Laptop steckt eine Intel Corporation PRO/Wireless 2915ABG. Die kann mit dem ipw2200 Treiber benutzt werden. Ich verwende nicht den Kerneltreiber, da ich damit Probleme beim Kopieren großer Dateien per NFS und bei Suspend to Ram/Disk hatte. Die neueste Treiber-Version kannst du einfach mit emerge installieren:

# emerge ipw2200 ipw2200-firmware

Das wird sicher nicht gehen, da wir ja noch gar kein Netzwerk fest eingerichtet hatten. Also nochmal kurz das Kabel einstecken und folgendes vorher aufrufen:

# /etc/init.d/net.eth0 start

Beim Installieren kommt folgende Fehlermeldung:

Code: emerge error
Your kernel source contains an incompatible version of the
ieee80211 subsystem, which needs to be removed before


Beheben kannst du das, indem du jetzt oder besser schon vorher folgenden Befehl ausführst:

# /bin/sh /usr/portage/net-wireless/ieee80211/files/remove-old /usr/src/linux

Nun kann das enstprechende Modul geladen werden:

# modprobe ipw2200

Wenn alles geklappt hat, sollte ein # dmesg | grep ipw folgendes liefern:

Code: Ausgabe von dmesg
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, git-1.0.8
ipw2200: Copyright(c) 2003-2005 Intel Corporation
ipw2200: Detected Intel PRO/Wireless 2915ABG Network Connection


Wenn keine Fehlemeldung kommt, können wir das Netzwerk konfigurieren. Ich zeige hier, wie man schnell eine (rel. unsichere) WEP-Verbindung herstellt. Dazu wird das Paket wireless-tools benötig:

# emerge wireless-tools

Nun passen wir die Datei /etc/conf.d/net an unsere Bedürfnisse an:

Datei: /etc/conf.d/net

config_eth0=( "dhcp" )
modules=( "iwconfig" )
key_XXXDeineSSIDXXX="[1] XXXDeinHexKeyXXX key [1] enc open"
preferred_aps=( "XXXDeineSSIDXXX" )
config_XXXDeineSSIDXXX=( "dhcp" )


Alles zwischen den "XXX" (XXX dann natürlich auch entfernen) musst du natürlich an deinen Access Point anpassen. Dann kannst du das Netzwerk starten:

# /etc/init.d/net.eth0 stop

# /etc/init.d/net.eth1 start

Den Erfolg kannst du einfach in einem Terminal damit überprüfen:

# ping dreckstool.de

Wenn das funktioniert kannst du dein Netzwerk (Wlan) so einrichten, dass es gleich beim booten gestartet wird:

# rc-update add net.eth1 default

Für eine Verbindung per Kabel analog dazu halt:

# rc-update add net.eth0 default

Für zu Hause reicht das so, aber wenn man sich ständig in verschiedenen Netzen einwählen will/muss ist das keine Lösung. Da hilft dir vielleicht das Netzwerkmanagement mit ifplug weiter. Benötigst du eine sichere Verbindung per WPA, dann findest du dazu auch Infos im Gentoo Handbuch.

[Bearbeiten] Home-Partition verschlüsseln und Benutzer anlegen

Nachdem das Netzwerk funktioniert, kannst du dich nun auf den Balkon oder in den Garten begeben und mit der Installation weiter machen :-)

Jetzt wird es Zeit einen Benutzer zum täglichen arbeiten anzulegen. Dazu empfehle ich zuerst die Home-Partition zu verschlüsseln. Wenn du deinen Kernel schon mit meinen Vorschlägen unter Kernel konfigurieren gebaut hast, kannst du gleich mit der Anleitung Partition verschlüsseln mit DM-Crypt und Crytpsetup-LUKS weiter machen.

Anschließend kannst du den Benutzer anlegen, wie im Gentoo Handbuch, Benutzerverwaltung beschrieben.

[Bearbeiten] Soundkarte konfigurieren

Im Laptop ist ein Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller. Wenn du meine vorgeschlagene Kernel-Konfiguration schon übernommen hast, reicht ein:

# emerge alsa-utils

Danach führst du einmal im Terminal folgenden Befehl aus:

# alsaconf

Dabei wird die Soundkarte problemlos erkannt (hda-intel) und die Konfiguration wird übernommen und die Module geladen. Möchtest du das automatisch beim Systemstart haben, musst du noch das hier ausführen:

# rc-update add alsasound boot

Für weitere Infos schaue bitte auch in den Gentoo Linux ALSA Guide.

[Bearbeiten] TrackPoint und externe USB-Maus nutzen

Ich habe bei mir im BIOS das Touchpad deaktiviert, da ich mit dem TrackPoint sehr gut zurecht komme. Der TrackPoint funktioniert auch sofort, wenn man die /etc/X11/xorg.conf so wie in X11 und eine Desktop-Umgebung nach Wahl installieren beschrieben anpasst. Möchte man noch den linken Mausklick direkt per TrackPoint benutzen, ist folgender Befehl nötig:

# echo -n 1 > /sys/devices/platform/i8042/serio0/press_to_select

Da man das sicher nicht bei jedem Neustart neu eingeben möchte, trägt man es dauerhaft in die Datei /etc/conf.d/local.start ein.

Weiter Infos zum TrackPoint findest du hier (englisch) und es gibt sogar ein grafisches Konfigurationsprogramm für Gnome.

Eine externe USB-Maus kann auch sofort parallel zum TrackPoint benutzt werden. Möchtest du da das Scrollrad nutzen sind zwei zusätzliche Zeilen in der /etc/X11/xorg.conf nötig.

Datei: Datei /root/xorg.conf.new bearbeiten
[...]
Section "InputDevice"
       Identifier  "Mouse0"
       Driver      "mouse"
       Option      "Protocol" "auto"
       Option      "Device" "/dev/input/mice"
       Option      "Buttons" "7"
       Option      "ZAxisMapping" "6 7"
EndSection
[...]


Hat die Maus noch zusätliche Tasten zb. für Vor- und Zurück im Browser sind folgende Schritte auszuführen:

# emerge imwheel

Erstelle die Datei /etc/X11/Xmodemap mit diesem Inhalt:

Datei: Dateiinhalt /etc/X11/Xmodemap:
pointer = 1 2 3 6 7 4 5


Erstelle eine Datei /etc/X11/imwheel/imwheelrc mit diesem Inhalt:

Datei: Dateiinhalt /etc/X11/imwheel/imwheelrc:
".*"
None, Up,   Alt_L|Left
None, Down, Alt_L|Right


Nun muss noch imwheel bei jedem Start von X gestartet werden:

# imwheel -k -b "67" (als normaler Benutzer)

Ich habe mir dafür ein kleines Script mit dem Namen maustasten erstellt:

Datei: Dateiinhalt maustasten
#!/bin/bash
/usr/bin/imwheel -k -f -b "67"


Das wird nach /usr/local/bin/ kopiert und mit # chmod 775 /usr/local/bin/maustasten ausführbar gemacht. Bei Gnome zb. kannst du das dann dauerhaft im Menü unter "System --> Einstellungen --> Sitzungen --> Startprogramme" eintragen. Nach dem Neustart von X funktioniert dann auch die externe Maus mit Scrollrad und den Zusatztasten (getestet mit Epiphany und Mozilla).

[Bearbeiten] Bluetooth konfigurieren und benutzen

Im Laptop arbeitet ein USB Bluetooth-Gerät von Broadcom mit der USB ID 0a5c:2110, welches mit dem BMC203x-Treiber benutzt werden kann. Wenn du meine vorgeschlagene Kernel-Konfiguration schon übernommen hast, kannst du jetzt Bluetooth installieren. Dazu benötigen wir die aktuellsten Versionen (~x86) von gnome-bluetooth, bluez-libs und libbtctl. Dafür muss das hier in der Datei /etc/portage/package.keywords eingetragen werden (eventuell neu erstellen):

Datei: Dateiinhalt /etc/portage/package.keywords
net-wireless/gnome-bluetooth ~x86
net-wireless/bluez-libs ~x86
net-wireless/libbtctl ~x86


Anschließend reicht ein:

# emerge gnome-bluetooth

Nun kannst du die Datei /etc/bluetooth/hcid.conf anpassen. Security auf "auto" und ich würde gleich den Namen ändern, den andere dann auf ihrem Bluetooth-Gerät von dir sehen:

Datei: Dateiinhalt /etc/bluetooth/hcid.conf
[...]
# Security Manager mode
       #   none - Security manager disabled
       #   auto - Use local PIN for incoming connections
       #   user - Always ask user for a PIN
       #
       # security user;
       security auto;
[...]
device {
       # Local device name
       #   %d - device id
       #   %h - host name
       # name "BlueZ (%d)";
       name "Z60M (Laptop)";
[...]


Nun noch eine Pin vergeben, damit nicht jeder bei dir zugreifen kann:

# nano -w /etc/bluetooth/pin

Datei: Dateiinhalt /etc/bluetooth/pin
0815


Jetzt kannst du Bluetooth starten und das Ganze auch gleich beim Systemstart aktivieren:

# /etc/init.d/bluetooth start

# rc-update add bluetooth default

Bluetooth benutzen:

Als erstes suchst du bei deinem Gerät (Handy, Palm, was auch immer) nach neuen Geräten. Dort sollte jetzt der in der Datei /etc/bluetooth/hcid.conf eingegebene Name erscheinen. Wenn du das auswählst, wirst du nach der Pin gefragt, die du in der Datei /etc/bluetooth/pin eingegeben hast. Nun kannst du zwischen diesen Geräten schon mal Dateien austauschen.

Zum empfangen auf dem Laptop startetst du nur das Programm "Bluetooth-Dateiverwaltung" (Anwendungen --> Systemwerkzeuge). Der Status wird dir immer im Panel angezeigt

Zum senden rufst du im Terminal zb. "gnome-obex-send versenden.jpg" auf.

Für weitere Infos schaue bitte auch in den Gentoo Linux Bluetooth Guide (englisch).


[Bearbeiten] CPU-Frequenz anpassen

Um die Akkulaufzeit zu verlängern, ist es sinnvoll den Prozessortakt bei geringer Last automatisch zu verringern. Dazu reicht:

# emerge cpufreqd

# /etc/init.d/cpufreqd start

# rc-update add cpufreqd default

Den Erfolg kannst du damit überprüfen (Netzstecker raus und rein):

watch grep \"cpu MHz\" /proc/cpuinfo

Eventuell muss noch mit cpufreq-set dem Prozess gesagt werden welches die minimale CPU-Frequenz ist...

Unter Gnome gibt's auch ein gutes Applet für das Panel (Überwachen der Prozessortaktstufen). Da kannst du auch selbst den Takt umschalten.

Weitere Infos um Energie zu sparen findest du auch in der Power Management Anleitung.

[Bearbeiten] Suspend to RAM (S3)

Der Zustand kann durch die Tastatur oder auch das Schließen des Deckels ausgelöst werden. Als erstes testen wir das mal "per Hand". Dazu benötigen wir das hibernate-script:

# emerge hibernate-script

Anschließend muss die Datei /etc/hibernate/ram.conf angepasst werden. Es reicht erstmal einen Eintrag auszukommentieren:

Datei: /etc/hibernate/ram.conf
[...]
### hardware_tweaks
# IbmAcpi yes
IbmAcpi yes
[...]


Dann rufen wir im Terminal einfach hibernat-ram auf. Aufwecken kannst du den Laptop dann wieder mit der blauen Fn-Taste links unten in der Ecke. Das sollte auf Anhieb funktionieren.

[Bearbeiten] Suspend to Disk (S4)

Dabei wird der gesammte Speicherinhalt in deine Swap-Partition geschrieben und ein Neustart des Laptops geht etwas schneller. Dazu musst du nun aber die Datei /etc/hibernate/hibernate.conf anpassen:

Datei: /etc/hibernate/hibernate.conf
[...]
# alles unter dem Abschnitt
### suspend2 (for Software Suspend 2)
# mit einer Raute davor deaktivieren

### sysfs_power_state
## To use /sys/power/state to suspend your machine (which may offer
## suspend-to-RAM, suspend-to-disk, standby, etc) comment out all the options
## above for Software Suspend 2, below for acpi_sleep, and uncomment this line.
## You may replace mem with any one of the states from "cat /sys/power/state"
# ändern:
# UseSysfsPowerState mem
# PowerdownMethod shutdown
UseSysfsPowerState disk
PowerdownMethod suspend-to-disk
[...]
### hardware_tweaks
# IbmAcpi yes
IbmAcpi yes
[...]


Jetzt testen wir das in einem Terminal mit dem Befehl # hibernate und der Laptop sollte herunter fahren. Wenn du jetzt den Laptop am Netzschalter wieder einschaltest, liest er die Swap-Partition aus und stellt den letzten Stand wieder her.

[Bearbeiten] ACPID konfigurieren

Nun wollen wir das ja nicht immer per Hand machen sondern automatisch oder per Tastatur. Dazu benötigen wir acpid:

# emerge acpid

# /etc/init.d/acpid start

# rc-update add acpid default

Jetzt können wir kontrollieren, ob das funktioniert. Dazu geben wir in einem Terminal folgendes ein:

# tail -f /var/log/acpid

Wenn du jetzt Fn+F4 (die Tastenkombination für sleep) drückst, sollte da folgendes stehen:

Code: Ausgabe von # tail -f /var/log/acpid
[Sat May 13 21:23:17 2006] BEGIN HANDLER MESSAGES
[Sat May 13 21:23:17 2006] END HANDLER MESSAGES
[Sat May 13 21:23:17 2006] action exited with status 0
[Sat May 13 21:23:17 2006] completed event "button/sleep SLPB 00000080 00000002"


Prima. Dann funktioniert das schon mal. Das ist aber auch die einzige Tastenkombination, die erkannt wird. Um das zu ändern wird folgender Befehl benötigt:

# echo enable,0xffff > /proc/acpi/ibm/hotkey

Um das immer zu aktivieren, trägt man es am besten in die Datei /etc/conf.d/local.start ein.

Nun werden auch andere Tasten erkannt, aber es passiert noch nichts. Warum? ACPID benötigt für jedes Ereignis zwei Scripte. Unter /etc/acpi/events/ ein Script, in dem steht was beim Tastendruck geschehen soll und das eigentliche Script, was ausgeführt werden soll. Wenn man ein eigenes erstellt, ist /etc/acpi/ ein guter Platz dafür.

Also erstellen wir uns doch einfach ein Script, was Suspend to RAM (S3) aktiviert (Fn+F4):

Datei: Dateiinhalt /etc/acpi/events/suspendtoram
event=(ibm/hotkey HKEY 00000080 00001004)
action=/usr/sbin/hibernate-ram


Um das zu testen ist ein Neustart vom acpid nötig:

# /etc/init.d/acpid restart

Jetzt Fn+F4 drücken. Funktioniert? Prima! Dann machen wir zügig mit den anderen Scripten weiter.

  • Mit diesem hier funktioniert das Ganze auch per Deckel öffnen oder schließen:
Datei: Dateiinhalt /etc/acpi/events/lid
event=(button/lid LID)
action=/usr/sbin/hibernate-ram


Datei: Dateiinhalt /etc/acpi/events/suspendtodisk
event=(ibm/hotkey HKEY 00000080 0000100c)
action=/usr/sbin/hibernate


  • Damit kann man Bluetooth aktivieren und deaktivieren (Fn+F5):
Datei: Dateiinhalt /etc/acpi/events/bluetoothumschalten
event=(ibm/hotkey HKEY 00000080 00001005)
action=/etc/acpi/bluetoothumschalten.sh


Datei: Dateiinhalt /etc/acpi/bluetoothumschalten.sh
#!/bin/bash
 # enable/disable bluetooth
 cat /proc/acpi/ibm/bluetooth|grep status|grep -q enabled
 if [ $? == 0 ]; then
    echo disabled > /proc/acpi/ibm/bluetooth
 else
    echo enabled > /proc/acpi/ibm/bluetooth
 fi


  • Damit kann man das DVD-Laufwerk sicher entfernen (Fn+F9):
Datei: Dateiinhalt /etc/acpi/events/eject
event=(ibm/hotkey HKEY 00000080 00001009)
action=/etc/acpi/eject.sh


Datei: Dateiinhalt /etc/acpi/eject.sh
#!/bin/bash
/usr/bin/sync
/sbin/idectl 1 off
/usr/bin/echo eject > /proc/acpi/ibm/bay


  • Damit kann der Bildschirm per Xscreensaver gesperrt werden (Fn+F2):
Datei: Dateiinhalt /etc/acpi/events/lock
event=(ibm/hotkey HKEY 00000080 00001002)
action=/etc/acpi/lock.sh


Datei: Dateiinhalt /etc/acpi/lock.sh
#!/bin/bash
 XUSER=`who | grep ':0' | cut -d ' ' -f 1`
 if test -n "$XUSER"; then
    su - $XUSER -c "DISPLAY=:0 /usr/bin/xscreensaver-command -lock"
    sleep 2
 fi


  • Damit können unter Gnome Maus und Trackpoint konfiguriert werden (Fn+F8):
Datei: Dateiinhalt /etc/acpi/events/trackpointeinstellen
event=(ibm/hotkey HKEY 00000080 00001008)
action=/etc/acpi/trackpointeinstellen.sh


Datei: Dateiinhalt /etc/acpi/trackpointeinstellen.sh
#! /bin/sh
 XUSER=`who | grep ' :0' | cut -d ' ' -f 1`
 if test -n "$XUSER"; then
    su - $XUSER -c "DISPLAY=:0 gnome-mouse-properties"
    sleep 2
 fi


  • Damit lässt sich der Videoausgang umschalten (Fn+F7):
Datei: Dateiinhalt /etc/acpi/events/videoausgangumschalten
event=(ibm/hotkey HKEY 00000080 00001007)
action=/etc/acpi/videoausgangumschalten.sh


Datei: Dateiinhalt /etc/acpi/videoausgangumschalten.sh
#!/bin/sh

 status=`/bin/awk '/^(lcd|crt):/ { ORS=""; print $2 }' /proc/acpi/ibm/video`

 if [ "$status" == "enableddisabled" ]; then
        /usr/bin/echo lcd_disable,crt_enable >/proc/acpi/ibm/video
 elif [ "$status" == "disabledenabled" ]; then
        /usr/bin/echo lcd_enable >/proc/acpi/ibm/video
 elif [ "$status" == "enabledenabled" ]; then
        /usr/bin/echo crt_disable >/proc/acpi/ibm/video
 fi

 exit 0


Anmerkung: Bei mir klappt das leider nur auf der Konsole. Unter X wird Fn+F7 ignoriert.


Die Scripte unter /etc/acpi/ müssen alle ausführbar sein, also ein # chmod 775 /etc/acpi/dein_script.sh nicht vergessen.

[Bearbeiten] Zusatztasten (Lautstärke, Helligkeit, ThinkVantage) konfigurieren

Lautstärke und Helligkeit lassen sich ohne weitere Anpassungen nutzen, wobei die Lautstärkeregelung leider nicht mit dem Mixer zusammen arbeitet. Also wenn man per Hardware den Ton runter regelt, lässt sich das im Mixer nicht wieder auf Maximum regeln! Ich beschreibe hier nur, wie man auch eine Anzeige für die Einstellungen hinbekommt und die ThinkVantage-Taste mit einem beliebigen Programm belegen kann. Dazu ist es erforderlich, das Programm tpb zu installieren. In die USE-Flags sollte vorher unbedingt noch "xosd" eingetragen werden.

# emerge tpb

Jetzt kannst du die Konfiguration in der Datei /etc/tpbrc an deine Bedürfnisse anpassen. Da ist erstmal alles deaktiviert, aber mit den den Default-Werten funktioniert es schon ohne Probleme. Ich habe nur folgendes auskommentiert/angepasst:

Datei: Dateiinhalt /etc/tpbrc
THINKPAD /usr/bin/yelp
OSDFONT     -*-lucidatypewriter-*-*-*-*-*-240-*-*-*-*-*-*
OSDCOLOR    Blue
OSDSHADOW   0
OSDVERTICAL 50


Testen kannst du das, indem du im Terminal folgendes eingibst:

# tpb -v

Damit kannst du sofort sehen, was beim Drücken der Tasten passiert. Um das Ganze dauerhaft einzubinden, ist folgende Zeile in der Datei /etc/udev/rules.d/50-udev.rules notwendig, da tpb (wenn du es später als normaler User starten möchtest) Zugriff auf /dev/nvram benötigt.

Datei: In /etc/udev/rules.d/50-udev.rules hinzufügen
KERNEL=="nvram", MODE="664"


Bei Gnome zb. kannst du dann das Programm mit der Zeile /usr/bin/tpb -d im Menü unter "System --> Einstellungen --> Sitzungen --> Startprogramme" eintragen.

[Bearbeiten] HDAPS - das IBM Active Protection System nutzen

Das Notebook hat einen Sensor, der Bewegungen erkennt. Damit sind einige Spielereien möglich, wie eine Darstellung der Laptop-Bewegung im Gnome-Panel oder ein Alarm-Script. Das wichtigste ist jedoch, dass bei plötzlichen Bewegungen, Erschütterungen oder Sturz die Festplattenköpfe rechtzeitig geparkt werden und darum geht es hier.

Wenn du meine vorgeschlagene Kernel-Konfiguration schon übernommen hast, ist der Treiber dafür schon vorhanden. Er erkennt jedoch unser Modell noch nicht. Dafür müssen wir die Datei /usr/src/linux/drivers/hwmon/hdaps.c editieren:

# nano -w /usr/src/linux/drivers/hwmon/hdaps.c

Dort müssen wir eine Zeile hinzufügen.

Datei: /usr/src/linux/drivers/hwmon/hdaps.c
[...]
HDAPS_DMI_MATCH_NORMAL("ThinkPad X40"),
HDAPS_DMI_MATCH_NORMAL("ThinkPad X41 Tablet"),
HDAPS_DMI_MATCH_NORMAL("ThinkPad X41"),
HDAPS_DMI_MATCH_NORMAL("ThinkPad Z60m"),
[...]


Außerdem muss der Kernel noch gepatcht werden. Dazu laden wir uns den hdaps-Patch für den 2.6.15er Kernel herunter.

Dann sind folgende Befehle notwendig:

# cd /usr/src/linux

# patch -b -p1 < ~/hdaps_protect.20060118.patch

Jetzt muss der Kernel neu kompiliert werden und es ist ein Neustart nötig.Vorher solltest du das hier noch aufrufen:

# emerge ipw2200 ieee80211

Danach prüfen wir ob der Laptop erkannt wurde:

# dmesg | grep hdaps

Die Ausgabe sollte dann so aussehen:

Code: # dmesg | grep hdaps
hdaps: IBM ThinkPad Z60m detected.
hdaps: initial latch check good (0x01).
hdaps: device successfully initialized.
input: hdaps as /class/input/input4
hdaps: driver successfully loaded.


Jetzt müssen wir uns den eigentlichen hdapsd userspace daemon herunterladen und kompilieren:

# gcc -o hdapsd hdapsd-20060409.c

Anschließend starten (eine Hilfe zu den Parametern gibts per "./hdapsd" ohne Parametern):

# ./hdapsd -d sda -s 15 -a

Wenn du jetzt den Laptop leicht ankippst, solltest du so etwas sehen:

Code: Ausgabe bei ./hdapsd -d sda -s 15 -a
Sun May 14 18:56:33 2006: parking
Sun May 14 18:56:36 2006: un-parking


Wenn das funktioniert, kannst du das Programm zb. nach /usr/local/bin/ verschieben und automatisch beim booten starten lassen, indem du in die Datei /etc/conf.d/local.start folgendes einträgst:

# /usr/local/bin/hdapsd -d sda -s 15 -a -b

Wenn du noch eine Anzeige für das Gnome-Panel brauchst, kannst du dir hier das gnome-hdaps-applet herunter laden. In der Datei INSTALL in dem Paket sind alle nötigen Schritte beschrieben.

[Bearbeiten] Kartenleser aktivieren

Der Kartenleser ist ein Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter. Dafür gibt es das sdhci Projekt. Du musst dir aus einer Mail in der Mailingliste 3 Dateien herunterladen und damit den Kernel patchen:

# cd /usr/src/linux

# patch -b -p1 < ~/mmc-respopcode-0001.bin

# patch -b -p1 < ~/pci-sdhc-0001.bin

# patch -b -p1 < ~/sdhci-0001.bin

Dadurch hast du einen neuen Eintrag unter "Device Drivers --->", den du auswählen musst (als Modul):

Code: Kernel 2.6.15

MMC/SD Card support --->

<M> MMC support                                                                                     
[ ]   MMC debugging                                                                                 
<M>   MMC block device driver
<M>   Secure Digital Host Controller Interface support  (EXPERIMENTAL)                                                                     
< >   Winbond W83L51xD SD/MMC Card Interface support


Anschließend den Kernel neu bauen und das System neu starten. Nun kannst du prüfen ob der Kartenleser erkannt wurde:

# dmesg | grep sdhci

Code: Ergebnis von dmesg | grep sdhci
sdhci: Secure Digital Host Controller Interface driver, 0.11
sdhci: Copyright(c) Pierre Ossman


Jetzt noch einen Eintrag in der Datei /etc/fstab erstellen und ein Verzeichnis anlegen:

# nano -w /etc/fstab

Datei: Dateiinhalt /etc/fstab
[...]
/dev/mmcblk0p1   /mnt/cardreader auto   noauto,rw,user,exec,sync   0 0
[...]


# mkdir /mnt/cardreader

Nun gibt es leider das Problem, dass unbedingt eine Speicherkarte im Kartenleser stecken muss, bevor die Module geladen werden. Deshalb wird der Kartenleser nicht gleich beim Booten aktiviert, sondern ich habe ein kleines Script (sdmount) dafür erstellt:

Datei: sdmount
#!/bin/bash
# diese Zeile ist nötig, da das Modul schon beim booten geladen wurde
/sbin/rmmod sdhci
# laden der Module für den Kartenleser
/sbin/modprobe mmc_core
/sbin/modprobe sdhci
/sbin/modprobe mmc_block


Das kopierst du am besten nach /usr/local/bin/ und dann kannst du es als root aufrufen. Das muss immer nur 1x gemacht werden. Danach erkennt Gnome den Kartenwechsel automatisch und mountet und unmountet die Karten selber. Nur beim ersten Aufruf von "sdmount" muss bereits eine Karte im Kartenleser sein!

Anmerkung: Ich habe den Kartenleser bisher nur mit verschiedenen SD-Karten getestet, wobei die Größte eine Speicherkapazität von 1 GB hatte.

[Bearbeiten] X11 ATI 3D-Beschleunigung

In meinem Laptop ist eine ATI Technologies Inc M22 [Radeon Mobility M300] drin. Dazu gibt es viele Anleitungen im Netz. Deshalb hier mal nur im Schnelldurchlauf. Der Kernel sollte so wie unter Kernel-Konfiguration beschrieben gebaut sein. Am Ende folgen dann einige Links für weitere Informationen:

Als erstes musst du X beenden und dann geht's auf einer Konsole (Strg+Alt+F1) damit weiter:

# /etc/init.d/xdm stop

# emerge ati-drivers

# env-update

# source /etc/profile

# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.ati

# aticonfig --initial --input=/etc/X11/xorg.conf

# aticonfig --overlay-type=Xv

# eselect opengl set ati

# /etc/init.d/xdm start

Das wars dann schon. Testen kannst du es zb. mit # glxgears, nachdem du X wieder gestartet hast. Ich komme hier auf Anhieb auf 1856.800 FPS. Für weitere Optimierungen, Fehlersuche usw. empfehle ich folgende Seiten:

ATI-Treiber

ATI 3D-Beschleunigungs Guide

Gentoo ATI Radeon FAQ (englisch)

[Bearbeiten] IRDA konfigurieren

Noch nicht getestet.

[Bearbeiten] Modem konfigurieren

Noch nicht getestet.

[Bearbeiten] Probleme

DVDs ruckeln etwas bei der Wiedergabe. Das liegt am nicht aktivierbaren DMA-Modus vom DVD-Laufwerk. Hier (englisch) wird eine mögliche Lösung beschrieben, die ich jedoch noch nicht überprüft habe.

Abhilfe schafft "hdparm -c 1 -u 1 -m 16 /dev/hdc", dies aktiviert zwar nicht den DMA Modus aber DVDs werden zumindest abspielbar.

EDIT: Der Link zwei Zeilen hier drüber funktioniert gut! Der DMA Modus wird ohne Probleme umgestellt.

[Bearbeiten] Fazit

Die Anleitung ist doch länger geworden, als ich dachte. Ja, und es muss viel "per Hand" gemacht werden. Doch lass dich davon nicht abschrecken! Das Z60m (Bilder) ist ein prima Notebook mit exzellenter Geräteausstattung und guter Linux-Unterstützung. Du solltest beim Kauf nur darauf achten, dass es ein Gerät mit Max Bright TFT ist.


[Bearbeiten] Externe Links

'Persönliche Werkzeuge
Andere Sprachen