GNU/Linux >> Tutoriales Linux >  >> Linux

Sin MTRR en el arranque

Gracias a harrymc, descubrí que puedes reescribir /proc/mtrr. Puse lo siguiente en /etc/rc.local, reinicié y mi tabla MTRR era correcta.

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

Además, después de hablar con algunas personas involucradas en el desarrollo del kernel, me informaron que CONFIG_MTRR_SANITIZER se ha roto en los últimos núcleos, por lo que funcionó para otros en el pasado.


Citando la respuesta a su propia pregunta en los foros de Arch Linux:

Desde el dmesg, es fácil ver que se queda sin mtrr durante la inicialización de i915/drmgraphics. No tengo experiencia específica con este problema, pero estas son mis sugerencias:

  1. Inicie con 'mtrr_spare_reg_nr=2' y es posible que también necesite 'enable_mtrr_cleanup=1 (agregar a la línea del kernel en/boot/grub/menu.lst).
  2. Prueba el kernel 2.6.38 de [testing].

Desde el aspecto de su /proc/mtrr, su CPU ATOM tiene solo 8 MTRR, y realmente todos están agotados. Sin embargo, la forma en que la memoria se divide en fragmentos tan pequeños es desconcertante. En general, este problema puede deberse a:

  • El BIOS:busque parámetros que causen la asignación de memoria para los dispositivos.
  • La tarjeta gráfica que podría haber compartido memoria con la CPU y que el BIOS podría causar que se asigne brutalmente en medio de la memoria.
  • El controlador de la tarjeta gráfica:busque la última versión.
  • Un kernel mal configurado.

El mayor rompecabezas que puedo ver es que /proc/mtrr dice que tienes 8 GB. Pero en /proc/cpuinfo, la entrada 'flags' no contiene 'lm', que según las preguntas frecuentes de Arch64 es necesario para que el procesador sea compatible con x86_64. Las preguntas frecuentes dicen además:

Tenga en cuenta que Arch32 no admite más de 3 GB de RAM de forma predeterminada:debe cambiar a Arch64 si tiene más.

Entonces parece que tienes Arch32 y 8 GB de RAM, lo que contradice la documentación.
¿Podrías arrojar algo de luz sobre este rompecabezas?


Linux
  1. ¿Cómo obtengo la ruta de un proceso en Unix/Linux?

  2. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

  3. Cambiar el tamaño de la partición de arranque

  4. ¿Por qué se recomienda una partición de arranque ext2 de 100 MB para Linux?

  5. unix:///var/run/supervisor.sock no hay tal archivo

Linux – ¿Vincular /proc/mnt a /proc/mounts?

Linux:¿/sbin/init no existe?

Archivos /proc/cpuinfo y /proc/meminfo en Linux

Comprender los archivos /proc/mounts, /etc/mtab y /proc/partitions

/proc/[pid]/pagemaps y /proc/[pid]/maps | linux

¿Cómo saber desde qué carpeta se está ejecutando un proceso?