纠结了几天的向BusyBox中添加新命令(1.16.1版本)终于有了进展了啊,网上不同版本的使用还真是不一样啊不一样!其实只要在相关文件中查看其他命令的写法就可以依葫芦画瓢了,害我忙活了这久。每次有问题都谷歌百度,但实质都差不多的,解决办法没有我遇到的问题,很沮丧。很开心~最终还是出结果了,很简单的程序很简单的方法哦~
举例:新命令称为 newcmd,并将它放到了 ./miscutils 目录中
首先,编写或改写新命令的源代码,保证命令对应main函数形如:
#include "libbb.h"
#include
int newcmd_main(int argc, char **argv)
{
}
然后,更新新添命令所在目录中的配置文件,这样配置时改命令才可见。BusyBox1.16.1版本中配置文件名为Config.in。
config NEWCMD
bool "newcmd"
default n
help
再次,将命令添加到applets.h中,本例为:
IF_NEWCMD(APPLET(newcmd, _BB_DIR_USR_BIN, _BB_SUID_DROP))
这是因为本文件上面有定义宏# define APPLET(a,b,c) {#a,a##_main,b,c}。
接着,向 usage.h 添加帮助信息,本例为:
#define newcmd_trivial_usage \
#define newcmd_full_usage \
对应使用命令时显示为:
$ ./busybox newcmd --help BusyBox v1.1.1 (2006.04.12-13:47+0000) multi-call
binary Usage: newcmd None None
最后,更改新添命令所在目录中的编译的Makefile,BusyBox1.16.1版本中名为Kbuild,本例中添加语句:lib-$(CONFIG_NEWCMD) +=newcmd.o
这样添加新命令的过程全部完成,之后只要配置,编译,安装即可。