Cmdline是由bootloader传给kernel,如uboot,将需要传给kernel的参数做成一个tags链表放在ram中,将首地址传给kernel,kernel解析tags来获取cmdline等信息。
向linux kernel中添加cmdline有下面三种方式:
1、 在dts中的bootargs中添加,CONFIG_MIPS_CMDLINE_FROM_DTB
/ {
chosen {
name = "chosen";
bootargs = "rd_start=0x8B992000 rd_size=0x2000000 root=/dev/ram0 rootfstype=squashfs ro init=/init console=ttyS0,115200N8 earlycon=uart8250,mmio,0x18018300,115200n8 no_console_suspend";
bootargs_recover = "rd_start=0x8B992000 rd_size=0x2000000 root=/dev/ram0 rootfstype=squashfs ro init=/init console=ttyS0,115200N8 earlycon=uart8250,mmio,0x18018300,115200n8 no_console_suspend";
stdout-path = "serial0:115200n8";
mtdids = "nand0=NAND_flash@0";
.
.
};
};
2.直接在kernel config中定义cmdline;
//待更新
3.从bootloader arg中获取(uboot/bootloader),CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER