Berkat harrymc, saya menemukan bahwa Anda benar-benar dapat menulis ulang /proc/mtrr. Saya meletakkan yang berikut di /etc/rc.local, mem-boot ulang, dan tabel MTRR saya benar.
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
Selain itu, setelah berbicara dengan beberapa orang yang terlibat dalam pengembangan kernel, saya diberi tahu bahwa CONFIG_MTRR_SANITIZER
telah rusak untuk beberapa kernel sebelumnya, karenanya mengapa ini berhasil untuk kernel lain di masa lalu.
Mengutip dari jawaban atas pertanyaan Anda sendiri di forum Arch Linux :
Dari dmesg, mudah untuk melihat bahwa mtrr habis selama inisialisasi grafis i915/drm. Saya tidak memiliki pengalaman khusus dengan masalah ini, namun inilah saran saya:
- Boot dengan 'mtrr_spare_reg_nr=2' dan Anda mungkin juga memerlukan 'enable_mtrr_cleanup=1(tambahkan ke baris kernel di/boot/grub/menu.lst).
- Coba kernel 2.6.38 dari [pengujian].
Dari tampilan / proc / mtrr Anda, CPU ATOM Anda hanya memiliki 8 MTRR, dan semuanya benar-benar habis. Namun, cara memori dipecah menjadi fragmen kecil seperti itu membingungkan. Secara umum, masalah tersebut dapat disebabkan oleh :
- BIOS - cari parameter yang menyebabkan alokasi memori untuk perangkat.
- Kartu grafis yang mungkin telah berbagi memori dengan CPU dan yang mungkin menyebabkan BIOS dialokasikan secara brutal di tengah memori.
- Driver kartu grafis - cari versi terbaru.
- Kernel yang salah dikonfigurasi.
Teka-teki terbesar yang bisa saya lihat adalah /proc/mtrr mengatakan Anda memiliki 8GB. Tetapi di /proc/cpuinfo entri 'flags' tidak berisi 'lm', yang menurut FAQ Arch64 diperlukan agar prosesor kompatibel dengan x86_64. FAQ lebih lanjut mengatakan :
Perhatikan bahwa Arch32 tidak mendukung lebih dari 3GB RAM secara default:Anda harus beralih ke Arch64 jika Anda memiliki lebih banyak.
Jadi sepertinya Anda memiliki Arch32 dan RAM 8GB, yang bertentangan dengan dokumentasi.
Bisakah Anda menjelaskan teka-teki ini?