tutoriais:badram
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | tutoriais:badram [2024-03-19 13:22] (current) – created gnann | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Linux com Memória Ram com problemas (BadRam) ====== | ||
+ | |||
+ | Eventualmente você pode encontrar uma máquina com problemas de memória e que não é possível trocar a RAM (soldada ou velha ou qq coisa assim). Alguns utilitários podem testar a RAM e dizer onde há erro. Isso pode ser passado como parâmetro do kernel para evitar essa área problemática. Abaixo o passo a passo de um caso real: Notebook com 4GB de RAM soldada na placa. | ||
+ | |||
+ | Usei um pendrive com memtest86+ (de memtest.org) , configurei ele pra dar a saída no formato BadRam | ||
+ | |||
+ | Após 1 passe completo, resultou em: | ||
+ | < | ||
+ | badram= 0x000000008b902200, | ||
+ | 0x000000008c002220, | ||
+ | 0x000000008d002220, | ||
+ | 0x000000008e002220, | ||
+ | 0x000000008e002230, | ||
+ | 0x0000000094002200, | ||
+ | 0x0000000094002200, | ||
+ | 0x0000000094042200, | ||
+ | 0x000000009429e218, | ||
+ | 0x0000000096002200, | ||
+ | </ | ||
+ | Esses valores podem ser passados ao kernel para ignorar esses pontos defeituosos, | ||
+ | |||
+ | Cada linha da saída do badram é um hexadecimal com o começo da área com problema, seguida de uma máscara que indica quanto pra frente daquilo ainda tem problema. Se traduzir o primeiro número de hexadecimal pra decimal, dá no endereço onde começa o problem, que é 2341478912 bytes (decimal de 0x000000008b902200) e pela última linham podemos ver que termina o problema em 2516591104 bytes (decimal de 0x0000000096002200). Fazendo a diferença, dá um total de mais ou menos 175112192 bytes (um pouco a mais pq ignorei a última máscara). | ||
+ | |||
+ | Arredondando, | ||
+ | |||
+ | Ou seja, são pouco mais de 175MB começando da memória HEX 0x8b902200 | ||
+ | |||
+ | Para resolver: Foi inserido no arquivo / | ||
+ | |||
+ | E o que significa memmap=180M\$0x8b902200? | ||
+ | Significa que ele vai ignorar 200MB de memória começando da posição 0x8b902200 | ||
+ | |||
+ | Pode começar antes? Poderia, mas seria besteira pois o primeiro valor já é exato onde começa. Poderia terminar antes de 200MB? talvez, mas aí seria bom calcular com melhor precisão a máscara da última linha e ver o último endereço pra não acabar muito antes da área com problema. Através do comando "cat /proc/iomem | grep -i 8b902200" | ||
+ | |||
+ | Outro método seria usar só os badram pra " | ||
+ | |||
+ | Como o problema estava depois dos 2GB de RAM, o sistema pode ser instalado bootando o instalador com parâmetro mem=2300MB (já que problemas começavam após 2341MB). Isso limitou o uso de memória aos 2300MB iniciais. | ||
+ | |||
tutoriais/badram.txt · Last modified: 2024-03-19 13:22 by gnann