内核启动参数cmdline详解
Posted 正在起飞的蜗牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内核启动参数cmdline详解相关的知识,希望对你有一定的参考价值。
1、cmdline介绍
cmdline是uboot引导内核启动时传递给内核的,作用是指导内核启动。内核启动阶段会去解析cmdline,并根据cmdline去指导内核启动。
2、cmdline格式简介
(1)格式就是由很多个项目用空格隔开依次排列,每个项目中都是项目名=项目值;
(2)整个cmdline会被内核启动时解析,解析成一个一个的项目名=项目值的字符串。这些字符串又会被再次解析从而影响启动过程。
3、mdline常用参数
例如:mem=1408M console=ttyS0,115200 root=/dev/mmcblk0p7 rootfstype=squashfs mtdparts=xxx
(1)mem=
用来告诉内核当前系统的内存有多少;
(2)console=
指定控制台使用的串口已经波特率;
(3)root=
根文件系统的位置,比如上面就是指定根文件系统在mmcblk0p7分区,内核挂载根文件系统时会用到;
根文件系统也可以通过nfs远程挂载:
root=/dev/nfs nfsroot=192.168.1.141:/root/s3c2440/build_rootfs/aston_rootfs ip=192.168.1.10:192.168.1.141:192.168.1.1:255.255.255.0::eth0:off
(4)rootfstype=
指明文件系统的格式和权限;
(5)mtdparts=
指明存储设备的分区情况;
如:mtdparts=nand0:0x140000@0x000000(param),4m(uboot),2m(env),49408k(romfs),2m(custom),25m(web),2m(logo),512k(dgs),31m(ext_usr),2m(config_fw),-(config)
4、uboot向内核传递cmdline
uboot是通过在启动内核时,向内核传递tag参数,其中就包括cmdline。具体见博客:《uboot以tag方式给内核传参》。
5、内核解析cmdline
5.1、内核解析tag参数
参考博客:《内核中对uboot传参tags的校验》。
5.2、内核解析cmdline参数
参考博客:《内核中对cmdline的解析》。
以上是关于内核启动参数cmdline详解的主要内容,如果未能解决你的问题,请参考以下文章
如何查看内核memory and swap accounting
Android 逆向Android 系统文件分析 ( cmdline 系统启动参数文件 | crypto 密码算法信息文件 | devices 设备信息文件 )
Android 逆向Android 系统文件分析 ( cmdline 系统启动参数文件 | crypto 密码算法信息文件 | devices 设备信息文件 )