Archiv für September 2008

fglrx 8.9 unter Debian GNU/Linux 4.0 etch

Montag, 29. September 2008

Problem:
Ich besitze eine Grafikkarte mit ATI Radeon HD 3450 Chip, welche ich unter Debian GNU/Linux 4.0r4 etch zum laufen bringen möchte. Da dieser Chip von den durch Debian zur Verfügung gestellten Versionen (etch: 8.28.X, lenny: 8.7.X) nicht unterstützt wird, habe ich mir die Pakete für die Version 8.9 mal eben selber gebaut.

Vorbereitung:
einige benötigte Pakete müssen zuvor per APT installiert werden:

apt-get install fakeroot make dpkg-dev dpkg-parsechangelog gcc libc6-dev xsltproc debhelper docbook docbook-xml docbook-xsl rpl bzip2 fglrx-kernel-src module-assistant

Download, entpacken und patchen des fglrx-Source-Codes
Ins Source-Verzeichnis wechseln:

cd /usr/src

Download der Dateien von ATI (via Akamai):

wget –no-check-certificate https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-8-9-x86.x86_64.run

Entpacken des Source-Codes aus der Binary-Datei:

sh ./ati-driver-installer-8-9-x86.x86_64.run –extract fglrx-driver-8-9

In das frisch angelegte Verzeichnis wechseln:

cd fglrx-driver-8-9

Zum erstellen der Debian-Pakete wird das Verzeichnis debian benötigt. Ich habe dieses Anhand des Patches erstellt, welches bei den Debian-Sources von 3.7 mitgeliefert wird und zusätzlich einen im Internet gefundenen Patch eingespielt, welcher die Kompatibilität zu Debian etch verbessert.

wget http://www.robertwalter.de/blog/wp-content/uploads/2008/09/debiantar.gz -O debian.tar.gz

Nun noch entpacken…

tar xfvz debian.tar.gz

und fertig ist das Source-Verzechnis zum bauen der Pakete.

Das kompilieren des Source-Codes und bauen der Debian-Pakete
Zunächst muss die Berechtigung auf die rules-Datei korrigiert werden:

chmod 755 debian/rules

Zum bauen von Debian-Paketen gibt es einen relativ einfach Befehl namens “fakeroot”. Dieser Erstellt im darüberliegenden Verzeichnis die im debian-Verzeichnis definierten Pakete. Ich hoffe ich habe alle Abhängigkeite oben in der Vorbereitung erfasst. Sollte jemand weitere entdecken, kann er mir diese gern in den Kommentaren nennen.

fakeroot debian/rules binary

fglrx 3.9 ist nun fertig kompiliert und wurde in .deb-Dateien verpackt. Wir können nun wieder in das Source-Verzeichnis wechseln.

cd..

Installation der Debian-Pakete
Nun ist es an der Zeit, die frisch generierten Pakete zu installieren. Ich habe diese bereits in die benötigte Reihenfolge gebracht:

dpkg -i fglrx-driver_8-9-0.1_i386.deb

dpkg -i fglrx-source_8-9-0.1_i386.deb

dpkg -i fglrx-kernel-src_8-9-0.1_all.deb

dpkg -i fglrx-glx_8-9-0.1_i386.deb

dpkg -i fglrx-atieventsd_8-9-0.1_i386.deb

dpkg -i fglrx-control_8-9-0.1_i386.deb

dpkg -i fglrx-amdcccle_8-9-0.1_all.deb

Einbinden der fglrx-Treiber in den Kernel
Hinweis: Für meine Test-Zwecke diente der etchnhalf-Kernel 2.6.24-etchnhalf.1-686. Die gesammte Prozedur sollte jedoch auch mt 2.6.18 Problemlos laufen.

Zunächst müssen wir das System für die bevorstehende Installation des Modules vorbereiten. Dies erfolgt durch die folgenden Befehle:

module-assistant prepare

module-assistant update

Anschließend muss das Module Kernel-gerecht kompiliert werden. Diese Arbeit nimmt uns der Auto-Installer von Module-Assistant ab:

module-assistant a-i fglrx

Einbau des Treibers in die X-Server(Xorg)-Konfiguration
ATI liefert hierfür ein Tool names aticonfig mit. Mit dem folgenden Befehl kann der Treiber in den X-Server eingebunden werden:

aticonfig –initial –input=/etc/X11/xorg.conf

Anschließend sollte man jedoch die Xorg.conf überprüfen, da das Tool die bestehenden Sections nicht überschreibt, sondern einfach neue hinzufügt, was nicht immer von Vorteil ist. Bei mir habe ich die Standard-Konfiguration der Sections Monitor, Device und Screen entfernt.

Hier noch ein paar Einstellungen, welche vorgenommen werden können. Funktionen bitte über “aticonfig –help” nachlesen.

aticonfig –resolution=0,1024×768,800×600,640×480

aticonfig –force-monitor=crt1,notv