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?
quelle
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.Antworten:
Dank @ DanielB Kommentare habe ich es funktioniert .
Also ... musste ich ein Downgrade auf eine ältere Kernel- / Xorg-Version durchführen und sicherstellen, dass sie nicht verloren geht (obwohl Arch Linux so konzipiert ist , dass es auf dem neuesten Stand bleibt ). Aber es war ein bisschen knifflig. Linux-4.2.5-1
Da ich in der Konsole feststeckte, habe ich ältere Pakete manuell aus dem Archiv heruntergeladen (insbesondere: linux-4.2.5-1, linux-headers-4.2.5-1 und xorg-server-1.17.4-2). Ich musste auch eine ältere Version von xorg-drivers package group bekommen. Ich legte diese Pakete in
/var/cache/pacman/pkg/
und stufte sie dann mit Befehl herunterpacman -U /path/to/package-file.pkg.tar.xz
.Und dann Crimson-Treiber neu installiert und ausführen
aticonfig --initial
, um xorg.conf generiert zu bekommen.Um zu verhindern, dass das Systemupdate alles vortäuscht, habe ich die folgenden zwei Zeilen hinzugefügt
/etc/pacman.config
:Diese Linien werden Warnungen erzeugen, wenn läuft
pacman -Syu
... so dass Sie wirklich in der Lage sein wont es zu vergessen. Wenn die neuen AMD Crimson-Treiber herauskommen, kann ich diese vorübergehend deaktivieren.Und dann ging es in die Luft ...
Nach dem Start
pacman -Syu
und Neustart ist ein Fehler aufgetreten (beim Neustart blieb die Initialisierung hängen). Ich bin nicht ganz sicher, was passiert ist, aber was ich getan habe, war:arch-chroot
in meiner primären PartitionDas hat es behoben. Was ich beim Lesen verschiedener Protokolle erfuhr, war: Nachdem das Update-
fglrx
Modul den Kernel erneut fehlerhaft gemacht hatte, scheiterte Xorg, was es systemd-logind wiederum unmöglich machte, SDDM zu erreichen. Und wie jeder angemessenen Teil von OS, systemd ging einfach Titten-up alles Sperren (Tastatur nicht reagiert).quelle