Aumentare la dimensione della memoria del kernel


14

Ho una scheda integrata con 512 MB di RAM con Linux 2.6.29 e bootloader UBoot. Ma il kernel è in grado di utilizzare solo 128 MB di RAM.

Ho provato a cambiare il valore di XCODE_MEMSIZE, che penso determina la quantità di RAM utilizzata dal kernel.

Quando l'ho impostato su 512, il kernel si arresta in modo anomalo durante l'avvio. C'è qualche altro parametro di configurazione che deve essere modificato?


Puoi essere più specifico riguardo all'incidente di cui parli? Cosa vedi sullo schermo? Qualche errore?
Straphka,


Devo davvero fornire maggiori dettagli su "solo in grado di usare 128 MB". Sembra che qualcosa sia stato limitato da qualche parte (dimensioni dello stack per utente, ecc.).
polinomio

quanta memoria rileva u-boot? Rileva l'intero 512 MB?
Freethinker,

Cosa cat /proc/cmdlineti dice sulla tua tavola?
Ankur Agarwal,

Risposte:


3

Senza una conoscenza più specifica della scheda integrata vengono in mente due cose.

  1. Prova mem=il parametro di avvio del kernel . (Penso che a volte la memoria possa essere disponibile da un indirizzo non continuo, quindi potresti dover usare qualcosa del genere, ma gli indirizzi dovranno essere controllati per te mobo.

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

  2. Hai una scheda grafica integrata? Ciò potrebbe eliminare una parte del tuo ariete disponibile. Se riesci ad arrivare al bios o equivalente, controlla quello.

@see Parametri del kernel per ulteriori informazioni sumem=


Potrebbe essere necessario specificare un valore inferiore a 512 M - forse c'è un dispositivo o qualcosa presso o vicino all'indirizzo fisico 0x20000000 (512 M) nella mappa di memoria della scheda, che dovresti ottenere una copia per sapere dove risiede la RAM sulla tua scheda.
LawrenceC,

1

Immagino che dovresti aumentare le RAM Diskdimensioni nel tuo kernel.


-1

Oltre agli altri post su come essere più specifici, suggerirei anche di smontare /dev/shmse è montato. Questo è un filesystem ramdisk e si nutre nel tuo ram.

Dai anche un'occhiata al sysctlcomando in linux. Fare qualcosa del genere sysctl -w kernel.shmmax="<some number>"cambia il kernel mentre è in esecuzione.


4
/ dev / shm usa a malapena qualsiasi memoria se è vuota. Inizierà a utilizzare ram solo dopo aver caricato i file.
Patrick

/ dev / shm non è altro che l'implementazione del tradizionale concetto di memoria condivisa. È un mezzo efficiente per trasferire dati tra i programmi. Un programma creerà una porzione di memoria a cui altri processi (se consentito) possono accedere. Ciò comporterà l'accelerazione delle cose su Linux.
Satish,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.