nogens.net | HowTo Acer TM 291 + Fedora Core 6

Interne Links

Home
HowTo's
   WLAN FH-Kiel
   FC6 TM291
Impressum

Fedora Core 6 auf Acer TravelMate 291 LMi

Hier ensteht eine Dokumentation zur Einrichtung des gerade erschienenen Fedora Core 6 auf meinem Acer TravelMate 291 LMi. Ich bemühe mich den Text möglichst einfach zu halten und hier und da einige Hintergrundinformationen einzustreuen. Es kann unter Umständen sein, dass es mittlerweile einfachere Wege gibt, um einige der Problemstellungen zu lösen. Zum Zeitpunkt der Einrichtung gab es beispielsweise noch Probleme mit der Installation von den Treibern der ATI Grafikkarte.

Technische Daten des Notebooks
Einrichten des Livna-Repositories
Anpassen der Pfade
Installieren der Kernel-Sources
Installieren des IPW-Treibers
Unterstützung des WLAN-Schalters
Sun Java installieren
Firefox Plugins
ATI-Radeon Grafikkarten-Treiber
Installieren des richtigen Kernels
ATI Installationsskript von redblog.phoronix.com
Centrino Speedstepping aktivieren

Technische Daten des Notebooks

Prozessor Intel Pentium M 1,4 GHz
Hauptspeicher 512 MB
Festplatte 60 GB
Grafik ATI Mobility Radeon 9700
  15 Zoll SXGA+ Display, 1400x1050 Pixel
Schnittstellen WLAN ipw2100b
  RJ45 (LAN) 10/100 Mbps
  Irda
  IEEE 1284 (LPT)
  IEEE 1394 (Firewire)
  3x USB 2.0
  Irda

Einrichten des livna-Reposotories

Das Repository rpm.livna.org enthält viele Addons, die nicht in Fedora Core oder Fedora Extras aufgenommen wurden. Dazu zählen unter anderem Treiber für ATI oder NVidia Grafikkarten, oder auch Treiber für den Intel WLAN Chip.

su
root-Passwort eingeben
rpm -ivh http://rpm.livna.org/livna-release-6.rpm

Anpassen der Pfade

Lassen sich als nach dem Wechsel zum root durch su keine Befehle wie ifconfig ausführen, lässt sich des durch Bearbeiten der Datei .bash_profile im Home-Ordner des Benutzers beheben.

...
PATH=$PATH:$HOME:/bin:/sbin:/usr/sbin:/usr/bin
...

Installieren der Kernel-Sources

Für das Kompilieren zusätzlicher Programme oder Treiber werden die Quelldateien des Kernels benötigt. Zuerst werden die Quellen mit rpm direkt von download.fedora.redhat.com installiert.

rpm -ivh http://download.fedora.redhat.com/pub/fedora/linux/core/6/source/SRPMS/kernel-$(uname -r).src.rpm

Um die Quellen an die richtige Stelle im Dateisystem zu bringen, kann zunächst der folgende Befehl benutzt werden:

rpmbuild -bp --target=noarch /usr/src/redhat/SPECS/kernel-2.6.spec

Die Quellen befinden sich jetzt unter /usr/src/redhat/BUILD/kernel-2.6.18/, wir wollen diese jedoch in usr/src/ verschieben.

mv /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.noarch/ /usr/src/

Dann wechseln wir in das Verzeichnis /usr/src und legen dort einen Softlink linux an, der auf linux-2.6.18.noarch zeigt.

cd /usr/src
ln -s ./linux-2.6.18.noarch/ linux

Installieren des IPW-Treibers

Nach der Installationd des livna-Reposotories kann nun der Treiber für den Intel WLAN-Chipsatz mittels yum installiert werden.

yum install ipw2100-firmware*

Unterstützung des WLAN-Schalters

Für die Verwendung des Schalers zum Aktivieren des WLAN-Moduls an Acer-Notebooks gibt es einen Treiber von Olaf Tauber unter http://www2.informatik.hu-berlin.de/~tauber/acerhk/. Zunächst sind die Quelldateien herunterzuladen und zu entpacken. Der entpackte Ordner wird dann als root beispielsweise in den Ordner /usr/local/src kopiert. Das Kompilieren des Kernel-Modules mittels make schlägt unter Fedora Core 6 jedoch zunächst fehl. Das liegt daran, dass die Header-Datei "linux/config.h" in FC6 entfernt wurde. Ich bin dabei auf zwei Workarounds gestoßen.
- Kopieren von linux/config.h aus FC5
- Ändern der Quellen von #include</linuxconfig.h> in #include<linux/autoconf.h>
Da es sich hier um nur eine Quelldatei (acerhk.c) handelt, habe ich mich für die zweite Alternative entschieden. Der Aufwand hält sich also in Grenzen.

make
make install

Nun kann das Kernelmodul geladen werden. Dabei fällt auf, dass beim Laden des Kernelmoduls mit modprobe keine Gerätedatei erzeugt wird, die letztendlich die Schnittstelle zur Hardware - also dem Schalter - bildet. Beim laden des Kernelmoduls mit insmod wird diese jedoch automatisch unter /proc/driver/acerhk/wirelessled angelegt. Wichtig sind beim Laden des Kernelmoduls die Optionen force_series=290 usedritek=1.

insmod /lib/modules/2.6.18-1.2798.fc6/extra/acerhk.ko force_series=290 usedritek=1 verbose=0
echo 1 > /proc/driver/acerhk/wirelessled

Nach erneutem Hochfahren des Notebooks kann man nun das WLAN-Modul starten, indem man in der Konsole folgende Befehle eingibt:

insmod /lib/modules/2.6.18-1.2798.fc6/extra/acerhk.ko force_series=290 usedritek=1 verbose=0
echo 1 > /proc/driver/acerhk/wirelessled
ifconfig eth1 up
wpa_supplicant -Dwext -ieth1 -c/etc/wpa_supplicant/wpa_supplicant.conf &
dhclient eth1

Möchte man sich diesen Aufwand ersparen, kann man ein Startscript schreiben, das einem dies automatisch während des Bootvorganges abnimmt.

TODO: Startscript

Sun Java installieren

Um das Sun Java SDK zu installieren, sollte die selbstextrahierendes Achiv gewält werden. Nach dem Herunterladen wird für das SDK zunächst ein Verzeichnis im Dateisystem unter /usr/local/src eingerichtet.

cd /usr/local/
mkdir java
cd java

Nun wird die Datei in /usr/local/java kopiert und die Dateirechte so angepasst, dass die Datei ausführbar wird. Das Script lässt sich dann starten

cp /home/user/Download/temp/jdk-1_5_0_09-linux-i586.bin ./
chmod 744 jdk-1_5_0_09-linux-i586.bin
./jdk-1_5_0_09-linux-i586.bin

Während des Entpackens des Archives muss bestätigt werden, dass die Lizenzbedingungen von Sun akzeptiert werden. Danach empfiehlt es sich einen Softlink zur aktuellen Java-Version anzulegen.

ln -s jdk1.5.0_09/ current

Dies bewirkt, dass /usr/local/java/current immer auf das aktuell installierte SDK zeigt, wenn der Link bei der Installation eines neueren SDKs demenstprechend angepasst wird.
Nun lassen sich die Umgebungsvariablen fü die Java-Pfade setzen.

cd /etc/profile.d
vi java.sh

Die nun neu erstellte Datei erhält folgenden Inhalt:

export JAVA_HOME=/usr/local/java/jre
export PATH=$JAVA_HOME/bin/:$PATH

Der Umgang mit vi ist recht gewöhnungsbedürftig. Wer noch nicht mit vi vertraut ist, dem sei eine entsprechende Seite zu vi auf http://www.linuxfibel.de empfohlen.

Firefox Plugins

Nach der Installation des SDK kann auch das Java-Plugin für den Firefox eingerichtet werden.

cd /usr/lib/firefox-1.5.0.7/plugins
ln -s /usr/local/java/current/jre/plugin/i386/ns7/libjavaplugin_oji.so

Für die Installation des Flash-Plugins muss zunächst das entsprechende Repository hinzugefügt werden.

TODO: Repo einrichten

Danach gestaltet sich die Installation des Flash-Plugins mittels yum recht einfach:

yum install flash-plugin

ATI-Radeon Grafikkarten-Treiber

Die Kernelmodule der proprietären Grafik-Treiber für ATI und Nvidia Grafikkarten liegen auf dem livna Repository.

yum install kmod-fglrx

Dabei wird jedoch folgender Fehler ausgegeben.

Transaction Check Error: package kernel-2.6.18-1.2798.fc6 is already installed
  file /boot/System.map-2.6.18-1.2798.fc6 from install of kernel-2.6.18-1.2798.fc6 conflicts with file from package kernel-2.6.18-1.2798.fc6
  file /boot/config-2.6.18-1.2798.fc6 from install of kernel-2.6.18-1.2798.fc6 conflicts with file from package kernel-2.6.18-1.2798.fc6
  file /boot/symvers-2.6.18-1.2798.fc6.gz from install of kernel-2.6.18-1.2798.fc6 conflicts with file from package kernel-2.6.18-1.2798.fc6
  file /boot/vmlinuz-2.6.18-1.2798.fc6 from install of kernel-2.6.18-1.2798.fc6 conflicts with file from package kernel-2.6.18-1.2798.fc6

Ein Hinweis auf dieses Phänomen auf livna.org verweist auf einen Fehler in Anaconda, das unter Fedora Core 6 wohl fälschlicherweise den i586er Kernel statt des i686er Kernels installiert.

Installieren des richtigen Kernels

WICHTIG!!!: Vor dieser Prozedur ist unbedingt eine Sicherheitskopie der Datei /boot/grub/grub.conf angelegt werden.

cp /usr/grub/grub.conf /usr/grub/grub.conf.bak

Zuerst wird der Kernel und die Entwicklerpakete des Kernels entfernt.

yum remove kernel kernel-devel

Dabei ist dann zu sehen, dass tatsächlich der i586er Kernel installiert war.

Loading "installonlyn" plugin
Setting up Remove Process
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package kernel.i586 0:2.6.18-1.2798.fc6 set to be erased
---> Package kernel-devel.i586 0:2.6.18-1.2798.fc6 set to be erased

Aufgrund von Abhängigkeiten werden dann noch einige Pakete deinstalliert. Diese sollte man sich unbedingt notieren, um sie später wieder zu installieren. Bei mir wurden folgende Pakete entfernt:

compiz i386 0.0.13-0.32.20060817git.fc6 installed 1.9 M
gnome-session i386 2.16.0-3.fc6 installed 1.3 M
gnome-volume-manager i386 2.15.0-2.fc6 installed 1.9 M
ipw2100-firmware noarch 1.3-1.lvn6 installed 604 k
pcmciautils i386 014-5 installed 57 k
systemtap i386 0.5.9-1.fc6 installed 1.3 M

Dann kann der i686er Kernel installiert werden.

yum install kernel.i686 kernel-devel.i686

Nun werden die zuvor aufgrund der Abhängigkeiten entferneten Pakete wieder installiert.

yum install compiz gnome-session gnome-volume-manager pcmciautils systemtap

Wie zu Beginn der Einrichtung des Notebooks wird nun auch wieder der WLAN-Treiber installiert.

yum install ipw2100-firmware*

Nach dem Installieren des i686er Kernels muss auch das Kernel-Modul für den Acer Hotkey neu kompiliert und installiert werden. Dazu werden zunächst die Objektdateien entfernt.

cd /usr/local/src/acerhk-0.5.34/
rm *.o *.ko
make
make install

ACHTUNG!!! Die nächsten Schritte führen leider nicht zum Ziel, daher diese Schritte bitte nicht befolgen. Ich habe diesen Abschnitt jedoch nicht entfernt, damit er Hilfestellung leisten kann, falls diese Fehler auch bei anderen Nutzern auftreten. Ein funktionierender Lösungsansatz ist weiter unten zu finden.

Da jetzt tatsächlich der i686er Kernel installiert ist, sollte auch das Installieren des ATI-Grafikkartentreibers funktionieren.

yum install kmod-fglrx

Vor einem erneuten Start sollte nochmals die Datei /etc/grub/grub.conf überprüft werden. Sollte hier der Eintrag für die Linux-Partition fehlen, kann die zuvor gesicherte Version der Datei /boot/grub/grub.conf zurückkopiert werden.

cp /boot/grub/grub.conf.bak /boot/grub/grub.conf

Zudem muss die Date /etc/X11/xorg.conf angepasst werden. Hier wird der fglrx-Treiber ausgewählt. Nach dem Neustart sollte zunächst überprüft werden, mit welchem Treiber der X-Server gestartet wurde.

fglrxinfo

Die Ausgabe sorgt dann allerdings für Ernüchterung. Es läuft nicht der ATi-Treiber sondern der MESA Treiber. Ein Blick in /var/log/Xorg.0.log zeigt dann, dass die Datei /usr/lib/dri/fglrx_dri.so fehlt. Auf dem System findet sich diese Datei jedoch unter /usr/lib/xorg/modules/dri/fglrx_dri.so.

cp /usr/lib/xorg/modules/dri/fglrx_dri.so /usr/lib/dri/fglrx_dri.so

Nach dem nächsten Start des X-Servers erfolgt jedoch keine Besserung. Statt dessen erscheint nun folgende Fehlermeldung, für deren Lösung ich auf Anhieb keine Hinweise gefunden habe.

/usr/lib/dri/fglrx_dri.so: undefined symbol: __glXFindDRIScreen

Da dieser Weg nicht zum gewünschten Ziel führt, habe ich die mittels yum installierten fglrx-Treiber wieder deinstalliert.

yum remove kmod-fglrx

Statt dessen führt ein HowTo auf http://www.phoronix.com/redblog/ zum Ziel.

ATI Installationsskript von redblog.phoronix.com

Unter http://www.phoronix.com/redblog/downloads/fglrx-fc6-8296-generator.sh knan ein Skript heruntergeladen werden, das bei der Ausführung den proprietären Treiber von ATI herunterlädt und rpm-Dateien erzeugt, die dann installiert werden können.

Centrino Speedstepping aktivieren

Nachdem zuvor der i686er Kernel installiert wurde, kann nun das Speedstepping aktiviert werden, das zuvor wegen des falschen Kernels nicht funktioniert hat. Dazu wird die Datei /etc/cpuspeed.conf bearbeitet.

# uncomment this and set to the name of your CPUFreq module
DRIVER="speedstep-centrino"