1. 程式人生 > >tiny_4412編譯環境搭建ubuntu12.04

tiny_4412編譯環境搭建ubuntu12.04

編譯環境:

Win764bit +  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.imgramdisk-u.img 

//這裡如果出現mkimage 命令無效,是因為沒有安裝uboot-mkimage工具

可將system.imgramdisk-u.img拷到SD卡的images/Android目錄下進行離線燒寫。