Ich habe versucht, die neuesten AMD-Treiber auf meinem Linux-Computer zu installieren, aber nachdem ich sie zum Kompilieren gebracht habe, wurde ich mit der folgenden Meldung begrüßt:
modprobe: FEHLER: 'fglrx' konnte nicht eingefügt werden: Unbekanntes Symbol im Modul oder unbekannter Parameter (siehe dmesg) fehlgeschlagen.
Bitte beachten Sie, dass ich mit dieser Linux-Sache nicht allzu gut umgehen kann, da ich eher ein BSD-Eingeborener bin.
Situationsbezogene Details
- Arch Linux, x86_64, Version 2016.01.01
- Kernel-Version: 4.3.3-2
- AMD Radeon R9 290x
- Crimson, fglrx 15.302
Soweit fertig
Am Anfang kam das Installationsskript nicht einmal zum EULA-Teil, weil ich das kernel-headers
Paket installieren musste . An diesem Punkt könnte ich tatsächlich versuchen, es zu installieren.
Beim Ausführen des Skripts ist mir ein Fehler aufgetreten:
/usr/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:634:9: error: void value not ignored as it ought to be
len = seq_printf(m, "%d\n", major);
^
Nach ein wenig googeln habe ich diese Lösung gefunden und manuell ausgeführt/usr/lib/modules/fglrx/build_mod/make.sh
Die Zusammenstellung endete jedoch mit folgender Meldung:
WARNING: "mtrr_add" [/usr/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!
WARNING: "mtrr_del" [/usr/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!
Natürlich solltest du die Warnung ignorieren und deshalb habe ich einfach die kompilierten Module installiert ... was zu folgender Meldung führte:
modprobe: FEHLER: 'fglrx' konnte nicht eingefügt werden: Unbekanntes Symbol im Modul oder unbekannter Parameter (siehe dmesg) fehlgeschlagen.
Nachdem ich mir dmesg angesehen habe, sehe ich folgende Zeilen:
[ 2848.332722] fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
[ 2848.332725] Disabling lock debugging due to kernel taint
[ 2848.343063] fglrx: Unknown symbol mtrr_del (err 0)
[ 2848.343114] fglrx: Unknown symbol mtrr_add (err 0)
Einige googeln führen mich zu dieser Mail-List-Nachricht: https://patchwork.ozlabs.org/patch/510277/, die das Entfernen erwähnt, mtrr_add()
weil es irgendwie schlecht ist:
Der Kreuzzug, mtrr_add () durch architekturunabhängiges arch_phys_wc_add () zu ersetzen, ist abgeschlossen. Dadurch wird sichergestellt, dass Implementierungen zum Kombinieren von Schreibvorgängen (PAT auf x86) anstelle von MTRR verwendet werden. Verstecken Sie nach Abschluss des Kreuzzugs den direkten MTRR-Zugriff für die Fahrer.
Was soll ich jetzt machen?
Ich habe keine Ahnung, wie ich an dieser Stelle vorgehen soll? Sollte ich mich an der Quelle unterscheiden, nach Funktionen suchen, die mtrr_add
und verwenden mtrr_del
? Gibt es einen Patch, den ich anwenden sollte? Ist das alles nur ein großer Misserfolg und ich sollte aufgeben?
seq_printf
Aufruf trotzdem) bis Linux 4.2. AMD sagt, dass es bis 3.19 kompatibel ist. Sie müssen also einen älteren Kernel-Zweig verwenden.