busybox源代码(busybox教程)
admin 发布:2022-12-19 20:51 134
本篇文章给大家谈谈busybox源代码,以及busybox教程对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
怎么安装Busybox
在ubuntu上安装busybox和其他软件一样,有两种方法:
1):在shell环境下执行命令:sudo apt-get install busybox,该命令将busybox的可执行文件安装在/bin文件夹下,
安装完成之后可以直接在shell下输入busybox来启动busybox。但是无法进行busybox的配置( make menuconfig )。
按照我的理解,此种方式是直接安装配置好的busybox。
2):在shell环境下执行命令:sudo apt-get source busybox,该命令用以下载busybox的源代码。下载完成后,
直接在busybox的源代码文件夹下执行命令make menuconfig。我在ubuntu8.04下执行时,遇到错误
/usr/bin/ld: cannot find -lncurses。系统提示:
Unable to find the Ncurses libraries.
You must have Ncurses installed in order
to use 'make menuconfig'
在shell环境下输入:sudo apt-get install libncurses-dev安装缺失的ncurses库。
至此,busybox的源代码目录下可以执行make menuconfig 来配置busybox呢 。
如何调用busybox的命令
清单 12. 使用 --help 选项调用命令
$ ./busybox wc --help
BusyBox v1.1.1 (2006.04.09-15:27+0000) multi-call binary
Usage: wc [OPTION]... [FILE]...
Print line, word, and byte counts for each FILE, and a total line if
more than one FILE is specified. With no FILE, read standard input.
Options:
-c print the byte counts
-l print the newline counts
-L print the length of the longest line
-w print the word counts
$
这些特定的数据只有在启用了 CONFIG_FEATURE_VERBOSE_USAGE 选项时才可以使用。如果没有这个选项,我们就无法获得这些详细数据,但是这样可以节省大约 13 KB 的空间。
向 BusyBox 中添加新命令
向 BusyBox 添加一个新命令非常简单,这是因为它具有良好定义的体系结构。第一个步骤是为新命令的源代码选择一个位置。我们要根据命令的类型(网络,shell 等)来选择位置,并与其他命令保持一致。这一点非常重要,因为这个新命令最终会在 menuconfig 的配置菜单中出现(在下面的例子中,是 Miscellaneous Utilities 菜单)。
对于这个例子来说,我将这个新命令称为 newcmd,并将它放到了 ./miscutils 目录中。这个新命令的源代码如清单 13 所示。
清单 13. 集成到 BusyBox 中的新命令的源代码
#include "busybox.h"
int newcmd_main( int argc, char *argv[] )
{
int i;
printf("newcmd called:\n");
for (i = 0 ; i argc ; i++) {
printf("arg[%d] = %s\n", i, argv[i]);
}
return 0;
}
接下来,我们要将这个新命令的源代码添加到所选子目录中的 Makefile.in 中。在本例中,我更新了 ./miscutils/Makefile.in 文件。请按照字母顺序来添加新命令,以便维持与现有命令的一致性:
清单 14. 将命令添加到 Makefile.in 中
MISCUTILS-$(CONFIG_MT) += mt.o
MISCUTILS-$(CONFIG_NEWCMD) += newcmd.o
MISCUTILS-$(CONFIG_RUNLEVEL) += runlevel.o
接下来再次更新 ./miscutils 目录中的配置文件,以便让新命令在配置过程中是可见的。这个文件名为 Config.in,新命令是按照字母顺序添加的:
清单 15. 将命令添加到 Config.in 中
config CONFIG_NEWCMD
bool "newcmd"
default n
help
newcmd is a new test command.
这个结构定义了一个新配置项(通过 config 关键字)以及一个配置选项(CONFIG_NEWCMD)。新命令可以启用,也可以禁用,因此我们对配置的菜单属性使用了 bool (Boolean)值。这个命令默认是禁用的(n 表示 No),我们可以最后放上一个简短的 Help 描述。在源代码树的 ./scripts/config/Kconfig-language.txt 文件中,我们可以看到配置语法的完整文法。
接下来需要更新 ./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 arg1
newcmd called:
arg[0] = newcmd
arg[1] = arg1
$ ./busybox newcmd --help
BusyBox v1.1.1 (2006.04.12-13:47+0000) multi-call binary
Usage: newcmd None
None
求助,安装Ubuntu出现busybox
你好,
我从网上帮你找了下你的问题的解决方案,希望能帮到你。
方法如下:
进入安装界面后按F2选中文,然后按F6,在命令行的最后加上下面这一句后回车,后面的安装都顺利通过。
all_generic_idefloppy=off irqpoll
(off后面有空格)
希望能帮到你,望采纳~
关于busybox源代码和busybox教程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-18seo教程,seo教程免费
- 05-18谷歌seo教程,谷歌seo建站
- 05-16怎么建立一个属于自己的网站,如何建立自己的网站教程
- 05-15seo完整教程视频教程,seo教学视频教程
- 05-13网络推广教程,网络推广技巧大全
- 05-13百度搜索关键词怎么刷上去,百度关键词刷排名教程
- 05-13怎么搭建网站,怎么搭建网站教程
- 05-12seo网站排名优化,seo网站排名优化教程
- 05-09seo网站排名优化培训教程,seo教程排名优化网站推广
- 05-09网站免费制作,免费制作网站教程
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接