1. 程式人生 > >iTop-4412刷機方式詳解(2)

iTop-4412刷機方式詳解(2)

2.Android 4.0.3 的燒寫(USB 燒寫到 eMMC)

2.1 準備工作

1)硬體準備:
開發板、 電源、 串列埠線、 MicroUSB線

2)軟體及驅動準備:

ADB驅動、 串列埠驅動、 SecureCRT

3)安裝映象(壓縮包):

u-boot-iTOP-4412.bin(U-boot, 通用載入程式)
zImage(kernel, 核心) 

ramdisk-uboot.img 和 system.img(rootfs, 根檔案系統)

2.2 燒寫過程

1)連線電源、 串列埠線 和 OTG 線

2)開啟SecureCRT, 連線開發板

3)開啟開發板電源, 進入 uboot 載入程式

4)給 eMMC 建立分割槽並格式化

$fdisk -c 0


按照預設方式給 eMMC 分割槽, 可以分為四個區: 使用者應用區、 系統區、 使用者資料去區、 快取區。

fdisk 的 Usage:
    fdisk <-p> <device_num>
    fdisk <-c> <device_num> [<sys. part size(MB)> <user part size> <cache part size>]
-p 代表檢視操作, -c代表分割槽操作

device_num = 0 代表 eMMC; device_num = 1 代表 TF / SD 卡

不加引數時按照預設方式進行分割槽; 加引數時按照引數大小對儲存器後三個區進行分割槽, 例如:

$fdisk -c 0 300 300 300


我們可以根據實際需求更改分割槽大小

b)格式化 Fat 檔案系統
$fatformat mmc 0:1

c)格式化 Sys 分割槽

$ext3format mmc 0:2

d)格式化 Data 分割槽

$ext3format mmc 0:3

e)格式化 Cache 分割槽

$ext3format mmc 0:4

5)連線主機

在 SecureCRT 介面輸入:
$fastboot

這時候 SecureCRT 應該不能動了, 切到 windows 下的 cmd。 如果正常連線的話, 輸入 fastboot 應該會有音效,裝置管理器也可以看到相應的驅動。 不正常的話, 重新安裝一下驅動。 我就出現了在 Android 下驅動正常, fastboot 連線主機時出現「未知裝置Android 1.0」。後來用了手機助手比如豌豆莢後才安裝正常。

6)開啟 fastboot 工具
如何你設定了環境變數的話, adb 和 fastboot 命令應該是可以在 cmd 下直接呼叫的, 沒有設定的話也可以到platform-tools 目錄下開啟 cmd.exe。

7)燒寫 U-boot (此步驟可跳過)

8)開啟 fastboot 工具

如何你設定了環境變數的話, adb 和 fastboot 命令應該是可以在 cmd 下直接呼叫的, 沒有設定的話也可以到platform-tools 目錄下開啟 cmd.exe。

9)燒寫U-boot (此步驟可跳過)

$fastboot flash bootloader u-boot-iTOP-4412.bin
注:最後一個是檔名,如果不在當前檔案路徑的話應該輸入檔案的全路徑。

使用 USB 燒寫時我們需要通過 U-boot 來進行引導, 沒有 U-boot 是根本無法進行燒寫的。 所以一般使用 USB 燒寫的情況下只燒寫核心和檔案系統。 只有在 U-boot損壞的情況下, 我們會首先進行 U-boot 燒寫, 就是我們所說的出廠燒寫。

10)燒寫kernel

$fastboot flash kernel zImage

11)燒寫rootfs ,輸入命令

$fastboot flash ramdisk ramdisk-uboot.img
$fastboot flash system system.img

12)輸入擦除命令

$fastboot -w

13)輸入重啟命令

$fastboot reboot

重啟成功就可以使用燒錄的安卓系統了。

3.Android 4.0.3 的燒寫(TF 卡燒寫到 eMMC)

3.1 準備工作

1)硬體準備:
開發板、 電源、 串列埠線、 TF 卡

2)軟體及驅動準備:

ADB驅動、 串列埠驅動、 SecureCRT

3)安裝映象(壓縮包):

u-boot-iTOP-4412.bin(uboot, 通用載入程式), iTop4412_uboot_20151119.tar.gz
zImage(kernel, 核心) 

ramdisk-uboot.img 和 system.img(rootfs, 根檔案系統)

3.2 燒寫過程

1)將 TF 卡接到主機上, 在 TF  卡根目錄下建立 sdupdate 目錄, 拷貝所有的需要映象檔案(可以不拷貝U-boot)到該目錄下。再將 TF 卡重新接到開發板上。

2)連線電源、 串列埠線、 往開發板中插入 TF 卡, 使用 eMMC 方式啟動

3)對 eMMC 進行分割槽格式化(注意不是對 TF 卡進行分割槽!!!),參照上面的分割槽操作,這裡不再贅述

有些朋友可能會有疑問,如果 eMMC 中已經事先燒有作業系統, 不進行分割槽格式化, 直接進行覆蓋安裝可行否? 實際上是可行的, 燒寫過程實際上就是對原有的 BLOCK 寫入資料, 寫入過程實際上就是覆蓋原有的資料。 但是為了保險起見, 最好將原有的 eMMC 格式化, 以保證燒寫能夠順利進行。

注: 4)-5)步可以直接使用下列命令代替(映象必須都在當前資料夾下)

$sdfuse flashall

4)燒寫 U-boot, 輸入命令(實際上這裡沒有完全可以跳過)

$sdfuse flash bootloader u-boot-iTOP-4412.bin

5)燒寫 kernel, 輸入命令:

$sdfuse flash kernel zImage

6)燒寫 rootfs, 輸入命令:

$sdfuse flash ramdisk ramdisk-uboot.img
$sdfuse flash system system.img

7)輸入重啟命令:

$reset

本篇博文針對的都是 eMMC , 實際上系統完全可以在 TF卡中執行, 這個燒寫過程會在《iTop-4412刷機方式詳解(3)》一文中詳解

2017 年 2 月 28日 Kilento