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