Ist es möglich, Ubuntu anzuweisen, nur einen Speicherchip zu verwenden, wenn der Computer zwei hat?

Ist es möglich, Ubuntu anzuweisen, nur einen Speicherchip zu verwenden, wenn der Computer zwei hat?

Wie im Titel beschrieben.

Seit ich einen neuen RAM-Chip gekauft habe, habe ich merkwürdige Probleme mit meinem Computer und frage mich nun, ob die Schuld vielleicht beim RAM-Chip liegt.

Um es zu testen, möchte ich Ubuntu so konfigurieren, dass es erst einen Chip und dann den anderen verwendet. Ich hätte nichts dagegen, komplexe Prozeduren durchzuführen (vielleicht den gesamten Speicher auf dem nicht verwendeten Chip manuell zuzuweisen, sodass alle Prozesse auf dem anderen liegen?), aber ich hätte etwas dagegen, gefährliche auszuprobieren.

Die einfachste Lösung wäre vielleicht, den Computer zu öffnen und die Chips physisch zu entfernen, aber das möchte ich nach Möglichkeit vermeiden (aus Angst vor Schäden/Schwierigkeiten beim Öffnen und Schließen des Computers).

Wie weise ich Ubuntu an, bestimmte Speicheradressen nicht zu verwenden?bietet eine Teillösung: Bei bestimmten Adressen, die vermieden werden sollen, können wir sie ausschalten. Aber es ist immer noch notwendig zu wissen, welche Adressen sich in welchem ​​Chip befinden

Antwort1

memtest

Gehen Sie ZUERST zuhttps://www.memtest86.com/und laden Sie sie kostenlos herunter/führen Sie sie aus, memtestum Ihr Gedächtnis zu testen. Führen Sie mindestens alle 4/4 Tests vollständig durch, um ein gutes Gedächtnis zu bestätigen. Dies kann einige Stunden dauern.

Ich vermute, das memtestwird fehlschlagen. Entfernen Sie Ihr neues SODIMM/DIMM und führen Sie es erneut aus memtest. Wenn es erfolgreich ist, entfernen Sie das erfolgreich installierte SODIMM/DIMM, setzen Sie das andere SODIMM/DIMM einzeln wieder ein und führen Sie es erneut aus memtest.

badram

SehenSo installieren Sie Ubuntu auf einem Laptop mit verlötetem RAM-Modul, dessen Zellen beschädigt sind

Wenn Sie darin nachschauen /etc/default/grub, finden Sie einen GRUB_BADRAM=Parameter, mit dem Sie feststellen können, welche fehlerhaften Speicherorte vorhanden sind.

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

Quelle:https://help.ubuntu.com/community/BadRAM#BADRAM_setting_in_Grub2

BADRAM-Einstellung in Grub2

Die GRUB2-Konfigurationsdatei in Natty enthält eine Zeile zum Konfigurieren von Kernel-Bad-RAM-Ausschlüssen. Ich gehe also davon aus, dass dies die bevorzugte Methode ist, um einen Speicherabschnitt abzubilden, der Fehler aufweist. Die Zeile, die ich festgelegt habe, war

GRUB_BADRAM="0x7DDF0000,0xffffc000" 

Auf jeder Website, die ich finden konnte, wurde vorgeschlagen, dies so einzustellen, dass es ausgeführt wird memtest86und die BadRAM-Einstellungen angezeigt werden. memtest86Ich erhielt eine Seite mit Dingen, die ich hätte eingeben müssen. Ich konnte sehen, dass sich alle Adressen in einem 16K-Block befanden, also wollte ich diesen 16K-Block einfach außer Betrieb setzen. So habe ich den richtigen Eintrag generiert.

Der erste Parameter ist einfach. Das ist die Basisadresse des fehlerhaften Speichers. In meinem Fall konnte ich sehen, dass alle fehlerhaften Adressen größer als 0x7DDF0000 und kleiner als 0x7DDF4000 waren. Also nahm ich den Anfang des 16K-Blocks als meine Startadresse.

Der zweite Parameter ist eine Maske. Sie setzen 1en, wo der gewünschte Adressbereich dieselben Werte hat, und 0en, wo er variieren soll. Das bedeutet, dass Sie Ihren Adressbereich so wählen müssen, dass nur die niederwertigen Bits variieren. Wenn man sich meine Adresse ansieht, ist der erste Teil der Maske einfach. Sie möchten mit 0xffff beginnen. Für das nächste Nibble werde ich es mit Bitmaps erklären. Ich möchte einen Bereich von 0000 bis 0011. Die Maske für Badram wäre also 1100 oder ein Hex-C. Die letzten 3 Nibbles in der Maske müssen alle 0en sein, da wir den gesamten Bereich abbilden möchten. Wir erhalten also ein Gesamtergebnis von 0xffffc000.

Nachdem ich diese Zeile in gesetzt hatte /etc/default/grub, führte ich sudo update-grubeinen Neustart aus und mein fehlerhafter Speicher wurde nicht mehr verwendet. Es sind keine Kernel-Patches erforderlich, um fehlerhaften Speicher mit dieser Methode zuzuordnen.

Update Nr. 1:

Wenn Speicherfehler im unteren Speicherbereich nicht auftreten, können Sie die Kerneloption „mem=##MB“ hinzufügen, um den Speicher oberhalb dieses Bereichs vorübergehend zu deaktivieren. Beispiel: Laut memtest86hat mein Speicherstick zwischen 315 MB und 325 MB Fehler. Indem ich „mem=314MB“ hinzufüge, sage ich dem Kernel, dass er so tun soll, als hätte ich nur 314 MB. Mein System ist dann stabil genug, um den Patch zu erstellen. An diesem Punkt kann ich einen Parameter übergeben, um NUR den Abschnitt zwischen 315 MB und 325 MB zu überspringen (was mir 502 MB nutzbaren Speicher verschafft).

dh: Booten Sie Ubuntu Live, drücken Sie im GRUB-Menü auf , eum in den Bearbeitungsmodus zu wechseln, verwenden Sie die Pfeiltasten, um „quiet splash“ zu finden, ändern Sie es in „quiet splash mem=2048MB“ und CTRL+ xoder , F10um mit dem Booten fortzufahren.

verwandte Informationen