如何将个人的应用程序加到busybox中,如以下步骤:
1、到官方网站http://www.busybox.net/下载源文件:busybox-1.12.1。
2、解压缩该文件后,#cd busybox-1.12.1 进到根目录下。
3、Busybox的应用程序按功能被分散在源码的各个目录下面,为区分源码与个人添加的程序在根目录下新建一个存放个人应用程序的目录,例如新建一个warewin目录:
#mkdir warewin
4、根据Busybox的目录结构,在/warewin目录下新建Config.in和Kbuild两个文件。
5、在/warewin目录下把个人所有应用程序.c源文件放进去。以com_sk.c为例进行以下步骤。
(1)在/warewin/Config.in文件中增加相应的图形配置,如以下红色字体所示:
menu "WareWin Proc" //WareWin Proc为个人项目总菜单名
................
config COMSK //COMSK为子菜单名
bool "com_sk"
default y
help
The local com socket.
config COMPPP
bool "com_ppp"
default y
help
The local com ppp.
................
endmen
(2)在/warewin/kbuild文件中增加相应的编译选项,如以下红色字体所示:
lib-y:=
................
lib-$(CONFIG_COMSK) += com_sk.o
lib-$(CONFIG_COMPPP) += com_ppp.o
lib-$(CONFIG_SERVER_ALL) += server_tools.o
................
(3)/busybox-1.12.1/include/applets.h中把所需编译的文件添加到表中,加入代码:
................
USE_COMSK(APPLET(com_sk,_BB_DIR_USR_BIN,_BB_SUID_NEVER))
................
(4)在/busybox-1.12.1/include/applet_tables.h的applet_name[]中添加该程序名:
................
"com_sk" "\0"
................
(5)在applet_main[]()中添加该程序的主函数名:
................
com_sk_main,
................
(6)在/busybox-1.12.1/include/usage.h文件中加入该程序的帮助说明,如以下所示:
................
#define com_sk_trivial_usage "com_sk truvial help"
#define com_sk_full_usage "com_sk full usage"
................
6、将warewin目录下的所有C源文件编译,打开/busybox-1.12.1/makefile文件,在变量libs -y中添加一行:warewin/ \
7、将warewin目录下的程序菜单加到图形配置中,打开/busybox-1.12.1/config.in文件、在文件未添加以下代码:source warewin/Config.in
8、回到/busybox-1.12.1/目录下,重新配置菜单选项:#make menuconfig。
如下图所示可以在主菜单上看到我们加进来的个人项目主菜单WareWin Proc。
2.11 busybox总菜单图
进入/warewin proc菜单下选中我们要编译的程序,如下图所示:
2.12 个人项目子菜单图
9、退出菜单,重新编译:#make,将新生成的buxybox可执行程序放到根文件系统的/bin目录下。
10、在根文件系统的/usr/sbin目录下新建一个链接链接com_sk,该链接指向/bin/busybox。
在busybox.c中包含了BusyBox的入口main函数,在对调用参数处理之用调用applet.c中的run_applet_by_name函数,该函数将根据应用程序的名字,找到相应的applet,将执行BB_applet->main指向的函数,然后直接退出。
11、把根文件系统重新下载到设备上,设备重新开机后进到终端运行我们添加的程序。
#cd /usr/sbin
#./com_sk