Ubuntu14.04 交叉編譯busybox給 Android系統ARM目標板

拿到一個RK3288的開發板,可是不得不說adb shell不太好用,像下面這樣太銼了。 在此輸入圖片描述java

因而想着把busybox編譯進去。python

1. 準備編譯環境

其實如今Ubuntu上交叉編譯相比以前要簡單那不少。linux

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 軟件包安裝:git

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 軟件包安裝:web

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吧shell

2.busybox源代碼

下載最新版本busybox源碼,下載地址:http://www.busybox.net/downloads/。markdown

$ 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了,沒有的要加到環境變量oracle

3.2 創建安裝文件夾

mkdir busybox-install

4. meke menuconfig

根據我的喜愛,用menuconfig或者直接修改.config,主要是這裏有幾點注意:curl

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 了,能夠遠程鍵盤編輯了。 在此輸入圖片描述

相關文章
相關標籤/搜索