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?
cat /etc/os-release
deveria dizer isso. qual a versão do kernel?uname -a
deveria dar isso. isso deve ajudar a diminuir as causas prováveis. o rpi-update realmente funcionou ou produziu algum aviso?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#p916911vcgencmd get_mem arm && vcgencmd get_mem gpu
mostra?Respostas:
Se a saída de
vcgencmd get_mem arm && vcgencmd get_mem gpu
é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.fonte
memory size for GPU is 16MB
Antes de mais, dou os meus melhores cumprimentos ao @Milliways por sugerir a verificação de 2 comandos simples.
Onde está a memória de 128 MB ausente?
Mesmo se ambos
raspi-config
e/boot/config.txt
diz que a quantidade de memória disponível para GPU é de 16 MB, valores reais são 880MB para CPU, 128MB de GPU.Portanto, a falta de 128 MB de memória é reservada para a GPU .
O que causa essa situação?
Inclusive
/boot/config.txt
inclui a linhagpu_mem=16
, há outra linha que ativa o módulo da câmera.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
substituigpu_mem=16
.Depois de desativar o módulo da câmera
start_x=0
, aqui estão os valores da memória:fonte
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
Você precisará verificar se essa é realmente a causa (verificando o valor de
CONFIG_VMSPLIT
é ouCONFIG_VMSPLIT=3G
ouCONFIG_VMSPLIT=2G
), pois algumas postagens mais abaixo nesse link relatam sucesso como esseenquanto outros não tiveram os mesmos resultados
Infelizmente, não estou perto do meu PI para verificar qualquer uma dessas reivindicações.
fonte