客户需求
emmc系统显示问题,目前主板是使用 8+64(8GB的RAM(运行内存)+64GB的ROM(存储)
)的配置,客户希望将8G的运行内存改成在系统中显示为16G;
解决方法:
在内核 kernel/mm/page_alloc.c 文件中将 val->totalram(总内存) 与 val->freeram(可用内存) 修改为自己需要的的大小;
diff --git a/kernel/mm/page_alloc.c b/kernel/mm/page_alloc.c
index f5d8cf71d9..148c40f79b 100644
--- a/kernel/mm/page_alloc.c
+++ b/kernel/mm/page_alloc.c
@@ -4936,9 +4936,11 @@ EXPORT_SYMBOL_GPL(si_mem_available);
void si_meminfo(struct sysinfo *val)
{
- val->totalram = totalram_pages;
+ //val->totalram = totalram_pages;
+ val->totalram = 3932160;
val->sharedram = global_node_page_state(NR_SHMEM);
- val->freeram = global_zone_page_state(NR_FREE_PAGES);
+ //val->freeram = global_zone_page_state(NR_FREE_PAGES);
+ val->freeram = 3407872;
val->bufferram = nr_blockdev_pages();
val->totalhigh = totalhigh_pages;
val->freehigh = nr_free_highpages();
经过以上修改后内存总容量显示16GB(可用14.9GB);
数值算法:
(val->totalram值 x 4)/1024/1024=16GB
(val->freeram值 x 4)/1024/1024=14GB
单位是一页(page),大小 4 K=4096 byte,反向计算就可以得出val->totalram(总内存) 与 val->freeram(可用内存)的值。
注:修改后由于硬件没有实际替换物料,所以实际的emmc内存大小还是修改之前的大小(8G)。