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é?

Tim
la source
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=

Manwe
la source
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.

Satish
la source
-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.

Freddie
la source
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