Raspberry Pi 3 tem menos de 1 GB de memória disponível no nível do SO

13

Não sei se é uma questão crítica ou não. Mas preciso me livrar dos pontos de interrogação em minha mente.

Recentemente, comprei uma placa Raspberry Pi 3 e, enquanto brincava com ela, percebi que o meminfo mostra o tamanho da memória física muito menos (~ 880 MB) que 1 GB (especificado no site oficial ).

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

A quantidade de memória disponível para a GPU é de 16 MB (que é o limite mínimo permitido) verificada duas vezes no item de menu raspi-config relacionado.

raspi-config -> Advanced Options -> Memory Split

A configuração de inicialização também diz que gpu_mem tem 16 MB .

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

Para restringir o espaço do problema, aqui estão as informações do sistema. A propósito, o sistema está atualizado.

Versão do SO:

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

Versão do kernel:

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

Configuração do kernel vmsplit:

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

Então, eu tenho 2 perguntas:

  • Onde está a memória de 128 MB ausente?
  • O que causa essa situação?
vaha
fonte
qual é o sistema operacional que você está usando - raspbian / arch / other? cat /etc/os-releasedeveria dizer isso. qual a versão do kernel? uname -adeveria dar isso. isso deve ajudar a diminuir as causas prováveis. o rpi-update realmente funcionou ou produziu algum aviso?
Shreyas Murali
Informações detalhadas são adicionadas ao texto da pergunta.
vaha
Provavelmente, é o mesmo problema que joan sugeriu no outro segmento. Verifique com zcat /proc/config.gz|grep CONFIG_VMSPLIT . Só que a solução com rpi-update não funciona porque ainda não há um kernel mais novo para o Pi3. Mas você pode recompilar seu kernel com 2 GB / 2 GB de memória.
Janka
1
Isso é perfeitamente normal, meu Pi3 mostra MemTotal: 882776 kB MemFree: 126868 kB MemAvailable: 689576 kB"Em circunstâncias normais, NUNCA é necessário executar o rpi-update, pois ele sempre leva ao firmware e ao kernel de ponta e, porque essa pode ser uma versão de teste, pode deixar o seu RPi não inicializável". raspberrypi.org/forums/viewtopic.php?p=916911#p916911
Milliways
O que vcgencmd get_mem arm && vcgencmd get_mem gpumostra?
Milliways

Respostas:

14

Se a saída de vcgencmd get_mem arm && vcgencmd get_mem gpué

arm=880M
gpu=128M

Isso significa que a GPU está usando 128M.

Isso pode ser verificado / alterado em raspi-config Advanced Options , embora eu mesmo não tenha reduzido a GPU. Estou saindo da memória, mas acho que esse é o padrão, possivelmente relacionado à câmera. Pelo menos agora você sabe onde está sua memória.

Milliways
fonte
Sim, é tudo sobre a câmera.
vaha
880M e 128M somam 1008M. Onde estão os outros 16 milhões?
V7d8dpo4 13/10
@ v7d8dpo4 Da pergunta:memory size for GPU is 16MB
David Starkey
9

Antes de mais, dou os meus melhores cumprimentos ao @Milliways por sugerir a verificação de 2 comandos simples.

vcgencmd get_mem arm && vcgencmd get_mem gpu

Onde está a memória de 128 MB ausente?

Mesmo se ambos raspi-confige /boot/config.txtdiz que a quantidade de memória disponível para GPU é de 16 MB, valores reais são 880MB para CPU, 128MB de GPU.

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

Portanto, a falta de 128 MB de memória é reservada para a GPU .

O que causa essa situação?

Inclusive /boot/config.txtinclui a linha gpu_mem=16, há outra linha que ativa o módulo da câmera.

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

Portanto, a ativação do módulo da câmera leva a 128 MB de reserva de memória para GPU, implicitamente implícita aqui .

Em suma, podemos dizer que start_x=1 substitui gpu_mem=16.

Depois de desativar o módulo da câmera start_x=0, aqui estão os valores da memória:

root@mypi:~# vcgencmd get_mem arm && vcgencmd get_mem gpu
arm=992M
gpu=16M
vaha
fonte
2
Sim, a câmera tem como padrão uma reserva de 128 Mb. Ele pode funcionar com divisões mais baixas (se bem me lembro, até 32Mb), mas com funcionalidade mais limitada (quanto menos memória, menores as resoluções que você pode lidar e assim por diante). Se a divisão for muito pequena (como 16Mb), ela será padronizada como 128.
Dave Jones
-1

Além da opção rpi-update, parece haver outra (possível) razão pela qual a memória relatada é menor. Desta vez, está relacionado à divisão do espaço do kernel / espaço do usuário. Esta postagem detalha a correção que envolve ajustar a configuração de compilação do kernel e reconstruí-la a partir do código-fonte. Um usuário relatou sucesso

por tesla01 »quinta-feira, 5 de fevereiro de 2015 20:04 Olá, confirmo que a opção 2G / 2G funciona ao usar o kernel personalizado

5 de fevereiro 19:17:12 kernel raspberrypi: [0.000000] Memória: 940776K / 966656K disponível (código do kernel 5785K, 377K rwdata, 1760K rodata, 396K init, 771K bss, 25880K reservado)

Obrigado :)

Você precisará verificar se essa é realmente a causa (verificando o valor de CONFIG_VMSPLITé ou CONFIG_VMSPLIT=3Gou CONFIG_VMSPLIT=2G), pois algumas postagens mais abaixo nesse link relatam sucesso como esse

por birdman »Qui 12/02/2015 22:01 Neste minuto, houve uma atualização para libraspberrypi- * e raspberrypi-bootloader. kernel agora 3.18.7-v7 +. memória agora relatada pelo topo como "KiB Mem: 998096"

Obrigado!!

enquanto outros não tiveram os mesmos resultados

Infelizmente, não estou perto do meu PI para verificar qualquer uma dessas reivindicações.

Shreyas Murali
fonte