增加内核内存大小


14

我有一个带有512MB RAM的嵌入式板,运行Linux 2.6.29和UBoot引导程序。但是内核只能使用128MB的RAM。

我尝试更改的值XCODE_MEMSIZE,我认为该值确定内核使用多少RAM。

当我将其设置为512时,内核在启动时崩溃。是否还有其他需要更改的配置参数?


您能否更具体地谈谈您提到的崩溃?您在屏幕上看到了什么?有什么错误吗?
Straphka 2011年

那是什么板子?
吉尔(Gilles)“所以

确实需要提供有关“仅能使用128MB”的更多详细信息。听起来有些地方受到限制(每个用户的堆栈大小等)。
多项式

u-boot检测多少内存?它能检测到全部512MB吗?
freethinker

cat /proc/cmdline在董事会上您会看到什么?
Ankur Agarwal

Answers:


3

如果没有对嵌入式板的更具体的了解,就会想到两件事。

  1. 尝试内核mem=启动参数。(我认为有时可能会从非连续地址获得内存,因此您可能必须使用类似的方法,但是必须根据您的主板检查地址。

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

  2. 您有嵌入式图形卡吗?那可能会占用您的可用内存的一大部分。如果您可以访问BIOS或等效文件,请进行检查。

@ 有关更多信息,请参阅内核参数mem=


您可能需要指定一个小于512M的值-可能在主板的内存映射中的物理地址0x20000000(512M)或附近有设备或东西,您应该得到一份副本,以了解RAM在主板上的位置。
LawrenceC


-1

除了有关更具体的其他帖子外,/dev/shm如果已安装,我也建议卸载。那是一个ramdisk文件系统,并吞噬了您的ram。

还可以看看sysctllinux 中的命令。诸如此类的操作sysctl -w kernel.shmmax="<some number>"会在内核运行时对其进行更改。


4
如果/ dev / shm为空,则几乎不使用任何内存。一旦将文件加载到内存中,它将仅开始使用ram。
Patrick

/ dev / shm只是传统共享内存概念的实现。这是在程序之间传递数据的有效方法。一个程序将创建一个内存部分,其他进程(如果允许)可以访问。这将加快Linux上的处理速度。
Satish
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.