Chinaunix首页 | 论坛 | 博客
  • 博客访问: 300734
  • 博文数量: 43
  • 博客积分: 2071
  • 博客等级: 大尉
  • 技术积分: 488
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-25 17:48
文章分类

全部博文(43)

文章存档

2014年(5)

2013年(4)

2011年(9)

2010年(8)

2009年(17)

我的朋友

分类: LINUX

2009-09-17 14:35:20

Andorid 系统本身提供的命令工具很有限,对于开发人员来说,是需要一个功能强大的busybox滴.

如何让一个标准的busybox能够在Android 系统运行起来。可以有两种方法。
1. 将 busybox source code移植到Android 系统中, 然后编译出可执行文件。
2. 不移植busybox 到Android 系统中, 但让它能在Android 系统中运行。

对于第一种情况,需要将 busybox 的source code移植到Android 系统中,利用Android自带的toolchain来编译,但是,由于Android自带的toolchain与标准的arm-linux编译器不是完全兼容。
因此,工作量相对较大。这种方法可以使用Android 的系统 lib 库,从而编译出很小size的可执行文件。

对于第二种情况,则相对简单,但是需要考虑如下条件:
编译器支持的 ARM 指令集的版本 (是否一致)
linux的系统调用 (是否一致)

当然,由于编译器环境不一致,因此,只能编译静态的可执行文件,不能对 lib 库有依赖。这样,编出的可执行文件的size 比较大。

方法:
1. 下载 busybox source code, 目前最新的版本是 1.15.0


2. make menuconfig
使能如下项
Busybox Settings -> Build Options -> Build as a static binary (no hared libs).

3. modify Makefile
设置编译器类型, 我用的是 arm-linux-4.1.1 toolchains.
:= arm-linux-
同时将编译器的路径加入到系统PATH变量下

4. make
通过make 获得 busybox 可执行文件

5. 拷贝 busybox 到Android 运行环境中, 并增加可执行权限
chmod 777 busybox.

6. enjoy it.
for exmaple, get network device information.
./busybox ifconfig
或者通过如下命令来安装
./busybox --install
阅读(1942) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~