RK3568 android11 修改设置和第三方应用读到的内存总容量大小

文章讲述了如何通过修改Linux内核源码中的page_alloc.c文件,将8GB运行内存显示为16GB的方法。虽然硬件实际并未升级,但系统层面会显示为16GB(可用14.9GB),这涉及到对totalram和freeram值的调整,以及内存计算的原理。
摘要由CSDN通过智能技术生成

客户需求

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)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值