升級固件
前言
本文介紹了如何將主機上的固件文件,通過雙公頭USB數據線,燒錄到開發板的閃存中。 升級時,需要根據主機操作系統和固件類型來選擇合適的升級方式。
準備工作
AIO-3128C 開發板
固件
雙公頭USB數據線
固件文件一般有兩種:
單個統一固件 update.img, 將啟動加載器、參數和所有分區鏡像都打包到一起,用于固件發布。
多個分區鏡像,如 kernel.img, boot.img, recovery.img 等,在開發階段生成。
這里可以找到已編譯好的統一固件,下載后解壓。也可以參考編譯固件的說明自行編譯。 主機操作系統支持:
Windows XP (32/64位)
Windows 7 (32/64位)
Windows 8 (32/64位)
Linux (32/64位)
Windows
之前燒寫 RK 的固件,需要用到以下兩種工具:
量產工具 RKBatchTool,用于燒寫統一固件(update.img)
開發者工具 RKDevelopTool,可單獨燒寫分區固件
后來 RK 發布了 AndroidTool 工具,在 RKDevelopTool 的基礎上增加了統一固件(update.img)的燒寫支持,因此現在僅需要這個工具即可。
使用燒寫工具前需要安裝 RK USB 驅動。如果驅動已經安裝好,可以跳過這步。
安裝 RK USB 驅動
下載 Release_DriverAssistant.zip ,解壓,然后運行里面的 DriverInstall.exe 。為了所有設備都使用更新的驅動,請先選擇”驅動卸載”,然后再選擇”驅動安裝”。
連接設備
有兩種方法可以使設備進入升級模式。一種方法是設備先斷開電源適配器和雙公頭USB數據線的連接:
雙公頭USB數據線的一端連接主機。
按住設備上的 RECOVERY (恢復)鍵并保持。
雙公頭USB數據線的另一端連接設備。
大約兩秒鐘后,松開 RECOVERY 鍵。
另一種方法,無需斷開電源適配器和雙公頭USB數據線的連接:
用雙公頭USB數據線連接好設備和主機。
按住設備上的 RECOVERY (恢復)鍵并保持。
短按一下 RESET(復位)鍵。
大約兩秒鐘后,松開 RECOVERY 鍵。
如圖(紅色方框)RESET(復位)鍵和RECOVERY 鍵位置:
燒錄固件時應該使用雙公頭USB數據線,連接接口如圖所示:
主機應該會提示發現新硬件并配置驅動。打開設備管理器,會見到新設備”Rockusb Device” 出現,如下圖。如果沒有,則需要返回上一步重新安裝驅動。
燒寫固件
下載 AndroidTool,解壓,運行 AndroidTool_Release_v2.35 目錄里面的 AndroidTool.exe(注意,如果是 Windows 7/8,需要按鼠標右鍵,選擇以管理員身份運行),如下圖:
燒寫統一固件 update.img
燒寫統一固件 update.img 的步驟如下:
切換至”升級固件”頁。
按”固件”按鈕,打開要升級的固件文件。升級工具會顯示詳細的固件信息。
按”升級”按鈕開始升級。
如果升級失敗,可以嘗試先按”擦除Flash”按鈕來擦除 Flash,然后再升級。
注意:如果你燒寫的固件laoder版本與原來的機器的不一致,請在升級固件前先執行”擦除Flash”。
燒寫分區映像
燒寫分區映像的步驟如下:
切換至”下載鏡像”頁。
勾選需要燒錄的分區,可以多選。
確保映像文件的路徑正確,需要的話,點路徑右邊的空白表格單元格來重新選擇。
點擊”執行”按鈕開始升級,升級結束后設備會自動重啟。
Linux
RK 提供了一個 Linux 下的命令行工具 upgrade_tool,支持統一固件 update.img 和分區鏡像的燒寫。
開源工具則有兩個選擇:
rkflashtool https://github.com/Galland/rkflashtool_rk3066
rkflashkit https://github.com/linuxerwang/rkflashkit
它們都僅支持分區映像燒寫,不支持統一固件。rkflashtool 是命令行工具,rkflashkit 有圖形界面,后加了命令行支持,更是好用。以下僅對 rkflashkit 做介紹。
Linux 下無須安裝設備驅動,參照 Windows 章節連接設備則可。
upgrade_tool
下載 Linux_Upgrade_Tool, 并按以下方法安裝到系統中,方便調用:
unzip Linux_Upgrade_Tool_v1.21.zip cd Linux_UpgradeTool_v1.21 sudo mv upgrade_tool /usr/local/bin sudo chown root:root /usr/local/bin/upgrade_tool
燒寫統一固件 update.img:
sudo upgrade_tool uf update.img
燒寫分區鏡像:
sudo upgrade_tool di -b /path/to/boot.img sudo upgrade_tool di -k /path/to/kernel.img sudo upgrade_tool di -s /path/to/system.img sudo upgrade_tool di -r /path/to/recovery.img sudo upgrade_tool di -m /path/to/misc.img sudo upgrade_tool di resource /path/to/resource.img sudo upgrade_tool di -p paramater #燒寫 parameter sudo upgrade_tool ul bootloader.bin # 燒寫 bootloader
如果因 flash 問題導致升級時出錯,可以嘗試低級格式化、擦除 nand flash:
sudo upgrade_tool lf # 低級格式化 sudo upgrade_tool ef # 擦除
rkflashkit
安裝:
sudo apt-get install build-essential fakeroot git clone https://github.com/linuxerwang/rkflashkit cd rkflashkit ./waf debian sudo apt-get install python-gtk2 sudo dpkg -i rkflashkit_0.1.4_all.deb
圖形界面:
sudo rkflashkit
命令行:
$ rkflashkit --help Usage: [args] [ [args]...] part List partition flash @ Flash partition with image file cmp @ Compare partition with image file backup @ Backup partition to image file erase @ Erase partition reboot Reboot device For example, flash device with boot.img and kernel.img, then reboot: sudo rkflashkit flash @boot boot.img @kernel.img kernel.img reboot
幫助信息里有使用示例,可以看出,一條命令就可以燒寫多個映像文件并重啟設備,對需要經常編譯和燒寫內核的開發者來說,是一大福音。
-
嵌入式主板
+關注
關注
7文章
6086瀏覽量
35531 -
安卓
+關注
關注
5文章
2136瀏覽量
57475 -
Firefly
+關注
關注
2文章
538瀏覽量
7091
發布評論請先 登錄
相關推薦
評論