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?


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=


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.


-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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.