内核启动参数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的解析》


版权声明:本文为weixin_42031299原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。