如何增加命令行参数处理

ARM linux 系统通过bootable通过命令行参数传给内核kernel,内核启动时读出命令行参数cmdline,通过start_kernel对命令行处理。

如果为了实现自己的特殊功能,通过bootloader传参数给内核,对内核进行特殊的操作,就要增加代码。首先在bootloader要在命令行增加对应的参数项。另外还要改内核增加对这个参数的处理函数。比如增加一个参数,用来设置开机模式。在bootloader的命令行增加boot_mode=test。

在内核增加

 int saved_boot_mode;

static int __init boot_mode_setup(char *str)
{
 char buf[sizeof(console_cmdline[0].name) + 4]; /* 4 for index */
 char *s, *options, *brl_options = NULL;
 if (!strcmp(str, "test"))

saved_boot_mode=str;

    
   return 1;
}
__setup("boot_mode=", boot_mode_setup);

怎样通过__setup宏就将参数boot_mode和对应处理函数加入到了init。tab 区,执行start_kernel的时候对bootloader的命令行进行解析,解析到字符boot_mode就执行boot_mode_setup函数。

 

这样内核就可以知道命令行参数boot_mode的内容了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值