微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > busybox 详解

busybox 详解

时间:05-08 来源: 点击:

接下来需要更新 ./include/applets.h 文件,使其包含这个新命令。将下面这行内容添加到这个文件中,记住要按照字母顺序。维护这个次序非常重要,否则我们的命令就会找不到。

清单 16. 将命令添加到 applets.h 中

USE_NEWCMD(APPLET(newcmd, newcmd_main, _BB_DIR_USER_BIN, _BB_SUID_NEVER))
这定义了命令名(newcmd),它在 Busybox 源代码中的函数名(newcmd_main),应该在哪里会为这个新命令创建链接(在这种情况中,它在 /usr/bin 目录中),最后这个命令是否有权设置用户 id(在本例中是 no)。

倒数第二个步骤是向 ./include/usage.h 文件中添加详细的帮助信息。正如您可以从这个文件的例子中看到的一样,使用信息可能非常详细。在本例中,我只添加了一点信息,这样就可以编译这个新命令了:

清单 17. 向 usage.h 添加帮助信息

#define newcmd_trivial_usage "None"#define newcmd_full_usage "None"

最后一个步骤是启用新命令(通过make menuconfig,然后在 Miscellaneous Utilities 菜单中启用这个选项)然后使用make来编译 BusyBox。

使用新的 BusyBox,我们可以对这个新命令进行测试,如清单 18 所示。

清单 18. 测试新命令

$ ./busybox newcmd arg1newcmd called:arg[0] = newcmdarg[1] = arg1$ ./busybox newcmd --helpBusyBox v1.1.1 (2006.04.12-13:47+0000) multi-call binaryUsage: newcmd NoneNone

就是这样!BusyBox 开发人员开发了一个优秀但非常容易扩展的工具。

结束语

BusyBox 是为构建内存有限的嵌入式系统和基于软盘系统的一个优秀工具。BusyBox 通过将很多必需的工具放入一个可执行程序,并让它们可以共享代码中相同的部分,从而对它们的大小进行了很大程度的缩减,BusyBox 对于嵌入式系统来说是一个非常有用的工具,因此值得我们花一些时间进行探索。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top