Observe que, em última análise, você não pode fazer muito com o conhecimento, a menos que esteja escrevendo uma ferramenta para alterar os arquivos de inicialização, ou simplesmente queira informar ao usuário o que eles possuem ou se a configuração atual de inicialização está tirando o máximo proveito do hardware. Um programa de aplicativo no ARM no kernel do Linux não pode realmente usar a memória extra, a menos que tenha sido concedida pelo código de inicialização da GPU.
Chris Stratton
Respostas:
10
Como você disse, o cat /proc/cpuinfo | grep Revisioncomando fornecerá a revisão do quadro. Observe que a revisão é um valor hexadecimal. Para exibir o equivalente decimal, execute este comando printf '%d\n' 0x#, onde #é o valor hexadecimal exibido com o comando anterior.
De acordo com a tabela a seguir, os códigos 13 , 14 e 15 representam a placa de 512 MB .
Model and revision Decimal code(s) Hexadecimal equivalent
Model B Revision 1.0 2 0x2
Model B Revision 1.0 + ECN0001 (no fuses, D14 removed) 3 0x3
Model B Revision 2.0 4, 5, 6 0x4, 0x5, 0x6
Model B Revision 2.0 (512 MB) 13, 14, 15 0xd, 0xe, 0xf
Lembre-se de que isso pode mudar no futuro. Tenho certeza de que os códigos 13,14,15 sempre significam que você tem 512 MB de RAM, mas pode haver outros. E não é uma boa idéia supor que todos os códigos> 13 tenham 512 MB, pois simplesmente não sabemos se isso será verdade. Portanto, não deve ser usado em scripts etc.
Krzysztof Adamski
1
Meu Pi veio em uma caixa com um adesivo dizendo "512MB RAM" em letras grandes, mas /proc/cpuinfodiz Revision : 0005. Estou inicializando a partir de uma imagem 2012-09-18-wheezy-raspbian.zipdehttp://www.raspberrypi.org/downloads
RedGrittyBrick 21/10
@RedGrittyBrick: A mesma coisa para mim. Acabei de receber meu Pi ontem e, de acordo com o blog oficial , tenho uma versão de 512MB de RAM (posso ver "4G" no chip). Mas cat /proc/cpuinforetorna a revisão 5. A revisão não está escrita no SoC? O Raspian precisa de uma atualização para "reconhecer" a versão de 512 MB de RAM?
Morgan Courbet
@ Morgan: Como o seu, o chip superior (RAM) da CPU no meu Pi está marcado como Samsung K4P4G324EB e as informações da Samsung confirmam que isso é "128Mx32" = 4 GBit = 512 MB. Eu fiz ler um artigo em algum fórum que sugeriu uma atualização de firmware é necessária (acho que isso é um dos arquivos no cartão SD)
RedGrittyBrick
@RedGrittyBrick: Eu tenho agora Revision: 000f. Provavelmente um recente dist-upgrade.
Morgan Courbet
7
Em um sistema operacional moderno como o Linux, o que você realmente precisa verificar é quanta memória foi disponibilizada para uso geral; que pode ser menor que o total instalado fisicamente. Por exemplo, um pi de 512 MB executando uma instalação destinada a um de 256 MB não disponibilizaria essa memória para você.
Então, no pi, há um outro problema da divisão da memória CPU vs. GPU - algo substancialmente menor do que a memória atual estaria disponível para o uso da CPU ARM no momento em que o Linux inicializar, já que o processo de inicialização da GPU já reivindicou uma quantidade substancial, conforme determinado o arquivo start.elf usado.
Para responder à pergunta direta, a primeira linha /proc/meminfoou o freecomando deve informar a quantidade de memória física disponível para o Linux em geral.
A quantidade de memória disponível para um determinado aplicativo é novamente mais complicada - o kernel, buffers e outros aplicativos reivindicam memória. E embora talvez não seja comumente usado com um cartão SD como o único "disco", uma partição de troca pode fazer com que a memória virtual disponível exceda a RAM física.
Respostas:
Como você disse, o
cat /proc/cpuinfo | grep Revision
comando fornecerá a revisão do quadro. Observe que a revisão é um valor hexadecimal. Para exibir o equivalente decimal, execute este comandoprintf '%d\n' 0x#
, onde#
é o valor hexadecimal exibido com o comando anterior.De acordo com a tabela a seguir, os códigos 13 , 14 e 15 representam a placa de 512 MB .
Fonte: documentação da comunidade Element14
fonte
/proc/cpuinfo
dizRevision : 0005
. Estou inicializando a partir de uma imagem2012-09-18-wheezy-raspbian.zip
dehttp://www.raspberrypi.org/downloads
cat /proc/cpuinfo
retorna a revisão 5. A revisão não está escrita no SoC? O Raspian precisa de uma atualização para "reconhecer" a versão de 512 MB de RAM?Revision: 000f
. Provavelmente um recentedist-upgrade
.Em um sistema operacional moderno como o Linux, o que você realmente precisa verificar é quanta memória foi disponibilizada para uso geral; que pode ser menor que o total instalado fisicamente. Por exemplo, um pi de 512 MB executando uma instalação destinada a um de 256 MB não disponibilizaria essa memória para você.
Então, no pi, há um outro problema da divisão da memória CPU vs. GPU - algo substancialmente menor do que a memória atual estaria disponível para o uso da CPU ARM no momento em que o Linux inicializar, já que o processo de inicialização da GPU já reivindicou uma quantidade substancial, conforme determinado o arquivo start.elf usado.
Para responder à pergunta direta, a primeira linha
/proc/meminfo
ou ofree
comando deve informar a quantidade de memória física disponível para o Linux em geral.A quantidade de memória disponível para um determinado aplicativo é novamente mais complicada - o kernel, buffers e outros aplicativos reivindicam memória. E embora talvez não seja comumente usado com um cartão SD como o único "disco", uma partição de troca pode fazer com que a memória virtual disponível exceda a RAM física.
fonte