Ich habe eine Embedded-Karte mit 512 MB RAM, auf der Linux 2.6.29 und der UBoot-Bootloader ausgeführt werden. Der Kernel kann jedoch nur 128 MB RAM nutzen.
Ich habe versucht, den Wert von zu ändern XCODE_MEMSIZE
, der meiner Meinung nach bestimmt, wie viel RAM der Kernel verwendet.
Wenn ich 512 einstelle, stürzt der Kernel beim Booten ab. Gibt es andere Konfigurationsparameter, die geändert werden müssen?
cat /proc/cmdline
sagt dir dein Board?Antworten:
Ohne genauere Kenntnisse über Ihr Embedded Board fallen Ihnen zwei Dinge ein.
Versuchen Sie den Kernel-
mem=
Boot-Parameter. (Ich denke, manchmal ist der Speicher von einer nicht fortlaufenden Adresse verfügbar, so dass Sie möglicherweise so etwas verwenden müssen, aber die Adressen müssen von Ihrem Mobo überprüft werden.mem = 512 M @ 0 mem = 256 M @ 0x80000000 mem = 256 M = 0xc0000000
Haben Sie eine eingebettete Grafikkarte? Das könnte einen Teil Ihres verfügbaren RAMs herausnehmen. Wenn Sie zum BIOS oder einem gleichwertigen Gerät gelangen können, überprüfen Sie dies.
Weitere Informationen erhalten Sie unter Kernel-Parameter
mem=
quelle
Ich denke, Sie sollten
RAM Disk
Ihren Kernel vergrößern .quelle
Zusätzlich zu den anderen Posts, in denen es darum geht, genauer zu sein, würde ich auch vorschlagen, die Bereitstellung aufzuheben,
/dev/shm
wenn sie bereitgestellt wird. Das ist ein RAM-Disk-Dateisystem und frisst in Ihren RAM.Schauen Sie sich auch den
sysctl
Befehl unter Linux an. Wenn Sie so etwas tun,sysctl -w kernel.shmmax="<some number>"
wird der Kernel während der Ausführung geändert.quelle