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

客户需求

emmc系统显示问题,目前主板是使用 8+64的配置,客户希望将8G的emmc改成在系统中显示为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)。

猜你喜欢

转载自blog.csdn.net/weixin_45639314/article/details/130890112