memmap
Ada tutorial ini berjudul: Bad Memory HowTo yang membahas penonaktifan memori melalui kernel menggunakan memmap
argumen ke kernel. Menurut howto Anda memiliki 2 opsi ketika datang ke memmap
:
- Matikan semuanya setelah ingatan buruk -
(mem=###M option)
- Matikan hanya memori di sekitar memori buruk -
(memmap=#M$###M option)
Dengan opsi pertama, jika memtest melaporkan bahwa ada memori buruk pada 600M maka Anda dapat menonaktifkan RAM dari titik itu sampai akhir RAM dengan ini:
mem=595M
Jika ada RAM buruk di 802M dan 807M, Anda dapat menonaktifkan bagian 10M RAM mulai dari 800M seperti ini:
memmap=10M$800M
CATATAN: Ini akan membuat daftar hitam 10M setelah alamat dasar 800M. Anda harus menjalankan memtest86+
setelahnya untuk mengonfirmasi bahwa argumen ini benar.
BadRAM
Ada patch yang tersedia untuk Ubuntu yang disebut BadRam. Ini dibahas dengan sangat baik di sini di posting ini berjudul: BadRAM di situs Komunitas Ubuntu.
Setelah menerapkan tambalan ke kernel menggunakan detail dari halaman itu, Anda membuat modifikasi pada pengaturan Grub2 Anda:
kutipan dari situs itu untuk Grub2
File konfigurasi GRUB2 di Natty memiliki baris untuk mengkonfigurasi pengecualian ram buruk kernel. Jadi, saya akan menganggap itu adalah cara yang lebih disukai untuk memetakan bagian memori yang menunjukkan kesalahan. Garis yang saya tetapkan adalah
GRUB_BADRAM = "0x7DDF0000,0xffffc000"
Cara yang disarankan di setiap situs web yang dapat saya temukan adalah mengatur ini dengan menjalankan memtest86 dan membiarkannya menunjukkan kepada Anda pengaturan BadRAM. memtest86 memberi saya satu halaman barang yang harus saya masukkan. Saya bisa melihat bahwa semua alamat berada dalam satu blok 16K, jadi saya hanya ingin memetakan blok 16K itu dari tindakan. Inilah cara saya membuat entri yang benar.
Parameter pertama mudah. Itu adalah alamat dasar dari memori buruk. Dalam kasus saya, saya bisa melihat bahwa semua alamat buruk lebih besar dari 0x7DDF0000 dan kurang dari 0x7DDF4000. Jadi, saya mengambil awal blok 16K sebagai alamat awal saya.
Parameter kedua adalah topeng. Anda menempatkan 1s di mana rentang alamat yang Anda inginkan berbagi nilai yang sama dan 0s di mana itu akan bervariasi. Ini berarti Anda harus memilih rentang alamat Anda sehingga hanya bit pesanan rendah yang bervariasi. Melihat alamat saya, bagian pertama topeng itu mudah. Anda ingin memulai dengan 0xffff. Untuk nibble berikutnya, saya akan jelaskan dengan bitmap. Saya ingin berkisar dari 0000 hingga 0011. Jadi, topeng untuk badram adalah 1100 atau hex c. 3 camilan terakhir harus semua 0s di topeng, karena kami ingin seluruh rentang dipetakan. Jadi, kami mendapatkan hasil total 0xffffc000.
Setelah mengatur baris ini di / etc / default / grub, saya menjalankan sudo update-grub dan reboot dan memori buruk saya tidak lagi digunakan. Tidak diperlukan patch kernel untuk memetakan memori buruk menggunakan metode ini.
Tindak lanjut # 1
Mencari melalui halaman wikipedia untuk memtest86 + menyatakan sebagai berikut:
kutipan dari halaman wikipedia Memtest86
Mulai dari Memtest86 2.3 dan Memtest86 + 1.60, program ini dapat menampilkan daftar wilayah RAM yang buruk dalam format yang diharapkan oleh tambalan BadRAM untuk kernel Linux; menggunakan informasi ini, sistem Linux dapat diandalkan menggunakan modul RAM bahkan jika itu memiliki beberapa bit yang buruk. Grub2 dapat menyediakan informasi yang sama ini ke kernel yang belum ditambal, meniadakan kebutuhan untuk patch BadRAM.
Saya juga menemukan halaman Gentoo ini yang menentukan memmap=...
penggunaan alamat hex, jadi Anda bisa menentukannya seperti ini:
memmap=5M$0x2f796c48
5M hanyalah tebakan, jelas Anda bisa menyesuaikannya lebih rendah atau lebih tinggi tergantung pada berapa banyak RAM di sekitar wilayah yang ingin / perlu Anda hilangkan.
Akhirnya Anda dapat menentukan ukuran dalam hex juga:
memmap=0x10000$0x2f796c48
Akan mengabaikan 64KB mulai dari alamat 0x2f796c48.
Referensi