Dank harrymc habe ich entdeckt, dass man /proc/mtrr tatsächlich umschreiben kann. Ich habe Folgendes in /etc/rc.local eingefügt, neu gestartet und meine MTRR-Tabelle war korrekt.
echo "disable=7" > /proc/mtrr
echo "disable=6" > /proc/mtrr
echo "disable=5" > /proc/mtrr
echo "disable=4" > /proc/mtrr
echo "disable=3" > /proc/mtrr
echo "disable=2" > /proc/mtrr
echo "disable=1" > /proc/mtrr
echo "disable=0" > /proc/mtrr
echo "base=0x000000000 size=0x40000000 type=write-back" > /proc/mtrr
echo "base=0x03f500000 size=0x00100000 type=uncachable" > /proc/mtrr
echo "base=0x03f600000 size=0x00200000 type=uncachable" > /proc/mtrr
echo "base=0x03f800000 size=0x00800000 type=write-back" > /proc/mtrr
echo "base=0x040000000 size=0x10000000 type=write-combining" > /proc/mtrr
Außerdem wurde ich nach Gesprächen mit einigen Leuten, die an der Kernel-Entwicklung beteiligt sind, darüber informiert, dass CONFIG_MTRR_SANITIZER
war in den letzten paar Kerneln kaputt, weshalb es in der Vergangenheit bei anderen funktioniert hat.
Zitieren aus der Antwort auf Ihre eigene Frage in den Arch Linux-Foren:
Aus dem dmesg ist leicht ersichtlich, dass ihm während der i915/drmgraphics-Initialisierung kein mtrr mehr zur Verfügung steht. Ich habe keine spezifische Erfahrung mit diesem Problem, aber hier sind meine Vorschläge:
- Booten Sie mit 'mtrr_spare_reg_nr=2' und Sie benötigen möglicherweise auch 'enable_mtrr_cleanup=1(add to kernel line in/boot/grub/menu.lst).
- Probieren Sie Kernel 2.6.38 von [testing]. aus
Wie Ihr /proc/mtrr aussieht, hat Ihre ATOM-CPU nur 8 MTRRs, und sie sind wirklich alle aufgebraucht. Es ist jedoch rätselhaft, wie die Erinnerung in so kleine Fragmente zerlegt wird. Im Allgemeinen kann ein solches Problem verursacht werden durch :
- Das BIOS - suchen Sie nach Parametern, die die Speicherzuweisung für Geräte bewirken.
- Die Grafikkarte, die sich möglicherweise Speicher mit der CPU geteilt hat und die aufgrund des BIOS brutal in der Mitte des Speichers zugewiesen werden kann.
- Der Grafikkartentreiber - suchen Sie nach der neuesten Version.
- Ein falsch konfigurierter Kernel.
Das größte Rätsel, das ich sehen kann, ist, dass /proc/mtrr sagt, dass Sie 8 GB haben. Aber in /proc/cpuinfo enthält der Eintrag „flags“ nicht „lm“, was laut Arch64-FAQ erforderlich ist, damit der Prozessor x86_64-kompatibel ist. Die FAQ sagt weiter:
Beachten Sie, dass Arch32 standardmäßig nicht mehr als 3 GB RAM unterstützt:Sie müssen sich an Arch64 wenden, wenn Sie mehr haben.
Es scheint also, dass Sie Arch32 und 8 GB RAM haben, was der Dokumentation widerspricht.
Könntest du vielleicht etwas Licht in dieses Rätsel bringen ?