PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HowTo: Kernel 2.6.x + ATi-Treiber unter SuSE 8.2


Exxtreme
2004-02-28, 00:20:49
Da es anscheinend immer noch Probleme gibt beim Installieren einer dieser Komponenten, mache ich ein kleines HowTo, mit dem es bei mir funktioniert hat. :)


Der Kernel
Zuerst werden die Kernel-Sourcen gebraucht. Diese kann man sich bei [1] ziehen oder die entspr. Kernelpatches, die die Sourcen auf eine neue Version updaten. Diese Sourcen sollte man am besten ins Verzeichnis /usr/src/linux-x.x.xx entpacken, z.B. /usr/src/linux-2.6.3. Dann sollte man den Sym-Link /usr/src/linux auf die neuen Sourcen "umbiegen". Das macht man mittels:

rm /usr/src/linux
ln -s /usr/src/linux-2.6.3 /usr/src/linux

Zusätzlich braucht man neue Modutils da sich vieles beim Kernel 2.6.x geändert hat. Die fertigen SRC-RPMs kriegt man bei [2]. Diese Datei heisst "modutils-2.4.25-xx.src.rpm" wobei das "xx" für den jeweiligen Patchlevel steht und sich auch ändern kann. Um die neuen Modutils zu bauen wird man eine Komponente namens "dietlibc" benötigen da ansonsten der Kompiliervorgang nicht durchläuft. Diese Komponente müsste aber bei SuSE 8.2 dabei sein, sodaß man diese einfach per Yast2 nachinstallieren kann. Hat man alles beisammen, kann man die Modutils bauen per:

rpm --rebuild modutils-2.4.25-xx.src.rpm

Wenn das durchgelaufen ist, dann muss man die bestehenden Modutils aktualisieren mittels:

rpm -Uhv /usr/src/packages/RPMS/i386/modutils-2.4.25-xx.i386.rpm
____________________________________________________________________
Anmerkung
Bei SuSE 9 oder einer anderen Distri, die "Kernel 2.6.x-ready" ist, dürften diese neuen Modutils bereits installiert sein.
____________________________________________________________________

Wenn das abgeschlossen ist, wechselt man in das Kernel-Source-Verzeichnis:

cd /usr/src/linux-2.6.x

und konfiguriert das make-File für den Compiler mittels:

make xconfig

oder

make menuconfig.

Hier ist es sehr empfehlenswert das Configfile des alten Kernels zu nehmen. Dieses befindet sich im /boot-Verzeichnis und heisst vmlinuz.config. Um dieses zu nutzen muss man es im Menüpunkt "Load an Alternate Configuration File" vorher laden. Dann kann man darauf aufbauend eine eigene .config-Datei erzeugen. Man muss 2 Punkte beachten. 1.) Es ist wichtig, daß der Kernel ein Feature namens "Module Unloading" unterstützt. Dieses findet man unter dem Punkt "Loadable Module Support". 2.) Es kann sein, daß sich die kernel-eigenen DRI-Treiber mit den ATi-Treibern in die Quere kommen. Wenn man die ATi-Treiber nutzen will dann sollte man den DRI-Support deaktivieren. Diesen findet man unter Device Drivers -> Character devices -> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support). Und wenn man einen Nforce2-Chipsatz hat oder einen anderen, für den der ATi-eigene Treiber keinen AGPGART-Treiber hat, dann kann man diesen AGPGART-Treiber zusammen mit dem Kernel laden. Man findet die Punkte unter Device Drivers -> Character devices. Hier den passenden auswählen. Man hat jetzt die Wahl ob man den AGPGART-Treiber als Modul lädt oder direkt in den Kernel integriert. Ich habe mich für die zweite Methode entschieden. Macht IMHO weniger Stress nachher. Wer es trotzdem als Modul haben will, der muss aber dafür sorgen, daß dieses VOR dem ATi-Treiber geladen wird. Wenn man den Kernel konfiguriert hat, dann beendet man das Programm und bestätigt die Frage ob die Konfiguration gespeichert werden soll.

____________________________________________________________________
Netter Gag am Rande
Man kann einen eigenen Kernelnamen vergeben will dann öffnet man die Datei "Makefile" mit einem Texteditor. Dort gibt es die Einträge Version, Patchlevel, Sublevel und Extraversion. Die ersten drei Einträge würde ich so lassen wie sie sind, den Eintrag Extraversion kann man aber ändern. Mein Kernel meldet sich offiziell als "2.6.3-Exx-1". X-D
____________________________________________________________________

Sodele, jetzt geht's ans Angemachte ... nämlich die Compilierung. Diese führt man durch mittels der allseits bekannten Anweisungen:

make clean
make bzImage
make modules
make modules_install

Sollten diese Schritte ohne Probleme durchlaufen dann findet man das gute Stück unter /usr/src/linux-2.6.x/arch/i386/boot. Das Teil heisst "bzImage". An benennt diese Datei jetzt am besten um in z.B. "bzImage-2.6.x" und kopiert diese in das /boot-Verzeichnis. Dann sollte man die /usr/src/linux-2.6.x/System.map nicht vergessen. Am besten auch in System.map-2.6.x umbenennen und nach /boot verfrachten. Jetzt sollte man die Datei /etc/modules konvertieren. Der Kernel 2.6.x verwendet jetzt eine neue Datei namens /etc/modprobe.conf. Das führt man durch mittels:

generate-modprobe.conf /etc/modprobe.conf

Diese Anweisung entnimmt aus der alten /etc/modules-Datei die nötigen Informationen und erzeugt die neue /etc/modprobe.conf-Datei. Wenn das fertig ist, muss man noch sicherstellen, daß der Bootlader den neuen Kernel kennt. Das kann man mit Hilfe von Yast2 einstellen. Danach wird der erste Start fällig ...


Die ATi-Treiber
Diese gibt es bei [3] zum DL. Man installiert diese mittels:

rpm -UhV fglrx-glc22-4.3.0-x.x.x.i586.rpm
____________________________________________________________________
Wichtig für AMD-Nutzer!
Hier wird man mit hoher Wahrscheinlichkeit den berühmt-berüchtigten "AMD-Patch" brauchen. Doch anstatt diesen im I-Net zu suchen und mittels des Patch-Kommandos die Treiber zu patchen, kann man sich mit einem Texteditor behelfen. Einfach die Datei "/lib/modules/fglrx/build_mod/firegl_public.c" öffnen, zur Zeile 3123 springen und die Zeile:
#if ( (PAGE_ATTR_FIX == 1) || (LINUX_VERSION_CODE == KERNEL_VERSION(2,4,19)) )
durch:
#if ( (PAGE_ATTR_FIX == 1) || (LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,19)) )ersetzen.
____________________________________________________________________

Jetzt wechselt man in das Treiber-Verzeichnis und kompiliert das FireGL-Kernel-Modul:

cd /lib/modules/fglrx/build_mod
./make.sh

Wenn dieses kompiliert wurde dann muss es noch installiert werden:

cd /lib/modules/fglrx
./make_install.sh

Wenn keine Fehlermeldungen kommen, kann man sich an die Konfiguration des Treiber ranmachen. Vorher die Datei /etc/X11/XF86Config-4 wegsichern und dann in den Init-Level 3 wechseln mittels:

init 3

Hier wird der X-Server beendet und man muss sich als root anmelden. Dann gibt man:

fglrxconfig

ein.

Da werden jetzt einige Fragen bezüglich Auflösung, Monitorfrequenz etc. abgefragt. Wichtig wäre hier der Punkt ob man den internen oder externen AGPGART-Treiber nutzen will. Nforce2-Besitzer müssen hier den externen nehmen da die ATi-Treiber keinen eigenen mitbringen. Wenn das durchgelaufen ist, muss man die neue /etc/X11/XF86Config-4 erstellen lassen. Jetzt installiert man das Kernelmodul fglrx mittels:

insmod fglrx

Wenn das ohne Probleme läuft, dann kann man versuchen den X-Server zu starten und wieder in den Initlevel 5 wechseln:

init 5

Und wenn man alles richtig eingestellt hat, dann startet dieser und man hat auch echte 3D-Beschleunigung.

Glxgears läuft bei mir mit ca. 4.000 fps und Tuxracer läuft auch flüssig. :)

Have fun.

[1] Kernel-Sourcen: http://www.kernel.org/mirrors
[2] Modutils: ftp://ftp.gwdg.de/linux/suse/ftp.suse.com/suse/i386/9.0/suse/src/
[3] ATi-Treiber: http://www.ati.com/support/driver.html

fearthebear
2004-02-28, 09:33:54
Geschmeidig.
Und wieder einmal verneigen wir uns in tiefer Ehrfurcht vor dir, Exxtreme. :biggrin:
Jetzt musst du aber deine Signatur updaten ^^

MadMan2k
2004-02-28, 14:14:51
Original geschrieben von Exxtreme

Sodele, jetzt geht's ans Angemachte ... nämlich die Compilierung. Diese führt man durch mittels der allseits bekannten Anweisungen:

make clean
make bzImage
make modules
make modules_install

Sollten diese Schritte ohne Probleme durchlaufen dann findet man das gute Stück unter /usr/src/linux-2.6.x/arch/i386/boot. Das Teil heisst "bzImage". An benennt diese Datei jetzt am besten um in z.B. "bzImage-2.6.x" und kopiert diese in das /boot-Verzeichnis. Dann sollte man die /usr/src/linux-2.6.x/System.map nicht vergessen. Am besten auch in System.map-2.6.x umbenennen und nach /boot verfrachten.

beim 2.6.x Kernel reicht ein
make
make modules_install
make install

für das oben beschriebene.
Außerdem wird der Bootloader gleich mitkonifiguriert - dann muss man sich nicht mit Yast rumplagen

Exxtreme
2004-02-28, 17:06:55
Original geschrieben von MadMan2k
beim 2.6.x Kernel reicht ein
make
make modules_install
make install

Wusste ich nicht, thx. Ich habe es so hingeschrieben wie es bei mir funktioniert hat. :)
Original geschrieben von MadMan2k
für das oben beschriebene.
Außerdem wird der Bootloader gleich mitkonifiguriert - dann muss man sich nicht mit Yast rumplagen
Also bei mir wurde GRUB definitiv NICHT aktualisiert.

MadMan2k
2004-02-28, 20:09:45
Original geschrieben von Exxtreme
Also bei mir wurde GRUB definitiv NICHT aktualisiert.
tja, SuSe ;)
bei mir wird in die grub.conf ein neuer Eintrag mit der Kernelversion im Namen eingefügt - die alten bleiben erhalten, ebenso die default Einstellung.

GAMaus
2004-03-14, 19:07:27
@exxtreme:

MEIN HELD!!

Endlich 3D !!

Nach ewigem hin und her hat es endlich funktioniert!!

Ich koennt platzen so freu ich mich!!!

*BIGHUG* @ exxtreme

GAMaus
2004-03-14, 20:11:12
Naechstes Problem:
Soweit is alles geladen, glxgears wirft auch frames aus:


gamaus@linux:~> glxgears
10694 frames in 5.0 seconds = 2138.800 FPS
11161 frames in 5.0 seconds = 2232.200 FPS
11476 frames in 5.0 seconds = 2295.200 FPS
11441 frames in 5.0 seconds = 2288.200 FPS
11473 frames in 5.0 seconds = 2294.600 FPS
11469 frames in 5.0 seconds = 2293.800 FPS
11468 frames in 5.0 seconds = 2293.600 FPS
11469 frames in 5.0 seconds = 2293.800 FPS
11466 frames in 5.0 seconds = 2293.200 FPS
11467 frames in 5.0 seconds = 2293.400 FPS
11466 frames in 5.0 seconds = 2293.200 FPS
11465 frames in 5.0 seconds = 2293.000 FPS
11466 frames in 5.0 seconds = 2293.200 FPS
11464 frames in 5.0 seconds = 2292.800 FPS
11464 frames in 5.0 seconds = 2292.800 FPS
11459 frames in 5.0 seconds = 2291.800 FPS
11465 frames in 5.0 seconds = 2293.000 FPS
11460 frames in 5.0 seconds = 2292.000 FPS
gamaus@linux:~> fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: RADEON 9100 DDR Generic
OpenGL version string: 1.3 (X4.3.0-3.7.6)

gamaus@linux:~> 3dinfo
ATI Technologies Inc Radeon 9100 QM (1002@514d):4:radeon:16:dri::::
gamaus@linux:~>


aber:
Ich seh die dollen bunten Raedchen nicht!!
Das kleine Fenster bleibt schwarz.
Ebenso die 3D-Bildschirmschoner, Tuxracer und Racer.

Was ist das denn schon wieder??

wolfmania
2004-03-15, 12:30:25
Hallo an alle !
Wenn ich mich nach der Anweisung von Exxtreme richte dann läuft alles soweit durc aber er bricht dann ab bei

wolfmania:/usr/src/linux-2.6.4-0 # make modules_install
INSTALL drivers/acpi/ac.ko
INSTALL drivers/acpi/asus_acpi.ko
INSTALL drivers/acpi/battery.ko
INSTALL drivers/acpi/button.ko
INSTALL drivers/acpi/fan.ko
INSTALL drivers/acpi/processor.ko
INSTALL drivers/acpi/thermal.ko
INSTALL drivers/acpi/toshiba_acpi.ko
if [ -r System.map ]; then /sbin/depmod -ae -F System.map 2.6.4-0-; fi
WARNING: Couldn't open directory /lib/modules/2.6.4-override-: No such file or directory

Was habe ich falsch gemacht?

wolfmania
2004-03-18, 21:11:15
Und wie geht das mit den RPM's
Es gibt doch mitlerweile 2.6.4 RPM kernel und sourcen.

Alles installieren und dann so weitermachen oder .....?

Ich hätte ganz gerne FireWire Netzwerk unter Linux, auch wenn es nur experimental ist.

Bis jetzt habe ich aber keine bessere Beschreibung gefunden als diese hier.

MfG

Gast