* 編譯 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
=> run ramdisk_uboot
=> run system
=> run userdata
(當然Host上的 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 -
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 aries 的頭像
    aries

    aries's Embedded Notes

    aries 發表在 痞客邦 留言(0) 人氣()