1. 程式人生 > >tiny4412 編譯並燒寫系統

tiny4412 編譯並燒寫系統

編譯: linux-3.0.86
cd linux-3.0.86/
cp tiny4412_android_defconfig .config
make zImage
在arch/arm/boot目錄下生成zImage。替換images/Android下的zImage即可。

編譯: android-5.0.2
cd android-5.0.2
. setenv               // "."後面有一個空格,setenv設定Android編譯相關的環境變數。
make

編譯成功後,生成系統映像檔案: 
./gen-img.sh        // 在原始碼根目錄下生成 system.img ramdisk-u.img userdata.img
system.img          // Android 系統分割槽映象
ramdisk-u.img      // Android 根分割槽映象
userdata.img        // Android Data 分割槽映象


執行動作:

[email protected]:~/work/android-5.0.2$ . setenv
including device/asus/fugu/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/asus/grouper/vendorsetup.sh
including device/asus/deb/vendorsetup.sh
including device/asus/flo/vendorsetup.sh
including device/lge/hammerhead/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/generic/mini-emulator-x86/vendorsetup.sh
including device/generic/mini-emulator-arm64/vendorsetup.sh
including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
including device/generic/mini-emulator-x86_64/vendorsetup.sh
including device/generic/mini-emulator-mips/vendorsetup.sh
including device/friendly-arm/tiny4412/vendorsetup.sh
including device/moto/shamu/vendorsetup.sh
including sdk/bash_completion/adb.bash

ubuntu12.04下安裝MiniTools
tar -xvf MiniTools-Linux-20150528.tgz
cd MiniTools-20150528
執行./start.sh 
注:非root使用者,需要先su切換到root使用者,再執行.

製作用於安裝系統的SD卡
本質是:將Tiny4412的Bootloader(Superboot4412.bin)燒寫到SD卡的第一個分割槽,之後就可用SD卡啟動。
利用Superboot的SD卡離線燒寫功能,將系統燒寫到eMMC,達到重新安裝系統的目的。

1. 利用 SD-Flasher.exe 對SD卡進行分割槽,第一個分割槽為130M用於存放Superboot4412,剩下的空間格式化為FRIENDLYARM分割槽,用於存放系統檔案images。
2. 以管理員執行 SD-Flasher.exe








到此,Superboot4412.bin就被燒錄到SD卡的無格式區中了,以後使用SD-Flasher製作SD卡時,無需再執行Relayout操作了,FAT32分割槽中的資料會得以保留。Bootloader被寫入SD卡後無法看到,把SD卡插到開發板上,S2開關設定為SDBOOT模式,開機後,串列埠就有資訊輸出。

拷貝image到SD卡中

Android 系統燒寫
拷貝檔案到SD卡:
images/Superboot4412.bin               // Bootloader
images/FriendlyARM.ini                    // 系統燒寫配置檔案
images/ramdisk-u.img                       // Android 根分割槽映象
images/system.img                           // Android 系統分割槽映象
images/userdata.img                         // Android Data 分割槽映象
images/userdata-4g.img
images/userdata-8g.img
images/userdata-16g.img
images/zImage                                 // Android 核心

cat images/FriendlyARM.ini 

#This line cannot be removed. by FriendlyARM(www.arm9.net)

CheckOneButton=No
Action = Install
OS = Android

LowFormat = Yes
VerifyNandWrite = No

LCD-Mode = No
CheckCRC32=No

StatusType = Beeper | LED

################### Android 5 ####################
Android-BootLoader = Superboot4412.bin
Android-Kernel = Android/zImage
Android-CommandLine = console=ttySAC0,115200n8 androidboot.console=ttySAC0 ctp=2 skipcali=y vmalloc=384m ethmac=1C:6F:65:34:51:7E androidboot.selinux=permissive
Android-RamDisk =Android/ramdisk-u.img
Android-RootFs-InstallImage = Android/system.img
Android-UserData-4G = Android/userdata-4g.img
Android-UserData-8G = Android/userdata-8g.img
Android-UserData-16G = Android/userdata-16g.img
Android-UserData = Android/userdata.img

################### UbuntuCore ####################
Ubuntu-BootLoader = Superboot4412.bin
Ubuntu-Kernel = UbuntuCore/zImage
Ubuntu-CommandLine = root=/dev/mmcblk0p1 rootfstype=ext4 console=ttySAC0,115200n8 bootdev=EMMC ethmac=FC:09:D1:00:00:04
Ubuntu-RamDisk = UbuntuCore/ramdisk-u.img
Ubuntu-RootFs-InstallImage = UbuntuCore/rootfs_ubuntucore.img

################### Android 4.1.2 ####################
# Android-BootLoader = Superboot4412.bin
# Android-Kernel = Android4.1.2/zImage
# Android-CommandLine = console=ttySAC0,115200n8 androidboot.console=ttySAC0 ctp=2 skipcali=y vmalloc=384m ethmac=1C:6F:65:34:51:7E
# Android-RamDisk =Android4.1.2/ramdisk-u.img
# Android-RootFs-InstallImage = Android4.1.2/system.img
# Android-UserData-4G = Android4.1.2/userdata-4g.img
# Android-UserData-8G = Android4.1.2/userdata-8g.img
# Android-UserData-16G = Android4.1.2/userdata-16g.img
# Android-UserData = Android4.1.2/userdata.img

################### Android 4.2.2 ####################
# Android-BootLoader = Superboot4412.bin
# Android-Kernel = Android4.2.2/zImage
# Android-CommandLine = console=ttySAC0,115200n8 androidboot.console=ttySAC0 ctp=2 skipcali=y vmalloc=384m ethmac=1C:6F:65:34:51:7E
# Android-RamDisk =Android4.2.2/ramdisk-u.img
# Android-RootFs-InstallImage = Android4.2.2/system.img
# Android-UserData-4G = Android4.2.2/userdata-4g.img
# Android-UserData-8G = Android4.2.2/userdata-8g.img
# Android-UserData-16G = Android4.2.2/userdata-16g.img
# Android-UserData = Android4.2.2/userdata.img

################### Linux ####################
Linux-BootLoader = Superboot4412.bin
Linux-Kernel = Linux/zImage
Linux-CommandLine = root=/dev/mmcblk0p1 rootfstype=ext4 console=ttySAC0,115200 init=/linuxrc ctp=2 skipcali=y ethmac=1C:6F:65:34:51:7E
Linux-RamDisk = Linux/ramdisk-u.img
Linux-RootFs-InstallImage = Linux/rootfs_qtopia_qt4.img

注意:Superboot4412會自動根據EMMC大小來對EMMC進行更合理的分割槽,使Android下的DATA分割槽得到更大的可用空間,即就是載入不同的userdata.image檔案來實現。