2008年9月24日星期三

通过__setup宏解析bootloader传递上来的自定义参数

bootloader参数console=ttyS0,115200 root=/dev/ram rw init=/linuxrc之类的,在此后面再加一条ts=1也就是console=ttyS0,115200 root=/dev/ram rw init=/linuxrc ts=1

在内核里添加ts=对应的handle函数及__setup宏
static int __init ts_setup(char *options)
{
printk("[ts_setup] %s\r\n",options);
return 1;
}
__setup("ts=", ts_setup);

当发现bootloader参数中含有ts=字符串时就调用ts_setup函数,=后的值就是options字符串。这样除了在menuconfig里选编译文件外还可以通过setup来选功能。让我想起了前2天老板叫我用配置文件确定gpio转i2c的io口,我之前用rootfs里的配置文件,现在可以转成用__setup来配置gpio口了。
setup在initcall之前

没有评论: