Aumentando o tamanho da memória do kernel

14

Eu tenho uma placa incorporada com 512 MB de RAM executando o Linux 2.6.29 e o UBoot bootloader. Mas o kernel é capaz de utilizar apenas 128 MB de RAM.

Tentei alterar o valor de XCODE_MEMSIZE, que acho que determina a quantidade de RAM que o kernel usa.

Quando eu o defino para 512, o kernel trava durante a inicialização. Existe algum outro parâmetro de configuração que precise ser alterado?

Tim
fonte
Você pode ser mais específico em relação à falha mencionada? O que você vê na tela? Algum erro?
Straphka
E que placa é essa?
Gilles 'SO- stop be evil'
Realmente precisa fornecer mais detalhes sobre 'apenas capaz de usar 128MB'. Parece que algo foi limitado em algum lugar (tamanho da pilha por usuário, etc.).
polinomial
quanta memória o u-boot está detectando? Ele detecta todos os 512 MB?
livre-pensador
O que cat /proc/cmdlinevocê diz no seu quadro?
Ankur Agarwal

Respostas:

3

Sem um conhecimento mais específico da sua placa incorporada, duas coisas vêm à mente.

  1. Tente mem=o parâmetro de inicialização do kernel . (Eu acho que, às vezes, a memória pode estar disponível em um endereço não-contínuo, então você pode precisar usar algo assim, mas os endereços precisarão ser verificados por você.

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

  2. Você possui placa gráfica incorporada? Isso pode acabar com um pedaço do seu carneiro disponível. Se você puder acessar o BIOS ou equivalente, verifique isso.

@see Parameters do kernel para obter mais informações sobremem=

Manwe
fonte
Pode ser necessário especificar um valor inferior a 512M - talvez exista um dispositivo ou algo no endereço físico 0x20000000 (512M ou próximo a ele) no mapa de memória da placa, para o qual você deve obter uma cópia para saber onde fica a RAM na sua placa.
LawrenceC
1

Eu acho que você deve aumentar o RAM Disktamanho do seu kernel.

Satish
fonte
-1

Além dos outros posts sobre ser mais específico, eu também sugeriria a desmontagem, /dev/shmse estiver montado. Esse é um sistema de arquivos ramdisk e consome o seu ram.

Também dê uma olhada no sysctlcomando no linux. Fazer algo como sysctl -w kernel.shmmax="<some number>"altera o kernel enquanto está em execução.

Freddie
fonte
4
/ dev / shm usa quase nenhuma memória se estiver vazia. Ele começará a usar o ram apenas quando os arquivos forem carregados nele.
Patrick
/ dev / shm nada mais é do que a implementação do conceito tradicional de memória compartilhada. É um meio eficiente de transmitir dados entre programas. Um programa criará uma parte da memória, que outros processos (se permitido) podem acessar. Isso resultará em acelerar as coisas no Linux.
Satish