Schade, hat nicht geklappt... Irgendwo habe ich gelesen, dass man die Kernel-Bootcodes
enable_mtrr_cleanup mtrr_spare_reg_nr=1
in die /etc/default/grub eintragen soll, um mtrr-Fehler zu beheben. Wenn ich jetzt in die Konsole Boote und
cat /proc/mtrr
eingebe, kommt das hier:
reg00: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back reg01: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back reg02: base=0x100000000 ( 4096MB), size= 4096MB, count=1: write-back reg03: base=0x200000000 ( 8192MB), size= 1024MB, count=1: write-back
vorher stand bei der ersten Zeile bei size: 0MB (glaube ich). Jedenfalls verschwinden so die mtrr-Fehlermeldungen in der /var/log/tdm.log. An meinem schwarzen-Bildschirm-Problem ändert das leider nichts und da ist noch ein weiteres Problem:
Wenn man sich obige Ausgabe mal genauer ansieht, dann erkennt man, dass die Ausgabe von /proc/mtrr tatsächlich einen Fehler enthält: In der dritten Zeile ("reg02") beginnt der 4GB-Speicherblock an der Stelle 4096 MB, obwohl in den Zeilen zuvor nur 3GB belegt wurden (2048MB+1024MB=3GB). Das heißt zwischen der Speicherstelle 2048MB und 4096MB gibt's ein Loch von 1GB. Zählt man aber alle size-Werte zusammen, werden 8GB zugewiesen. Folglich ist die letzte Zeile Blödsinn: An der Speicherstelle 8192MB kann kein Gigabyte zugewiesen werden: Mein System hat 8GB und nicht 9. In der Zeile "reg03" wird also über den vorhandenen Speicher hinausgeschrieben.
Hier wird erklärt, wie man das Problem manuell korrigiert: Der Autor erstellt ein Startup-Skript, dass den Speicher korrekt zuweist. Nötig sei das, weil das Bios Speicherbereiche falsch an's Linux übergebe.
Leider funktioniert das aber nicht. Wenn ich in die Konsole boote, bekomme ich die reguläre (falsche) mtrr-Ausgabe. Ich weiß also nicht, ob das Skript überhaupt ausgeführt oder ob der Speicher wieder umgeschrieben wird. Da startx von der Konsole in dem framebuffer-Problem endet, hilft es nicht, das Skript manuell auszuführen und dann den xserver zu starten.
Mein Skript /etc/init.d/fix_mtrr:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #!/bin/sh # Fix wrong MTRR setting echo "disable=0" >| /proc/mtrr echo "disable=1" >| /proc/mtrr echo "disable=2" >| /proc/mtrr echo "disable=3" >| /proc/mtrr #echo "base=0x000000000 size=0x80000000 type=write-back" >| /proc/mtrr #echo "base=0x080000000 size=0x40000000 type=write-back" >| /proc/mtrr #echo "base=0x0c0000000 size=0x80000000 type=write-back" >| /proc/mtrr #echo "base=0x140000000 size=0x40000000 type=write-back" >| /proc/mtrr echo "base=0x00000000 size=0x80000000 type=write-back" >| /proc/mtrr echo "base=0x80000000 size=0x80000000 type=write-back" >| /proc/mtrr echo "base=0x100000000 size=0x80000000 type=write-back" >| /proc/mtrr #echo "base=0x180000000 size=0x80000000 type=write-back" >| /proc/mtrr |
Ich habe außerdem
update-alternatives --auto x-session-manager
in der Konsole eingegeben, wie hier empfohlen. Dem Autor hat das mtrr-Skript ebenfalls nicht geholfen. Der Befehl schaffte bei ihm Abhilfe - leider nicht bei mir.
Ich habe außerdem die.xinitrc-Datei aus dem Nutzerordner wieder gelöscht. Auch das hat nicht geholfen.
Jetzt stehe ich im Grunde wieder am Anfang, habe aber keine Fehlermeldungen mehr in den Logs! Angeblich wird der XServer fehlerlos geschlossen (laut Xorg.0.log und tdm.log). Im syslog ist nur noch zu lesen:
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
Hab die Display-Variable mal manuell gesetzt, hat aber auch nicht geholfen:
export DISPLAY=:0
Hier noch ein letzter Hinweis: Es gibt eine interessante Datei /var/log/gpu-manager.log:
log_file: /var/log/gpu-manager.log last_boot_file: /var/lib/ubuntu-drivers-common/last_gfx_boot new_boot_file: /var/lib/ubuntu-drivers-common/last_gfx_boot can't access /opt/amdgpu-pro/bin/amdgpu-pro-px Looking for nvidia modules in /lib/modules/4.15.0-91-generic/updates/dkms Found nvidia module: nvidia.ko Looking for amdgpu modules in /lib/modules/4.15.0-91-generic/updates/dkms Is nvidia loaded? yes Was nvidia unloaded? no Is nvidia blacklisted? no Is intel loaded? no Is radeon loaded? no Is radeon blacklisted? no Is amdgpu loaded? no Is amdgpu blacklisted? no Is amdgpu versioned? no Is amdgpu pro stack? no Is nouveau loaded? no Is nouveau blacklisted? yes Is nvidia kernel module available? yes Is amdgpu kernel module available? no Vendor/Device Id: 10de:1200 BusID "PCI:5@0:0:0" Is boot vga? yes Skipping "/dev/dri/card0", driven by "nvidia-drm" Skipping "/dev/dri/card0", driven by "nvidia-drm" Skipping "/dev/dri/card0", driven by "nvidia-drm" Skipping "/dev/dri/card0", driven by "nvidia-drm" Does it require offloading? no last cards number = 1 Has amd? no Has intel? no Has nvidia? yes How many cards? 1 Has the system changed? No Single card detected Nothing to do
Die Zeile
Is amdgpu kernel module available? no
macht mich stutzig. Sollte da nicht was anderes stehen?