15AH, San Francisco

California, United States.

Send Your Mail At:

tianyingkejishe@sina.cn

Working Hours

Mon-Sat: 9.30am To 7.00pm

【busybox】Busybox增加功能软件

Busybox增加新功能软件需要遵循以下步骤:

  • 编译菜单中添加
  • 制作Applet的原型
  • 修改Makefile
  • 移植Applet
  • 调试Applet

一、编辑菜单

1、在Busybox源码根目录下创建「mtd-utils」目录

mkdir mtd-utils

2、创建「mtd-utils/Config.in」文件

touch mtd-utils/Config.src

3、在根目录下的「Config.in」文件中追加

source modutils/Config.in
source mtd-utils/Config.in  ←追加
source util-linux/Config.in

4、在「mtd-utils/Config.src」的文件内容如下所示

menu "MTD utils"

config MTD_DEBUG
    bool "mtd_debug"
    default n
    help
    Enable support mtd_debug

endmenu

5、查看UI界面配置

make menuconfig

二、制作Applet的原型

设计一个Applet原型,简单起见,只输出「hello」字符。大体需要下面3部:

  • 在Applet源文件中定义<Applet_name>_main函数
  • 在「include/applets.h」文件中添加<Applet_name>_main函数声明
  • 在「include/usage.h」文件中添加Applet帮助

1、创建「mtd-utils/mtd_debug.c」文件

#include "libbb.h"

int mtd_debug_main(int argc, char **argv) {
        printf("hello");
}

2、在「include/applets.src.h」文件中添加<Applet_name>_main函数声明

IF_MTD_DEBUG(APPLET(mtd_debug, BB_DIR_BIN, BB_SUID_DROP))

3、在「include/usage.src.h」文件中添加Applet帮助

#define mtd_debug_trivial_usage \
        "\n"
#define mtd_debug_full_usage "\n\n" \
        "\n"
#define mtd_example_usage \
        "\n"

4、创建「mtd-utils/Kbuild.src」文件

lib-$(CONFIG_MTD_DEBUG) += mtd_debug.o

INSERT

三、修改Makefile

libs-y:= \
                        archival/ \
(...)
                        modutils/ \
                        mtd-utils/ \  ←这里
(..)

四、配置编译项

make menuconfig后选择「mtd_debug」后编译。如果有以下输出则表示修改正确。

$ ./busybox mtd_debug
hello

anyShare分享到:
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。
stormwind

发表评论