Augmentation de la taille de la mémoire du noyau


14

J'ai une carte intégrée avec 512 Mo de RAM exécutant Linux 2.6.29 et le chargeur de démarrage UBoot. Mais le noyau ne peut utiliser que 128 Mo de RAM.

J'ai essayé de changer la valeur de XCODE_MEMSIZE, ce qui, je pense, détermine la quantité de RAM utilisée par le noyau.

Lorsque je le mets à 512, le noyau se bloque lors du démarrage. Y a-t-il un autre paramètre de configuration qui doit être modifié?


Pouvez-vous être plus précis concernant l'accident que vous mentionnez? Que voyez-vous à l'écran? Des erreurs?
Straphka

Et quelle planche est-ce?
Gilles 'SO- arrête d'être méchant'

Vous avez vraiment besoin de fournir plus de détails sur «uniquement capable d'utiliser 128 Mo». Il semble que quelque chose ait été limité quelque part (taille de la pile par utilisateur, etc.).
polynôme

combien de mémoire détecte u-boot? Détecte-t-il l'ensemble de 512 Mo?
Libre

Que cat /proc/cmdlinevous dit sur votre planche?
Ankur Agarwal

Réponses:


3

Sans une connaissance plus spécifique de votre carte embarquée, deux choses me viennent à l'esprit.

  1. Essayez mem=le paramètre de démarrage du noyau . (Je pense que parfois la mémoire peut être disponible à partir d'une adresse non continue, vous devrez donc peut-être utiliser quelque chose comme ça, mais les adresses devront être vérifiées par vous mobo.

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

  2. Avez-vous une carte graphique intégrée? Cela pourrait supprimer une partie de votre RAM disponible. Si vous pouvez accéder au bios ou équivalent, vérifiez cela.

@see Kernel paramters pour plus d'informations surmem=


Vous devrez peut-être spécifier une valeur inférieure à 512 Mo - il y a peut-être un périphérique ou quelque chose à l'adresse physique 0x20000000 (512 Mo) ou à proximité dans la carte mémoire de la carte, dont vous devriez obtenir une copie pour savoir où se trouve la RAM sur votre carte.
LawrenceC

1

Je suppose que vous devriez augmenter la RAM Disktaille de votre noyau.


-1

En plus des autres articles sur la spécificité, je suggère également de démonter /dev/shms'il est monté. C'est un système de fichiers ramdisk et mange dans votre ram.

Jetez également un œil à la sysctlcommande sous linux. Faire quelque chose comme sysctl -w kernel.shmmax="<some number>"change le noyau pendant son exécution.


4
/ dev / shm utilise à peine n'importe quelle mémoire si elle est vide. Il ne commencera à utiliser ram qu'une fois les fichiers chargés dedans.
Patrick

/ dev / shm n'est rien d'autre que la mise en œuvre du concept traditionnel de mémoire partagée. C'est un moyen efficace de transmettre des données entre les programmes. Un programme créera une partie mémoire à laquelle d'autres processus (si autorisés) peuvent accéder. Cela se traduira par une accélération des choses sur Linux.
Satish
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.