如何增加命令行参数处理

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的内容了。

你可能感兴趣的:(如何增加命令行参数处理)