概述
1 首先正常启动内核
我们需要启动内核后查询一些信息。
2. 查看系统内存信息
内核启动后通过
cat /proc/iomem
查看内存的分布,结果类似:
100000000-10dffffff : System RAM
但是我们会看到有很多条这样的项,我们主要关注"System RAM"这样的项,因为这代表系统内存。
3. 在System RAM的段,找一个地址最高的RAM项的结束地址,然后计算出预留的起始地址
例如,我需要预留4M内存,起始地址就是0x10dffffff - 0x400000 = 0x10DBFFFFF
这个是内存物理地址,你所选的预留内存的地址是需要由你自己来规划的。我这里之所以选择末端地址,是因为我的机器启动时,末端的地址基本上用不到。
4. 通过内核启动参数预留内存
在启动命令行添加如下参数:memmap=4m$0x10DBFFFFF
这样就表示从0x10DBFFFFF处预留出4M内存。
注意:如果是通过grub启动,需要确定grub是否支持识别$,否则需要通过转义字符:
memmap=4m$0x10DBFFFFF
5. 验证
最后要做的事情就是重启内核,等内核启动完成后,再通过cat /proc/iomem,观察我们预留的 0x10DBFFFFF ~ 0x10dFFFFFE是否是 “reserved”状态。
参考:https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html
最后
以上就是简单机器猫为你收集整理的linux通过内核启动参数预留系统内存的全部内容,希望文章能够帮你解决linux通过内核启动参数预留系统内存所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复