Raspberry Pi 3 tiene menos de 1 GB de memoria disponible a nivel de sistema operativo


13

No sé si es un problema crítico o no. Pero, necesito deshacerme de los signos de interrogación en mi mente.

Recientemente compré una placa Raspberry Pi 3 y, mientras jugaba con ella, me di cuenta de que meminfo muestra el tamaño de la memoria física mucho menos (~ 880 MB) que 1 GB (que se especifica en el sitio oficial ).

root@mypi:~# cat /proc/meminfo 
MemTotal:         882780 kB
MemFree:          536068 kB
MemAvailable:     712180 kB

La cantidad de memoria disponible para GPU es de 16 MB (que es el límite mínimo permitido) comprobada dos veces en el elemento de menú relacionado con raspi-config.

raspi-config -> Advanced Options -> Memory Split

La configuración de arranque también dice que gpu_mem es 16MB .

root@mypi:~# cat /boot/config.txt | grep -i gpu
gpu_mem=16

Para reducir el espacio del problema, aquí está la información del sistema. Por cierto, el sistema está actualizado.

Lanzamiento del sistema operativo:

root@mypi:~# cat /etc/os-release | grep PRETTY_NAME
PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"

Versión del núcleo:

root@mypi:~# uname -a
Linux mypi 4.4.23-v7+ #913 SMP Tue Oct 4 14:16:19 BST 2016 armv7l GNU/Linux

Configuración de kernel vmsplit:

root@mypi:~# zcat /proc/config.gz | grep CONFIG_VMSPLIT | grep -v ^#
CONFIG_VMSPLIT_2G=y

Entonces, tengo 2 preguntas:

  • ¿Dónde está la memoria faltante de 128 MB?
  • ¿Qué causa esta situación?

¿Cuál es el sistema operativo que está utilizando: raspbian / arch / other? cat /etc/os-releasedebería decir eso. ¿Cuál es la versión del kernel? uname -adebería dar eso. Esto debería ayudar a reducir las causas probables. ¿La actualización rpi realmente funcionó o produjo alguna advertencia?
Shreyas Murali

Se agrega información detallada al texto de la pregunta.
vaha

Es probable que sea el mismo problema que Joan sugirió en el otro hilo. Verifique con zcat /proc/config.gz|grep CONFIG_VMSPLIT . Solo que la solución con rpi-update no funciona porque todavía no hay un kernel más nuevo para Pi3. Pero puede recompilar su kernel con 2GB / 2GB de memoria dividida usted mismo.
Janka

1
Esto es perfectamente normal, mi Pi3 muestra MemTotal: 882776 kB MemFree: 126868 kB MemAvailable: 689576 kB"En circunstancias normales, NUNCA hay necesidad de ejecutar rpi-update, ya que siempre te lleva al núcleo y al firmware de vanguardia y debido a que puede ser una versión de prueba, podría dejar tu RPi no arrancable". raspberrypi.org/forums/viewtopic.php?p=916911#p916911
Milliways

¿Qué vcgencmd get_mem arm && vcgencmd get_mem gpumuestra?
Milliways

Respuestas:


14

Si la salida de vcgencmd get_mem arm && vcgencmd get_mem gpues

arm=880M
gpu=128M

Esto significa que la GPU está usando 128M.

Esto puede verificarse / cambiarse raspi-config Advanced Options, aunque yo mismo no he reducido la GPU. Voy de memoria, pero creo que este es el valor predeterminado, posiblemente relacionado con la cámara. Al menos ahora sabes dónde está tu memoria.


Sí, se trata de la cámara.
vaha

880M y 128M suman 1008M. ¿Dónde están los otros 16 millones?
v7d8dpo4

@ v7d8dpo4 De la pregunta:memory size for GPU is 16MB
David Starkey

9

En primer lugar, le doy mis mejores deseos a @Milliways por sugerir que verifique 2 comandos simples.

vcgencmd get_mem arm && vcgencmd get_mem gpu

¿Dónde está la memoria faltante de 128 MB?

Incluso si ambos raspi-configy /boot/config.txtdice que la cantidad de memoria disponible para la GPU es de 16MB, 880MB son valores reales para la CPU, 128 MB para la GPU.

root@mypi:~# vcgencmd get_mem arm && vcgencmd get_mem gpu
arm=880M
gpu=128M

Entonces, la memoria faltante (en realidad no faltante) de 128 MB está reservada para la GPU .

¿Qué causa esta situación?

Incluso /boot/config.txtincluye la línea gpu_mem=16, hay otra línea que habilita el módulo de la cámara.

root@mypi:~# cat /boot/config.txt | grep -i start_x
start_x=1

Por lo tanto, habilitar el módulo de la cámara conduce a una reserva de memoria de 128 MB para GPU, lo que está implícitamente implícito aquí .

En resumen, podemos decir que start_x=1anula gpu_mem=16.

Después de deshabilitar el módulo de la cámara start_x=0, aquí están los valores de memoria:

root@mypi:~# vcgencmd get_mem arm && vcgencmd get_mem gpu
arm=992M
gpu=16M

2
Sí, la cámara tiene por defecto una reserva de 128Mb. Se puede trabajar con las divisiones inferiores (si no recuerdo mal, todo el camino hasta 32Mb) pero con una funcionalidad más limitada (menos de memoria, menor será la resolución que puede manejar y así sucesivamente). Si la división es demasiado pequeña (como lo es 16Mb), solo tendrá un valor predeterminado de 128.
Dave Jones el

-1

Aparte de la opción de actualización de rpi, parece haber otra razón (posible) por la cual la memoria informada es menor. Esta vez tiene que ver con las divisiones de memoria del espacio del núcleo / espacio del usuario. Esta publicación detalla la solución que implica ajustar la configuración de compilación del núcleo y reconstruirla desde el código fuente. Un usuario informó éxito

por tesla01 »jue 05 de febrero de 2015 8:04 pm Hola, confirmo que la opción 2G / 2G funciona cuando se usa un kernel personalizado

5 de febrero 19:17:12 kernel de raspberrypi: [0.000000] Memoria: 940776K / 966656K disponible (código de kernel 5785K, 377K rwdata, 1760K rodata, 396K init, 771K bss, 25880K reservado)

Gracias :)

Deberá verificar que esta es realmente la causa (marcando el valor de CONFIG_VMSPLITis uno CONFIG_VMSPLIT=3Go CONFIG_VMSPLIT=2G) ya que algunas publicaciones más abajo en ese enlace informan que el éxito es así

por birdman »jue 12 de febrero de 2015 10:01 pm En este momento tuve una actualización de libraspberrypi- * y raspberrypi-bootloader. kernel ahora 3.18.7-v7 +. memoria ahora reportada por arriba como "KiB Mem: 998096"

¡¡Gracias!!

mientras que otros no tuvieron los mismos resultados

Lamentablemente, no estoy cerca de mi PI para verificar ninguno de estos reclamos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.