* 編譯 Android 檔案系統
修改 ~/.profile
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
複製原始檔, 從書附光碟
DVD_DMA-6410L_21\Android 2.1\Android_Source\android_eclair_dma6410L_110530.tar.bz2
解壓縮
root@ubuntu:~# tar jxvf android_eclair_dma6410L_110530.tar.bz2
root@ubuntu:~# cd android_eclair
修改 build/core/main.mk
root@ubuntu:~/android_eclair# vim build/core/main.mk
修改其中的 java 與 javac 版本
原為
java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1\.[56][\. "$$]')
改成(不必改)
java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1\.[56][\. "$$]')
原為
javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1\.5[\. "$$]')
改成
#javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1\.5[\. "$$]')
javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1\.[56][\. "$$]')
將 PATH 中 4.3.1 的設定移到最後或 disable, 以免編譯出錯
root@ubuntu:~/android_eclair# vim ~/.bashrc
#export PATH=/usr/local/arm/4.3.1-eabi-armv6/usr/bin:$PATH
export PATH=$PATH:/usr/local/arm/4.3.1-eabi-armv6/usr/bin
root@ubuntu:~/android_eclair# source ~/.bashrc
root@ubuntu:~/android_eclair# which cc
/usr/bin/cc
如果編譯有問題, 則刪除 out 目錄
root@ubuntu:~/android_eclair# rm -rf out
開始編譯 make, 大約 2 個多小時
root@ubuntu:~/android_eclair# make clean
root@ubuntu:~/android_eclair# make
編譯完成結果
Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Target ram disk: out/target/product/generic/ramdisk.img
Target userdata fs image: out/target/product/generic/userdata.img
Installed file list: out/target/product/generic/installed-files.txt
將 uboot 的 tools/mkimage 工具複製到 ~/android_eclair/out/target/product/generic 檔案系統映像檔所在目錄
複製 mkimage 工具
root@ubuntu:~/android_eclair# cp ../dma6410-u-boot-1.1.6/tools/mkimage out/target/product/generic
跳到 Android FS 映像檔所在目錄
root@ubuntu:~/android_eclair# cd out/target/product/generic
轉換映像檔
root@ubuntu:~/android_eclair/out/target/product/generic# ./mkimage -A arm -O linux -T ramdisk -C none -a 0x50800000 -n "ramdisk" -d ramdisk.img ramdisk-uboot.img
Image Name: ramdisk
Created: Tue Oct 11 02:55:49 2011
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 160050 Bytes = 156.30 kB = 0.15 MB
Load Address: 0x50800000
Entry Point: 0x50800000
=>此時 ramdisk-uboot.img system.img userdata.img 這三個才是我們要的 Android FS .
將 FileSystem 燒到 NORFLASH
DMA-6410L開電源後馬上按 Enter進到 u-boot
ramdisk-uboot.img system.img userdata.img 與 tftp都要先ready好)
make_android.sh (會清除暫存檔) 編譯約1小時19分鐘
===================
cd /root/android_eclair
echo "Start making android:" >> ../make_android.log ; date >> ../make_android.log
rm -rf out
make clean
make -j 4
echo "Finish making android:" >> ../make_android.log ; date >> ../make_android.log
cd -
*******************************
Start making android:
三 10月 12 02:09:28 PDT 2011
Finish making android:
三 10月 12 03:27:31 PDT 2011
*******************************
copy_android_image.sh
==========================
cd /root/android_eclair
cp ../dma6410-u-boot-1.1.6/tools/mkimage out/target/product/generic
cd out/target/product/generic
./mkimage -A arm -O linux -T ramdisk -C none -a 0x50800000 -n "ramdisk" -d ramdisk.img ramdisk-uboot.img
mkdir -p -v /root/image
cp -f ramdisk-uboot.img system.img userdata.img /root/image
cd -
留言列表