iTOP-4412 開(kāi)發(fā)板,在使用自帶 uboot 燒寫文件系統(tǒng)的時(shí)候,如果文件系統(tǒng)大于 300M,會(huì)出現(xiàn)無(wú)法燒寫的情況。我們可以通過(guò)分段燒寫的方式來(lái)燒寫大文件系統(tǒng),uboot 源 碼和鏡像默認(rèn)已經(jīng)支持這個(gè)功能。 本文檔以 Qt 為例,Android 系統(tǒng)和根文件系統(tǒng)也是可以采用分段燒寫的方式。 1 fastboot 工具的更新 首先需要用高版本的 fastboot 工具,和文檔打包在一起的“fastboot.zip”壓縮包是高 版本 fastboot,使用這個(gè) fastboot 工具替換 4412 默認(rèn)的燒寫工具。 解壓高版本的 fastboot 壓縮包,打開(kāi)之后,使用命令“fastboot.ext -help”,如下圖所 示。 ![]() 如下圖所示,可以看到有-S 參數(shù),表明支持分段燒寫功能,如下圖所示,這個(gè)功能老版 本的 fastboot 是沒(méi)有的。 ![]() 2 編譯和燒寫命令 如下圖所示,作者將 Qt 文件系統(tǒng)中放了幾個(gè)重復(fù)的大文件,確保壓縮包大于 300M,如 下圖所示。 ![]() 未打包的 root 文件為 420M。 ![]() 如果文件太大,編譯打包命令也要修改下,默認(rèn)的打包命令是“make_ext4fs -s -l 314572800 -a root -L linux system.img root”。 注意上面的 314572800,314572800=1024*1024*300,也就是 300M,現(xiàn)在是 420M,肯定打包不了。 我們將命令修改為能夠打包 900M 的,943718400=1024*1024*900 “make_ext4fs -s -l 943718400 -a root -L linux system.img root”。 如下圖所示,使用 900M 的命令編譯通過(guò)。 ![]() 一般情況下,900M 的文件系統(tǒng)已經(jīng)很大了,如果需要更大的,用戶可以自己修改這個(gè)參 數(shù)。 接著介紹燒寫,在燒寫前,介紹下分區(qū)參數(shù),如果文件系統(tǒng)太大(例如大于 1G),那么 分區(qū)的時(shí)候也要修改下,如下圖所示,進(jìn)入 uboot 模式,使用命令“fdisk -c 0 2048 300 300”,將文件系統(tǒng)分區(qū)為 2G。 ![]() 接著用戶執(zhí)行分區(qū)格式化命令。 fatformat mmc 0:1 ext3format mmc 0:2 ext3format mmc 0:3 ext3format mmc 0:4 最后我們測(cè)試下燒寫,如下圖所示,作者要燒寫的 system.img 大于 300M。 ![]() 打開(kāi) cmd.exe,如下圖所示,使用命令“fastboot.exe flash system system.img -S 200M”,分段燒寫,每次燒寫 200M 的二進(jìn)制文件。 ![]() 如上圖所示,可以看出它分為多段來(lái)燒寫。 燒寫完成之后,重啟開(kāi)發(fā)板,進(jìn)入文件系統(tǒng),可以正常運(yùn)行,燒寫大文件完成,如下圖所 示。 ![]() |