IBM ThinkPad Z60M
Aus Gentoo Linux Wiki
| Laptops • Motherboards • Servers • Eingabegeräte • RAID Controller • TV Karten • Wireless • Andere Hardware • Andere Architekturen • alphabetischer Hardware Index |
[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" ) |
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 |
- Damit funktioniert dann auch Suspend to Disk (S4) (Fn+F12):
| 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:
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
- Diese Installationsanleitung ist im TuxMobil Linux Laptop und Notebook Installationsverzeichnis gelistet.
