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

拿到一个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 了,可以远程键盘编辑了。

时间: 2024-12-30 16:34:03

Ubuntu14.04 交叉编译busybox给 Android系统ARM目标板的相关文章

Ubuntu14.04交叉编译BusyBox

1 开发环境 宿主机:Ubuntu14.04(32bit) 开发板:Mini2440 BusyBox:1.24.2 2 配置 到BusyBox官网下源码并解压. 2.1 默认配置 进入BusyBox源码顶级目录执行下面的命令进行默认配置: make defconfig 输出结果如下: scripts/kconfig/conf -d Config.in * * Busybox Configuration * * * Busybox Settings * * * General Configurat

Ubuntu14.04编译WebRTC For Android代码 2014-07-24

整整快一年没有写博客了,最近基于Google开源的WebRTC项目做了一款音视频聊天的即时通信项目,期间在下载WebRTC代码时就碰到了一些问题,在此以作记录,也希望能够帮助到正在下载编译WebRTC代码中碰到类似问题的童鞋们 1). 准备环境 1. Ubuntu14.04 LTS 系统 2. 准备一个稳定的速度还可以的VPN 或者 VPS ,这个很重要,大家都懂,大部分下载代码失败都是因为访问google服务失败导致的.(本人用的Digital Ocean, 之前试过几个VPN都以失败而告终,

Ubuntu14.04如何备份和恢复系统

本文由魔鬼舰长为您整理编写.安装好Ubuntu之后,别忘了安装 for linux 防火墙和杀毒软件.在备份系统前,请保证系统是无错和干净的:本人操作系统是ubuntu14.04,不知道是系统出了问题还是装的软件有问题,每次开机都出现:System program problem detected 我初步感觉是显卡驱动的问题.看着很心烦,关闭方法:管理员权限打开/etc/default/apport# set this to 0 to disable apport, or to 1 to ena

win7下U盘安装Ubuntu14.04桌面版实现双系统

最近刚过新年,duang下我们学习一下win7下用U盘安装Ubuntu双系统吧: 一.准备资料 背景环境:win7系统 准备文件:(下载链接:http://pan.baidu.com/s/1o6vAXfG) 1)Ubuntu系统:ubuntu-14.04.2-desktop-amd64.iso 2)U盘制作系统安装盘软件:   Uiso_9cn 3)  开机引导工具:[email protected] 4)mbr引导修复工具:Bootcie 二.实践 1.为Ubuntu系统分区: 点击--计算机

Ubuntu14.04搭建ELK日志分析系统

系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误.日志的作用不言而喻,但对于数量庞大且分布在多台机器上的日志,查看就显得特别麻烦了.所以,对于运维人员来说,使用日志分析系统是非常有必要的. 开源实时日志分析ELK平台能够实现日志的监控与分析,ELK由ElasticSearch.Logstash和Kiabana三个开源工具组成.官方网站:https://www.elastic.co/pr

Windows下通过ARM目标板上的gdbserver进行远程调试的方法

因某种需要,要在Windows平台上进行程序开发,目标板是基于Micrel芯片(ARMv4t)做的,上面运行有Linux最小系统,只有最基本的命令,需要在Windows平台上交叉编译能在ARMv4t上运行的目标代码,并且还要能进行远程调试.基于这些需求,初步计划按以下步骤进行: 1.先在Windows平台上交叉编译一个简单的C语言程序,并上传到开发板上,能正常运行即可: 2.交叉编译gdbserver,并上传到开发板: 3.进行远程调试. 按上述计划,首先要找一个Windows环境下的交叉编译环

linux学习(六) Ubuntu14.04(64位)配置android环境报错(...adb": error=2, 没有那个文件或目录)的解决方案

1.问题描述: 最近测试android环境的时候,运行程序,提示以下错误信息: Cannot run program error=2, 没有那个文件或目录' while attempting to get adb. 运行环境是 unbuntu 14.04 64位系统; 2.问题原因: 在网上搜索答案的时候,找到了问题的原因:因为系统是64位的,而Android sdk只有32bit的程序.所以就存在这不兼容的问题,缺少一些sdk运行的库. 3.解决方案: 很多软件只有32位的,还有很多比较依赖3

Ubuntu14.04下安装配置Android开发环境

下载安装配置JDK Java SE Downloads 安装包: jdk-8u11-linux-x64.tar.gz cd /usr/lib/ sudo mkdir jvm cd /home/user/ tar zxvf jdk-8u11-linux-x64.tar.gz -C /usr/lib/jvm/ cd /usr/lib/jvm sudo mv jdk1.8.0_11/ java-8-sun 修改.bashrc,添加环境变量 vim ~/.bashrc 2. 下载安装ADT&SDK 官网

在ubuntu14.04上安装编译Android需要的开发包

具体的操作步骤,可在Android官网查看. http://source.android.com/source/initializing.html 首先安装dpkg-dev sudo apt-get install dpkg-dev sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib