tiny_4412編譯環境搭建ubuntu12.04
編譯環境:
Win7(64bit) + Vritrulbox虛擬機器ubuntu12.04 (64bit)
這裡說明一下: 不要使用32位的系統(開啟虛擬化技術)+虛擬機器ubuntu12.04(64bit),
這樣會出現很多編譯過程中莫名其妙的問題,本人搞一個星期也沒能解決
交叉編譯工具:arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz
JDK版本:1.6 (不要使用openjdk)
需要編譯的安卓和linux核心都是tiny4412光碟上的:
android-4.2.2_r1-fs-20140526.tar
linux-3.5-20140422
-------------------------
一:虛擬機器配置
。。。安裝過程省略
建議記憶體4g, cpu數量設定成和真實CPU數量相同
解鎖root賬戶
Ubuntu下預設鎖定了root使用者,一般使用者只能用sudo 命令獲得root許可權執行,但是檢視共享目錄 /media/sf_shared會發現相當不方便
所以,我們方便起見解鎖root
系統設定---賬戶----右上角---看到一個鎖的標誌 ---- 點選----輸入管理員密碼即可解鎖
設定root 密碼
sudo passwd root
輸入兩次密碼即可,然後切換至root
su - root
安裝虛擬機器增強功能
主要用來共享資料夾(或者可以使用ftp smba等服務),共享剪下板(方便!),拖拽檔案
彈出地方點 安裝即可,重啟虛擬機器,列表所列的功能遍都可以使用了。
共享資料夾
-----------------------------------------------------------------------------------------------------
二 安裝工具
1.設定更新源
Ubuntu 軟體中心 --設定-更新源 ---163的源速度 比較快
二選一:
2.安裝tiny4412提供的工具指令碼(這裡必須是ubuntu12.04.2 軟體存在一定依賴關係)
複製apt-source 和指令碼檔案install-devel-packages.sh
cd 到該檔案的路徑
sudo chmod +x install-devel-packages.sh
sudo ./install-devel-packages.sh
這樣工具就安裝完畢了!
經過官方的指令碼還差兩個工具
sudo apt-get install openssl uboot-mkimage
2.安裝工具(使用tiny4412提供的安卓不需要做此步驟)
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 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
直接複製執行會出現如下錯誤:
下列軟體包有未滿足的依賴關係:
libgl1-mesa-glx:i386 : 依賴: libglapi-mesa:i386 (= 8.0.4-0ubuntu0.6)
推薦: libgl1-mesa-dri:i386 (>= 7.2)
E: 無法修正錯誤,因為您要求某些軟體包保持現狀,就是它們破壞了軟體包間的依賴關係
將裡面的libgl1-mesa-glx:i386修改為 libgl1-mesa-dri:i386,執行後可以正常安裝
重新輸入:
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-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
然後:
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
貌似依賴關係和xorg衝突,不小心解除安裝了xorg,重灌一下
sudo apt-get install xserver-xorg
sudo apt-get install ubuntu-desktop
3安裝jdk1.6(或者複製光碟帶的jdk資料夾,配置一下目錄即可)
http://java.oracle.com 下載 jdk-6u45-linux-x64.bin (這裡存放到了/media/sf_shared目錄了)
sudo mkdir -p /usr/lib/java
sudo cp jdk-6u45-linux-x64.bin /usr/lib/java
sudo chmod 0777 jdk-6u45-linux-x64.bin
cd /usr/lib/java
./jdk-6u45-linux-x64.bin
配置環境變數
vi ~/.bashrc
檔案末尾加上:
export JAVA_HOME=/usr/lib/java/jdk1.6.0_45
export JRE_HOME=/usr/lib/java/jdk1.6.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
source ~/.profile //更新環境
java -version //出現下面的版本號說明安裝成功
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
4.安裝交叉編譯工具
這裡進入 arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz的所在的目錄
sudo tar zvxf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C /
//將把arm-linux-gcc安裝到/opt/FriendlyARM/toolschain/4.5.1目錄
gedit ~/.bashrc
加入最後一行 export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin
source ~/.profile //更新環境
//檢視是否可用
arm-linux-gcc -v
//會出現配置資訊
=============================================================================================
因為對某些資料夾寫需要root許可權,直接切換到root編譯更加方便,(這裡環境變數的配置可以配置到任何一個使用者上)。
export JAVA_HOME=/usr/lib/java/jdk1.6.0_45
export JRE_HOME=/usr/lib/java/jdk1.6.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin
===========================================================================================
三、編譯
設定工作目錄用來編譯Android原始碼,先解壓出來
sudo mkdir –p /opt/FriendlyARM/tiny4412/android
cd /opt/FriendlyARM/tiny4412/android
sudo tar zfxv android-4.2.2_r1-fs-20140526.tar.gz -C /opt/FriendlyARM/tiny4412/android/
注意:opt目錄所有者是root,我們切換到root來操作更加方便一些,輸入時請去掉sudo,其他使用者請注意命令加上sudo,如make,
還有注意設定好相應的環境變數
編譯開始:
1;編譯核心
sudo mkdir -p /opt/FriendlyARM/tiny4412/android
//進入核心.gdz目錄
sudo tar zfvx linux-3.5-20140422.tgz -C /opt/FriendlyARM/tiny4412/android/
cd /opt/FriendlyARM/tiny4412/android/linux-3.5
cp tiny4412_android_defconfig .config
make -j4 //多核比較快
編譯完成的檔案
arch/arm/boot/zImage
2.編譯安卓
cd /opt/FriendlyARM/tiny4412/android/android-4.2.2_r1
. setenv //注意“.”後面有一個空格
make -j4 //4核推薦4
./gen-img.sh 生成system.img和ramdisk-u.img
//這裡如果出現mkimage 命令無效,是因為沒有安裝uboot-mkimage工具
可將system.img和ramdisk-u.img拷到SD卡的images/Android目錄下進行離線燒寫。