如何向busybox添加自己的命令 例如:tree

make

make install

1;下载tree命令的源代码 http://mama.indstate.edu/users/ice/tree/,我使用的版本是busybox-1.17.2,可以去我的资源那里下载!!!,使用的tree版本为:tree-1.7.0.tgz,也可以到

我的资源那里下载,已经上传

在做嵌入式开的时候,busybox无疑是非常好用的命令集,所以很多时候都喜欢把busybox移植到我们的系统里面,移植过程网上也有很多相关的文档,今天这篇文档主要介绍如何在busybox中添加tree命令,过程如下:

busybox解压出来有很多目录,每个目录几乎是一类命令,比如网络,shell等等。我就把tree这个命令添加到miscutils目录下。

1)、在miscutils目录下添加.c文件,函数名要与其它.c文件里面的函数名的格式保持一致,即命令名tree_main(),刚下载下来的时候是main,修改为tree_main即可。

2)、修改编译文件,因为仅添加.c源文件,busybox编译系统不知道有新的代码添加进来,make的时候也不会编译tree.c文件,所以要修改Config.src文件(添加命令的整个过程跟添加内核驱动类似--内核是Kconfig):
config TREE
        bool "tree"
        default y
        help
                list the device map
修改这里主要是使得执行“make menuconfig”命令的时候,配置界面可以出现我们新增的命令,让用户对该命令可以配置,第一行是表示该命令的一个环境变量;第二行是出现在配置界面上的文字,是一个布尔量,取值为“Y”或者“N”;第三行是这个选项的默认值,这里默认是选中,后面两行是在配置界面的帮助信息。

3)、修改编译文件Kbuild.src,编译tree命令需要这个几个文件。
lib-$(CONFIG_TREE)    += tree.o
lib-$(CONFIG_TREE)    += unix.o
lib-$(CONFIG_TREE)    += color.o
lib-$(CONFIG_TREE)    += hash.o
lib-$(CONFIG_TREE)    += html.o
lib-$(CONFIG_TREE)    += json.o
lib-$(CONFIG_TREE)    += xml.o


注:移植过busybox的人都知道在bin,sbin目录下生产的都是符号链接,我们自己的命令要最终当然也是符号链接,那么要把保存到哪个目录下呢?

4)、修改/include/applets.src.h文件
vim applets.src.h 
IF_TREE(APPLET(tree,_BB_DIR_BIN, _BB_SUID_DROP))
第一个参数:命令的名字;第二个参数:存放的路径:第三个参数:权限


5)、为命令添加帮助信息,以便使用--help的时候查阅,此处None可以随便修改
vim usage.src.h 
22 #define tree_trivial_usage "None"
23 #define tree_full_usage "None


命令成功添加,使用make menuconfig即可看到,还有在make之前可以查看到include/autoconf.h里面有:

4751 #define CONFIG_TREE 1                                                                                                  
4752 #define ENABLE_TREE 1

make 之后在include/config/下生成/tree.h文件:
#define CONFIG_TREE 1

测试:

[root@Linux /home]# tree
.
|-- hello
|   `-- hello_module.ko
|-- led
|   |-- jaguar_led.ko
|   |-- led_none
|   `-- led_test
`-- spi
    `-- spi_dev


3 directories, 5 files


完!!!!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BusyBox 是一个精简的 Linux 工具集合,它包含了大量的常用命令,如 ls、cp、mv、rm 等,它可以运行在嵌入式系统和资源有限的环境中。虽然 BusyBox 已经包含了大部分常用的命令,但是有时候我们可能需要添加一些额外的命令。 要添加命令BusyBox,我们首先需要获取 BusyBox 的源代码。然后,在源代码中找到命令的配置文件,这通常是一个以 .config 结尾的文件。在这个配置文件中,我们可以找到已经包含的命令列表。要添加一个新命令,我们可以简单地在配置文件中添加命令的选项,并将其设置为 "y" 或 "m",表示该命令是开启的。如果所需的命令相关的依赖也没有包含在 BusyBox 中,我们还需要将依赖的选项也设置为 "y" 或 "m"。 接下来,我们需要重新编译 BusyBox。在终端中进入 BusyBox 源代码目录,运行 make 命令以重新编译该工具集合。编译完成后,我们就可以在输出目录中找到新的 BusyBox 可执行文件。 最后,我们可以将新的 BusyBox 可执行文件拷贝到目标系统中,替换原有的 BusyBox 可执行文件即可。现在,我们就可以使用我们刚刚添加的新命令了。 总的来说,虽然 BusyBox 已经包含了大量的常用命令,但添加命令也是相对简单的。只需获取源代码,修改配置文件,重新编译,替换原有的可执行文件,就可以轻松地扩展 BusyBox 的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值