天天看點

瑞芯微RK3399K簡單介紹及燒寫鏡像

瑞芯微RK3399K簡單介紹及燒寫鏡像

文章目錄

  • ​​瑞芯微RK3399K簡單介紹及燒寫鏡像​​
  • ​​1. 前言​​
  • ​​2. 官網及相關資料​​
  • ​​3. 燒寫固件所需軟體​​
  • ​​4. 直接燒寫單一固件步驟​​
  • ​​5. 固件檔案​​
  • ​​6. Windows下燒寫準備​​
  • ​​6.1 安裝 RK USB 驅動​​
  • ​​6.2 連接配接裝置​​
  • ​​7. 燒寫固件​​
  • ​​7.1 燒寫統一固件 update.img​​
  • ​​7.2 燒寫分區映像​​
  • ​​8. Linux下燒寫​​
  • ​​8.1 upgrade_tool​​
  • ​​8.2 燒寫分區鏡像​​
  • ​​9. 常見問題​​
  • ​​9.1 如何強行進入 MaskRom 模式​​
  • ​​9.2 燒寫失敗分析​​
  • ​​10. 最後​​

1. 前言

之前所介紹的Ubuntu18.04系統所運作的開發闆使用的瑞芯微RK3399K晶片,主要是由于瑞芯微開源了其晶片相關的Linux系統資料,支援Ubuntu(Debian)、Linux buildRoot、Android,是以使用場景非常廣,醫療、車載、機器人、智能家居、人臉識别考勤機、門禁、遊戲外設、POS機、安防機、卡拉OK機等等都可以使用,而且算是國産晶片應用推廣的一大步吧,是以公司部分項目開始使用的該晶片及系統方案。

2. 官網及相關資料

這個是GitHub位址:

​​https://github.com/rockchip-linux​​

這個是官網:

​​https://www.rock-chips.com/​​

資料較多的Wiki:

​​https://wiki.t-firefly.com/zh_CN/Firefly-RK3399/index.html​​

3. 燒寫固件所需軟體

可參考這裡:

​​https://wiki.t-firefly.com/zh_CN/Firefly-RK3399/03-upgrade_firmware.html​​

進行下載下傳。

AndroidTool_Release_v2.6.1

DriverAssitant_v4.5

版本可能有變動,但一個是驅動工具,一個是固件燒寫工具,通過usb/type-C或者雙usb頭的線直接進行燒寫(這類較大的系統一般都不通過序列槽直接燒寫,速度會比較慢)。

4. 直接燒寫單一固件步驟

如果有完整的單一固件檔案可以直接更新固件,不需要單獨燒寫部分分區,是以步驟也會相對簡單,直接​

​搜尋找到裝置->進入更新模式->載入固件->一鍵更新​

​即可。

瑞芯微RK3399K簡單介紹及燒寫鏡像

5. 固件檔案

固件檔案一般有兩種:

  • 單個統一固件

    統一固件是由分區表、bootloader、uboot、kernel、system等所有檔案打包合并成的單個檔案。Firefly正式釋出的固件都是采用統一固件格式,更新統一固件将會更新主機闆上所有分區的資料和分區表,并且擦除主機闆上所有資料。

  • 多個分區鏡像

    即各個功能獨立的檔案,如分區表、bootloader、kernel等,在開發階段生成。獨立分區鏡像可以隻更新指定的分區,而保持其它分區資料不被破壞,在開發過程中會很友善調試。

通過統一固件解包/打包工具,可以把統一固件解包為多個分區鏡像,也可以将多個分區鏡像合并為一個統一固件。

6. Windows下燒寫準備

  • 工具:​​Androidtool_xxx(版本号)​​

注意:不同固件使用的工具版本可能不同,請根據​​《使用USB線燒寫須知(重要)》​​下載下傳對應的版本

6.1 安裝 RK USB 驅動

下載下傳 ​​Release_DriverAssistant.zip​​​,解壓,然後運作裡面的 DriverInstall.exe 。為了所有裝置都使用更新的驅動,請先選擇​

​驅動解除安裝​

​​,然後再選擇​

​驅動安裝​

​。

瑞芯微RK3399K簡單介紹及燒寫鏡像

6.2 連接配接裝置

如下是我們目前測試的闆子,已經通過結構和硬體工程師針對需求做了整體設計調整,直接使用的三個usb口,沒有type-c等,顯示接口使用的HDMI,主要是友善大屏和人臉機以及機器人開發使用,增加了USB3.0的接口,更像是一塊PC闆,可以接滑鼠、鍵盤和高清顯示器,闆子上沒有辨別recovery和reset按鍵,我這裡做下辨別,一般來說需要使裝置進入更新模式需要這兩個按鍵,是以你不知道的時候需要問硬體工程師或者自己看圖紙。

瑞芯微RK3399K簡單介紹及燒寫鏡像

裝置進入更新模式的方式如下(推薦第二種,更友善一些,像我們是使用雙USB頭,是以沒有Type-C資料線,這個不影響,在燒寫前需要看一下你們的闆子是雙USB線還是Type-C,沒有特殊需求大多是Type-C,比較通用):

  • 一種方法是裝置先斷開電源擴充卡和 Type-C 資料線的連接配接:(如果是雙usb口的使用對應連接配接線即可)
  • USB 一端連接配接主機,Type-C 一端連接配接開發闆 Type-C 母口
  • 按住裝置上的 RECOVERY (恢複)鍵并保持
  • 接上電源
  • 大約兩秒鐘後,松開 RECOVERY 鍵
  • 另一種方法,無需斷開電源擴充卡和 Type-C 資料線的連接配接:
  • USB 一端連接配接主機,Type-C 一端連接配接開發闆 Type-C 母口
  • 按住裝置上的 RECOVERY (恢複)鍵并保持
  • 短按一下 RESET(複位)鍵
  • 大約兩秒鐘後,松開 RECOVERY 鍵

主機應該會提示發現新硬體并配置驅動。打開裝置管理器,會見到新裝置 ​

​Rockusb Device​

​ 出現,如下圖。如果沒有,則需要傳回上一步重新安裝驅動。

瑞芯微RK3399K簡單介紹及燒寫鏡像

7. 燒寫固件

下載下傳 ​​AndroidTool​​(若系統是 Android8.1 則需要 2.54 以上版本),解壓,運作 ​

​AndroidTool_Release_v2.38​

​​ 目錄裡面的 ​

​AndroidTool.exe​

​(注意,如果是 Windows 7/8,需要按滑鼠右鍵,選擇以管理者身份運作),如下圖:

瑞芯微RK3399K簡單介紹及燒寫鏡像

7.1 燒寫統一固件 update.img

燒寫統一固件 update.img 的步驟如下:

  1. 切換至​

    ​更新固件​

    ​頁。
  2. 按​

    ​固件​

    ​按鈕,打開要更新的固件檔案。更新工具會顯示詳細的固件資訊。
  3. 按​

    ​更新​

    ​按鈕開始更新。
  4. 如果更新失敗,可以嘗試先按’擦除 Flash’按鈕來擦除 Flash,然後再更新。一定要根據​​《使用USB線燒寫須知(重要)》​​進行擦除燒寫

注意:如果你燒寫的固件 laoder 版本與原來的機器的不一緻,請在更新固件前先執行’擦除 Flash’。

瑞芯微RK3399K簡單介紹及燒寫鏡像

漢化版的:

瑞芯微RK3399K簡單介紹及燒寫鏡像

7.2 燒寫分區映像

每個固件的分區可能不相同,請注意以下兩點:

  1. 使用​

    ​Androidtool_2.38​

    ​​ 燒寫​

    ​ubuntu(MBR)​

    ​​ 和​

    ​Android7.1​

    ​ 固件時使用預設配置即可;
  2. 使用​

    ​Androidtool_2.58​

    ​​ 燒寫​

    ​ubuntu(GPT)​

    ​​ 使用預設配置即可,燒寫​

    ​Android8.1​

    ​​ 固件請先執行以下操作: 切換至​

    ​下載下傳鏡像頁面​

    ​​; 右鍵點選表格,選擇​

    ​導入配置​

    ​; 選擇rk3399-Android81.cfg
  3. 使用​

    ​Androidtool_2.71​

    ​​燒寫​

    ​Android10​

    ​​或​

    ​Android9​

    ​固件時使用預設配置即可;

燒寫分區映像的步驟如下:

  1. 切換至​

    ​下載下傳鏡像​

    ​頁。
  2. 勾選需要燒錄的分區,可以多選。
  3. 確定映像檔案的路徑正确,需要的話,點路徑右邊的空白表格單元格來重新選擇。
  4. 點選​

    ​執行​

    ​按鈕開始更新,更新結束後裝置會自動重新開機。
瑞芯微RK3399K簡單介紹及燒寫鏡像

8. Linux下燒寫

Linux 下無須安裝裝置驅動,參照 Windows 章節連接配接裝置則可。

  • 工具:​​Linux_Upgrade_Tool​​

注意:不同固件使用的工具版本可能不同,請根據[燒寫須知]下載下傳對應的版本

8.1 upgrade_tool

下載下傳 ​​Linux_Upgrade_Tool​​ (系統是 Android8.1則需要 Linux_Upgrde_Tool_for_android8.1), 并按以下方法安裝到系統中,友善調用:

unzip Linux_Upgrade_Tool_xxxx.zip
cd Linux_UpgradeTool_xxxx
sudo mv upgrade_tool /usr/local/bin
sudo chown root:root /usr/local/bin/upgrade_tool
sudo chmod      

燒寫統一固件 update.img:

sudo      

如果更新失敗,可以嘗試先擦除後再更新。一定要根據​​《使用USB線燒寫須知(重要)》​​的表格進行擦除燒寫

# 擦除 flash 使用 ef 參數需要指定 loader 檔案或者對應的 update.img
sudo upgrade_tool ef update.img   #update.img :你需要燒寫的 Ubuntu 固件
# 重新燒寫
sudo      

8.2 燒寫分區鏡像

Android7.1、Android8.1使用以下方式:

sudo upgrade_tool di -b boot.img
sudo upgrade_tool di -k kernel.img
sudo upgrade_tool di -s system.img
sudo upgrade_tool di -r recovery.img
sudo upgrade_tool di -m misc.img
sudo upgrade_tool di -re resource.img
sudo upgrade_tool di -p paramater  
sudo      

Android9.0、Android10.0使用以下方式:

sudo upgrade_tool di -b boot.img
sudo upgrade_tool di -dtbo dtbo.img  
sudo upgrade_tool di -misc misc.img
sudo upgrade_tool di -parameter parameter.txt
sudo upgrade_tool di -r recovery.img
sudo upgrade_tool di -super super.img
sudo upgrade_tool di -trust trust.img
sudo upgrade_tool di -uboot uboot.img
sudo      

Ubuntu(GPT)使用以下方式:

sudo upgrade_tool ul $LOADER
sudo upgrade_tool di -p $PARAMETER
sudo upgrade_tool di -uboot $UBOOT
sudo upgrade_tool di -trust $TRUST
sudo upgrade_tool di -boot $BOOT
sudo upgrade_tool di -recovery $RECOVERY
sudo upgrade_tool di -misc $MISC
sudo upgrade_tool di -oem $OEM
sudo upgrade_tool di -userdata $USERDATA
sudo upgrade_tool di -rootfs $ROOTFS      

如果因 flash 問題導緻更新時出錯,可以嘗試低級格式化、擦除 nand flash:

# 低級格式化
sudo upgrade_tool lf update.img
 # 擦除
sudo      

9. 常見問題

9.1 如何強行進入 MaskRom 模式

如果闆子進入不了 Loader 模式,此時可以嘗試強行進入 MaskRom 模式。操作方法見​​《MaskRom模式》​​。

9.2 燒寫失敗分析

如果燒寫過程中出現Download Boot Fail, 或者燒寫過程中出錯,如下圖所示,通常是由于使用的USB線連接配接不良、劣質線材,或者電腦USB口驅動能力不足導緻的,請更換USB線或者電腦USB端口排查。

瑞芯微RK3399K簡單介紹及燒寫鏡像

10. 最後