飛凌嵌入式i.MX6 Quad 的大部分軟件都向用戶開源,用戶可以通過本公司網盤鏈接獲取軟件和硬件的文檔及源碼,Android4.4 的操作系統源碼由於文件太大,存放于飛凌i.MX6 Quad 用戶光盤(B)
工具/原料
推薦電腦配置處理器:Core(TM) i7 內存:4G 以上
方法/步驟
安裝編譯Android4.4 系統所需要的庫
1. 安裝編譯Android 必要的包
# apt-get -y 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 \
dpkg-dev libswitch-perl
2. 安裝額外的一些包
# apt-get install uuid uuid-dev
# apt-get install zlib1g-dev liblz-dev
# apt-get install liblzo2-2 liblzo2-dev
# apt-get install git-core curl
3. 安裝JAVA 環境:
#mkdir /usr/local/jdk
拷貝jdk-6u45-linux-x64.bin 到/usr/local/jdk 目錄下執行./jdk-6u45-linux-x64.bin
相關的環境變量已在源碼根目錄下的env.sh 中定義,如用戶將jdk 放在其他目錄下
請自行配置該文件。
4. 額外的工作
複製i.MX6 光盤資料(A)\Tools\ mkimage 到PC ubuntu12.04 /work/下
# ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
#cd /work/
# chmod u+x mkimage
# cp mkimage /usr/sbin/mkimage
Android 4.4.2 系統的源碼包android_kk4.4.2_1.0.0.tar.bz2 位於src/Android4.4.2 目錄下,將它拷貝到
ubuntu 文件夾/work/forlinx 下;
注:防止編譯出現不必要的錯誤,請您也把代碼解壓到上面提到的目錄下。
解壓Android 源碼
解壓命令如下:
#cd /work/forlinx
#tar -xvjf android_kk4.4.2_1.0.0.tar.bz2
注:解壓之後的文件夾android_kk4.4.2_1.0.0 中包括文件系統、kernel,uboot
Kernel 位置android_kk4.4.2_1.0.0/kernel_imx
Uboot 位置android_kk4.4.2_1.0.0/bootable/bootloader/uboot-imx
Android 系統的編譯
1.編譯Android
編譯android4.4 過程依賴於三個腳本文件,這些腳本文件包含在源碼解壓之後生成的目錄下,進入該
目錄,執行以下命令:
#cd /work/forlinx/android_kk4.4.2_1.0.0
# source env.sh
# source build/envsetup.sh
#lunch sabresd_6dq-eng
#make -j8 2>&1 tee build.log
注: 1.Android 的編譯過程需要耗費幾個小時的時間,時間長短視電腦配置而定。
2.編譯生成的鏡像全部在android_kk4.4.2_1.0.0/out/target/product/sabresd_6dq 下生成,分別是
boot.img、recovery.img、system.img、u-boot-6q.bin
2.單獨編譯kernel
使用以下命令配置內核:
#./mk.sh kernel menuconfig
使用如下命令來編譯boot.img
#./mk.sh kernel boot.img
使用以下命令來清除kernel 編譯中間文件
#./mk.sh kernel distclean
注: 1.Android 內核以boot.img 為單個文件進行燒寫,所以要更新kernel,需要編譯boot.img,boot.img 由
ramdisk.img,uImage 以及kernel 啟動參數組成,上面的命令會先檢查是否有ramdisk.img,如果沒有
會先編譯ramdisk.img,然後編譯kernel,如已存在,那麼會直接編譯kernel。
3.單獨編譯uboot
使用以下命令來編譯uboot
#./mk.sh uboot android
使用以下命令來清除uboot 編譯中間文件
#./mk.sh uboot distclean