Augmentation de la taille de la memory du kernel

J'ai une carte embarquée avec 512 Mo de RAM sous Linux 2.6.29 et bootloader UBoot. Mais le kernel est capable d'utiliser seulement 128 Mo de RAM.

J'ai essayé de changer la valeur de XCODE_MEMSIZE , qui, je pense, détermine combien de RAM le kernel utilise.

Quand je le règle à 512, le kernel se bloque lors du démarrage. Y a-t-il d'autres parameters de configuration à modifier?

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

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

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

  2. Avez-vous une carte graphique embeddede? Cela pourrait prendre un morceau de votre bélier disponible. Si vous pouvez accéder au bios ou l'équivalent, vérifiez cela.

@Voir les parameters du kernel pour plus d'informations sur mem=

Je suppose que vous devriez augmenter la taille du RAM Disk dans votre kernel.

En plus des autres messages sur le fait d'être plus précis, je suggère également de /dev/shm s'il est monté. C'est un système de files ramdisk et mange dans votre RAM.

Jetez aussi un coup d'oeil à la command sysctl sous Linux. Faire quelque chose comme sysctl -w kernel.shmmax="<some number>" change le kernel pendant qu'il est en cours d'exécution.