Linux的 __setup解析 -- 命令行处理

Linux的 __setup解析 – 命令行处理

名称:__setup
作用:命令行处理,处理启动命令行(来自dts或者在编译内核的时候写到CONFIG_CMDLINE中)的相关参数
示例:
文件 init/do_mounts.c 中:

static int __init root_dev_setup(char *line)
{
    strlcpy(saved_root_name, line, sizeof(saved_root_name));
    return 1;
}

__setup("root=", root_dev_setup);

联系 dts文件中的chosen节点的bootargs参数:

chosen {
    bootargs = "root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rw console=ttymxc3,115200n8 lpj=7905280 initroot=10:none,initramfs,/startup/run quiet";
};

经过上面的解析后,/dev/mmcblk0p2成为 root_dev_setup 的入参执行后续流程

拓展:命令行的来源
  • 编译内核的时候写到CONFIG_CMDLINE
  • 写到dts中由uboot上传给内核
    在menuconfig中设置路径如下:
Boot options ->
    Default kernel command string      # 设置默认的启动命令

Boot options ->
    Kernel command line type
        -> () Use bootloader kernel arguments if available  # 从bootloader中获取启动参数(如上面的例子)
           () Extend bootloader kernel arguments
           () Always use the default kernel command string  # 使用上面设置的默认启动行
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值