您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术利用BusyBox简化嵌入式Linux系统 正文
利用BusyBox简化嵌入式Linux系统

利用BusyBox简化嵌入式Linux系统

点击数:7933 次   录入时间:03-04 11:58:51   整理:http://www.55dianzi.com   嵌入式系统-技术
    for(i=0;i

    printf("arg[%d]=%sn",i,argv[i]);

    }

    return0;

    }

    接下来,我们要将这个新命令的源代码添加到所选子目录中的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中

    configCONFIG_NEWCMD

    bool"newcmd"

    defaultn

    help

    newcmdISAnewtestcommand。

    这个结构定义了一个新配置项(通过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添加帮助信息

    #definenewcmd_trivial_usage"None"

    #definenewcmd_full_usage"None"

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

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

    清单18。测试新命令

    $。/busyboxnewcmdarg1

    newcmdcalled:

    arg[0]=newcmd

    arg[1]=arg1

    $。/busyboxnewcmd--help

    BusyBoxv1。1。1(2006。04。12-13:47+0000)multi-callbinary

    Usage:newcmdNone

    None

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

    结束语

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



上一页  [1] [2] 


本文关键字:嵌入式  Linux  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术

《利用BusyBox简化嵌入式Linux系统》相关文章>>>