busybox的添加新命令。

本文详细介绍了如何向BusyBox 1.16.1版本中添加新的命令,包括编写命令源代码、更新配置文件、添加到applets.h、编写帮助信息及修改Makefile等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自http://blog.sina.com.cn/s/blog_5230fd220100ixz2.html


纠结了几天的向BusyBox中添加新命令(1.16.1版本)终于有了进展了啊,网上不同版本的使用还真是不一样啊不一样!其实只要在相关文件中查看其他命令的写法就可以依葫芦画瓢了,害我忙活了这久。每次有问题都谷歌百度,但实质都差不多的,解决办法没有我遇到的问题,很沮丧。很开心~最终还是出结果了,很简单的程序很简单的方法哦~


  举例:新命令称为 newcmd,并将它放到了 ./miscutils 目录中
  首先,编写或改写新命令的源代码,保证命令对应main函数形如:
        int cmdname_main( int argc,char **argv );

#include "libbb.h"
#include <stdio.h>

int newcmd_main(int argc, char **argv)
{
  int i;
  printf("newcmdcalled:\n");
  for(i = 0; i< argc; i++)
  {
   printf("arg[%d] \n", i);
  }
  return 0;
}

  然后,更新新添命令所在目录中的配置文件,这样配置时改命令才可见。BusyBox1.16.1版本中配置文件名为Config.in。
    本例中添加:
config NEWCMD 
bool "newcmd" 
default n 
help 
 newcmd is a new test command.

  再次,将命令添加到applets.h中,本例为:
IF_NEWCMD(APPLET(newcmd, _BB_DIR_USR_BIN,_BB_SUID_DROP))
这是因为本文件上面有定义宏# define APPLET(a,b,c) {#a,a##_main,b,c}。

  接着,向 usage.h 添加帮助信息,本例为:
#define newcmd_trivial_usage \
      "None" 
#define newcmd_full_usage \
      "None"
对应使用命令时显示为:
$ ./busybox newcmd --help BusyBox v1.1.1(2006.04.12-13:47+0000) multi-call   binary Usage:newcmd None None

  最后,更改新添命令所在目录中的编译的Makefile,BusyBox1.16.1版本中名为Kbuild,本例中添加语句:lib-$(CONFIG_NEWCMD)+=newcmd.o

这样添加新命令的过程全部完成,之后只要配置,编译,安装即可。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值