文档章节

Ubuntu14.04 交叉编译busybox给 Android系统ARM目标板

quanpower
 quanpower
发布于 2014/12/13 02:05
字数 642
阅读 2612
收藏 36

拿到一个RK3288的开发板,但是不得不说adb shell不太好用,像下面这样太锉了。 在此输入图片描述

于是想着把busybox编译进去。

1. 准备编译环境

其实现在Ubuntu上交叉编译相比之前要简单那很多。

1.1 安装 JDK 6:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer

1.2 依赖包:

Ubuntu 12.04 软件包安装:

sudo apt-get install git gnupg flex bison gperf build-essential \
 zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
 libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
 g++-multilib mingw32 tofrodos gcc-multilib ia32-libs\
 python-markdown libxml2-utils xsltproc zlib1g-dev:i386

Ubuntu 13.10/14.04 软件包安装:

sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev \
 libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl \
 libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils \
 xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev \
 lib32readline-gplv2-dev gcc-multilib libswitch-perl

1.3 安装 ARM 交叉编译工具链和编译内核相关软件包:

sudo apt-get install gcc-arm-linux-gnueabihf \
 lzop libncurses5-dev \
 libssl1.0.0 libssl-dev

这里至于gcc-arm-linux-gnueabihf还是gcc-arm-linux-gnueabi要看你芯片,应该是hard float吧

2.busybox源代码

下载最新版本busybox源码,下载地址:http://www.busybox.net/downloads/。

$ mkdir ~/busybox                      # 创建工作目录
$ cp busybox-1.22.1.tar.bz2 ~/busybox  # 复制源码包
$ cd ~/busybox/                        # 进入工作目录
$ tar -jxvf busybox-1.22.1.tar.bz2     # 解压
$ cd busybox-1.22.1/                   # 进入解压包

3.编译准备

3.1 环境变量

dpkg -L gcc-arm-linux-gnueabihf

看装哪里了,apt-get安装的还好,一般都/usr/bin了,没有的要加到环境变量

3.2 建立安装文件夹

mkdir busybox-install

4. meke menuconfig

根据个人喜好,用menuconfig或者直接修改.config,主要是这里有几点注意:

4.1 选择交叉编译器前缀

这里是前缀,不加gcc,到-结束,如我的:arm-linux-gnueabihf-; Busybox Settings --> Build Options --> Cross compiler prefix - Set this option equal to "arm-linux-gnueabihf-";

4.2 静态编译

建议使用静态编译; Busybox Settings --> Build Options --> Build Busybox as a static binary (no shared libs) - Enable this option by pressing "Y" 在此输入图片描述

4.3 不包含/usr目录

Busybox Settings --> Installation Options --> Don't use /usr - Enable this option by pressing "Y" 在此输入图片描述

4.4 安装目录

上一步的install目录,要使用绝对路径。 在此输入图片描述

4.5 最后按【ESC】,提示保存时保存。

5. make && make install

$ make                                  # 编译,如果是多核CPU,如四核,使用make -j4可提高编译速度
$ make install                          # 安装

6. 发送

或用Root Explore 把/挂载为可读写

adb shell mkdir busybox

adb push ./bin /busybox/bin
adb push ./sbin /busybox/sbin

export PATH=/busybox/bin:/busybox/sbin:$PATH:

7. 完结。

看下效果,跟前面adb shell是不是天壤之别了。如果再配合安装个SSH SERVER用就更爽了,完全脱离adb,主要是有VI 了,可以远程键盘编辑了。 在此输入图片描述

© 著作权归作者所有

quanpower
粉丝 65
博文 166
码字总数 104911
作品 0
嘉定
CTO(技术副总裁)
私信 提问
为Android交叉编译busybox

鉴于android调试模式中提供的命令太少而且功能太弱,给它添加个busybox是必需的,在网上找了几个已经编译好的busybox都挺不错,可是为了折腾,也为了根据自己喜好添加或者删除一些自己不用的...

鉴客
2011/07/28
8.4K
5
Oprofile在Android中的应用

1 oprofile 相关介绍 Oprofile 是用于 Linux 的若干种评测和性能监控工具中的一种。它可以工作在不同的体系结构上,包括 IA32 、 IA64 和 AMD Athlon 系列。它的开销小,将被包含在( Linux ...

鉴客
2011/07/17
2.9K
2
android-- A10开发板--Tslib 移植心得体会

tslib,其实从他的名字就可以看出它的,它是touchscreen的lib,其实这样还不够具体,其实它开始确实是为了touchscreen的鼠标驱动而发展起来的,且只是一个中间处理库,即将原始数据进行调整,...

雨焰
2012/09/27
2.4K
2
[深入理解Android卷一全文-第一章]阅读前的准备工作

由于《深入理解Android 卷一》和《深入理解Android卷二》不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在OSC博客中全文转发这两本书的全部内容。 第一章 阅读前的准备工作...

邓凡平
2015/08/02
1K
3
《深入理解Android:Wi-Fi,NFC和GPS》章节连载[节选]--第一章 准备工作

首先感谢各位兄弟姐妹们的耐心等待。本书预计在3月中旬上市发售。从今天开始,我将在博客中连载此书的一些内容。注意,此处连载的是未经出版社编辑的原始稿件,所以样子会有些非专业。 [要点...

邓凡平
2014/03/02
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
今天
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
今天
6
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
6
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
4
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部