# [GUIA] Reciclar esos viejos modulos de memoria ram rotos

## Inodoro_Pereyra

Que tal gente? Desde hace un tiempo quería probar BadRam, el parche para el kernel que permite utilizar modulos de memoria ram defectuosos (de los que la pc cuenta correctamente pero producen fallos) y nunca había podido hacerlo por falta de tiempo...

Ahora que tuve un ratito, dejo este mini how-to a quien le pueda interesar:

1 - El kernel debe incluir el parche

Para los que usan gentoo-sources, el parche ya viene incluido por defecto (y activado si no me equivoco). Basta con revisar que esté tildada la opción "workaround bad spots in ram" dentro de "processor type and features"

Si no estuviera tildada, marcar y recompilar el kernel.

Para cualquier otro kernel que no incluya el parche, primero, averiguar que versión del kernel se está corriendo:

```
uname -r

2.6.19-gentoo-r5
```

Luego ir a la Página de descarga del parche badram y descargar el que corresponda a la versión del kernel, en mi caso el 2.6.19, copiarlo en la ubicación del kernel a parchar:

```
cp BadRAM-2.6.19.1.patch /usr/src/linux-2.6.19-r5
```

Aplicar el parche:

```
cd /usr/src/linux-2.6.19-r5

patch -p1 < BadRAM-2.6.19.1.patch
```

Recompilar el kernel y copiarlo a /boot/

2 - Descargar Memtest86

Muchos livecd ya incluyen memtest86 por defecto como opción pero me resultó mas comodo instalarlo:

```
emerge memtest86
```

Al terminar, se copia automáticamente una imagen de arranque de memtest86 dentro de /boot/.

Lo unico que resta es agregar una entrada en grub para poder utilizarlo. Mi /boot/grub/grub.conf dice:

```
title=Memtest86

root (hd0,0)

kernel /memtest86/memtest.bin
```

Memtest86 se usa para identificar las secciones defectuosas de la memoria ram y poder pasarselas al kernel como parámetro para que este no las utilice, por lo tanto, el paso siguiente es reiniciar la pc con memtest y el/los modulos de ram defectusos colocados.

3 - Correr una pasada completa de memtest86

Al iniciar memtest86, lo primero que hay que hacer es cambiar la configuración para que muestre los errores de salida en formato badram. Esto se hace con la tecla "C" para entrar en la configuración, activando la  opción 5 - Error Reporting Mode y por ultimo eligiendo la opción 2 - BadRam Patterns, saliendo de cada menú y submenú con la tecla "0"

Hay que dejarlo correr al menos una "pasada" completa de tests. Arriba a la derecha el primer indicador de porcentaje indica justamente el avance de cada pasada.

Al terminar una pasada completa en pantalla quedan una serie de rangos de memoria expresados en hexadecimal que se ven mas o menos así: badram=0xfefdffc,0x2404ea30,0xfe05fffc etc.

Tomar nota (yo lo hice en papel pero seguro hay una forma mas elegante de hacerlo) de todos estos rangos de memoria que fallan para pasarselos al kernel.

4 - Iniciar la PC en modo "lo mas seguro posible" o con memoria ram sana

Iniciar la pc en modo interactivo frenandola con la tecla "4" cuando pregunta la primera vez, o bien cambiando las memorias rotas por unas en buen estado.

Montar /boot/ si no lo estuviera y agregar una entrada nueva para BadRam en /boot/grub/grub.conf que en mi caso quedó así:

```
title  Gentoo Linux Kernel 2.6.19-r5 con memorias rotas

root (hd0,0)

kernel /boot/kernel2.6.19-r5 root=/dev/hda2 badram=0x2400ea30,0xff81fffc,0xffd07ffc,0x24016a30,0xfe01fffc
```

5 - Funciona o no funciona?

```
dmesg | grep Memory

Memory: 772132k/786368k available (3513k kernel code, 13760k reserved, 1606k data, 260k init, 0k highmem)
```

1 DDR de 512Mb pc3200 + 1 DDR de 256Mb pc3200, los dos defectusosos.

4 días de UpTime, ninguna falla hasta ahora y contando...

Espero que a alguien mas le sirva como a mí.

Saludos!

----------

## sefirotsama

Muy util sin duda alguna. Gracias Inodoro_pereya

Se lo pasaré a un colega que tiene rams a montones y esta obligado a trabajar con un amd k6-2...

----------

## Inodoro_Pereyra

 :Wink: 

Y por cierto, casi me atrevería a asegurar que funciona de lujo, 5 dias de uptime ya...

Saludos!

----------

## ZaPa

Muy bueno inodoro, el amo!

Saludos.

----------

## artic

Pues es muy util .......... lo que pasa es que cuando me petaba un modulo no se pq con el paso de los dias siempre me cascaban mas posiciones y con el pasar de los dias la cosa iba a mas y en ese caso no voi a estar cada poco haciendo un mentest y pasando posiciones al kernel en el boot ............ pero la idea es muy interesante.

Salu2

----------

## Inodoro_Pereyra

Es verdad, he visto de esos casos tambien... En el mío en particular, ya perdí la cuenta de cuantos dias van pero sigo con los mismos modulos rotos y sin inconvenientes hasta ahora. (crucen los dedos)

Saludos!

----------

