如何增加命令行参数处理

本文介绍如何在ARM Linux系统中通过bootloader传递命令行参数给内核,并实现特定的功能。具体步骤包括在bootloader中添加命令行参数,以及在内核中添加相应的处理函数。例如,设置开机模式为测试模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值