Aumento del tamaño de la memoria del núcleo

14

Tengo una placa integrada con 512 MB de RAM que ejecuta Linux 2.6.29 y el cargador de arranque UBoot. Pero el núcleo solo puede utilizar 128 MB de RAM.

Intenté cambiar el valor de XCODE_MEMSIZE, que creo determina la cantidad de RAM que usa el núcleo.

Cuando lo configuro en 512, el núcleo se bloquea al arrancar. ¿Hay algún otro parámetro de configuración que deba cambiarse?

Tim
fuente
¿Puedes ser más específico con respecto al bloqueo que mencionas? ¿Qué ves en la pantalla? Cualquier error?
Straphka
¿Y qué tablero es?
Gilles 'SO- deja de ser malvado'
Realmente necesito proporcionar más detalles sobre 'solo puede usar 128 MB'. Parece que algo se ha limitado en alguna parte (tamaño de pila por usuario, etc.).
polinomio
¿Cuánta memoria está detectando u-boot? ¿Detecta el total de 512 MB?
librepensador
¿Qué cat /proc/cmdlinete dice en tu tablero?
Ankur Agarwal

Respuestas:

3

Sin un conocimiento más específico de su placa integrada, se me ocurren dos cosas.

  1. Prueba mem=el parámetro de arranque del kernel . (Creo que a veces la memoria puede estar disponible desde direcciones no continuas, por lo que es posible que tenga que usar algo como esto, pero las direcciones deberán verificarse según su mobo.

    mem = 512M @ 0 mem = 256M @ 0x80000000 mem = 256M = 0xc0000000

  2. ¿Tienes una tarjeta gráfica integrada? Eso podría eliminar una parte de tu carnero disponible. Si puede llegar a la BIOS o equivalente, verifique eso.

@ver los parámetros de Kernel para más información sobremem=

Manwe
fuente
Es posible que deba especificar un valor inferior a 512M; quizás haya un dispositivo o algo en o cerca de la dirección física 0x20000000 (512M) en el mapa de memoria de la placa, de la cual debe obtener una copia para saber dónde vive la RAM en su placa.
LawrenceC
1

Supongo que deberías aumentar el RAM Disktamaño de tu núcleo.

Satish
fuente
-1

Además de las otras publicaciones sobre ser más específico, también sugeriría desmontarlo /dev/shmsi está montado. Ese es un sistema de archivos ramdisk y se come en su ram.

También eche un vistazo al sysctlcomando en linux. Hacer algo como sysctl -w kernel.shmmax="<some number>"cambiar el núcleo mientras se está ejecutando.

Freddie
fuente
44
/ dev / shm usa apenas memoria si está vacía. Solo comenzará a usar ram una vez que los archivos estén cargados en él.
Patrick
/ dev / shm no es más que la implementación del concepto tradicional de memoria compartida. Es un medio eficiente de pasar datos entre programas. Un programa creará una porción de memoria, a la que pueden acceder otros procesos (si está permitido). Esto resultará en acelerar las cosas en Linux.
Satish