輕鬆看懂 Rockchip SDK release note

有鑑於Rockchip SDK release note 主要是針對有經驗的軟件工程師所撰寫, 本文將以淺顯的說明讓沒有使用過Rockchip SDK的人或是初學者能輕鬆看懂文件內容, 文章將不會深入探討使用SDK或是編譯image時可能會遇到的問題.

 Rockchip SDK release note文件主要有以下的內容, 本文重點將放在 1 跟 2 大項, 文中 Rock Chip 將以縮寫 RK 表示.

       1. 如何取得SDK.
       2. 如何編譯EVB的 image.
       3. 如何燒錄編譯好的 image 到 EVB 上.
       4. SSH 的管理.

 如果你已經取得SDK, 這份文件在SDK 目錄下的docs下可以找到, Android 版本的SDK則是在RK_DOCS 目錄下.

 
接下來將以RK3399 Linux SDK release note為範例來說明, 檔案名稱為 RK3399_Linux_SDK_Release_V2.4.0_20200430_CN.PDF

 1. 文件抬頭, 標示, 版本, 發布日期, 文件等級.

需要注意的訊息只有發布版本以及日期, 這兩個資訊會隨著SDK 版本更新而更新, 所以可以從這兩個資訊得知SDK 的版本.

 
2. SDK 支援的 SOC 以及 OS 版本.

從上表可以得知這份SDK 是RK3399 專屬SDK, 有些SDK 會同時支援複數的SOC, 例如Android 10之後的版本, 另外就是Linux OS 的版本, Rockchip 一般 Linux SDK 會支援基本的Linux buildroot, 還有Debian 跟 Yocto. Ubuntu 的話, 因為 RK 並未取得Ubuntu授權, 所以SDK 內沒有Ubuntu, 但是RK有提供文件讓使用者自行移植Ubuntu, 需要文件的話請跟我們洽詢.

3. SDK 獲取說明.

沒有獲得Rockchip 授權的使用者, 可以從github開源網站下載, 但是開源上的資料更新速度可能會稍慢, 也可能會遇到無法下載的狀況.

有獲得Rockchip 授權的使用者可以依照文件說明, 從Rockchip 網站下載SDK, 並同步更新到最新版本, 如果想取得Rockchip 授權, 請跟我們接洽.

Rockchip 建議開發平台用64 bit Ubuntu 16.04 以上或是18.04版本.

 下載SDK只需要4個步驟.

              1. 在SSH 目錄下執行ssh-add id_rsa.rsa, 執行完後以下的指令才能順利執行.

              2. 安裝 repo,  指令如下
                  git clone ssh://git@www.rockchip.com.cn/repo/rk/tools/repo

              3. 初始化repo 倉, 指令如下, 先建立一個目錄例如RK3399 再執行以下指令, 完成後會產生一個隱藏目錄 .repo, 要注意如果從PDF 上copy 指令,
                  某些字元例如- 有可能會變成 – , 指令與指令之間的空格要保留, 換行的標記也要記得刪除, 否則會出現執行錯誤.

                  repo init --repo-url ssh://git@www.rockchip.com.cn/repo/rk/tools/repo -u ssh://git@www.rockchip.com.cn/linux/rk/platform/manifests -b linux -m
                  rk3399_linux_release.xml

              4. 執行repo sync, 從RK server 上同步下載SDK, 如果已經下載過SDK的話, 會執行同步更新, 下載時間依照不同SOC的SDK 大小不同可能需要數小時.

                  如果有授權的客戶因為網路問題無法順利自行下載SDK的話, 可以跟我們聯絡.

                  SDK 內的文件說明, Linux 版SDK主要文件都在docs底下, 建議拿到SDK 後把docs下的所有文件都先看過一遍, 了解在那些目錄各有那些文件.

 4. 軟件開發指南(如何編譯 EVB的 image)

Rockchip 有兩份文件會提到如何編譯 image, 除了本文介紹的Linux SDK release note, 另外還有Rockchip_Developer_Guide_Linux_Software_xx.pdf, 檔案名稱不一定, 不同的SOC 在文件名稱上可能會有些微差異, 但都可以在文件目錄下找到, 建議兩份文件都詳細閱讀看哪一份比較適合.

 5. 硬件開發指南(其實是EVB 的使用說明, 不是硬件desgin guide)
     Rockchip_RK3399_User_Manual_IND_EVB_V1.0_CN.pdF22

 6. SDK 工程目录介绍 (SDK 內的目錄結構說明)

 

7. SDK 編譯說明 (如何開始編譯 image)

編譯前需要安裝編譯不同 Linux 版本所需的依赖软件包, 不同編譯環境以及編譯不同OS需要的依赖软件包不同, 例如用 ubuntu16.04環境編譯Linux Buildroot, Debian 或是 Yocto 各有不同的依赖软件包. 依赖软件包的安裝指令也是要注意從 PDF copy 時要注意某些字元, 空格有沒有錯誤, 文件的換行標記要移除, 以免造成指令執行錯誤.

 下圖是編譯環境 ubuntu 16.04, 編譯Linux builtboot 所需要安裝的依赖软件包 指令, 編譯前要先確定所有程式都已經正確安裝.

 

  1. 開始編譯 U-boot, 首次編譯image 需要按照順序編譯.

          依序為U-boot, Kernel, Recovery, buildboot. 編譯U-boot指令是  ./make.sh rk3399

         要注意不同SOC SDK 的指令不同, 有些需要到U-boot 目錄下執行, 有些有腳本可以在根目錄下執行.

         編譯U-boot 會產生以下檔案.

        

  1. 編譯 Kernel 指令如下, 要注意不同EVB 版本各有不同的指令, 下面指令是 IND 板的RK3399 EVB.

          cd kernel

          make ARCH=arm64 rockchip_linux_defconfig

          make ARCH=arm64 rk3399-evb-ind-lpddr4-linux.img -j12

 

  1. 編譯 Recovery, 編譯指令如下, 需要在SDK 根目錄下執行,

           ./build.sh recovery

          如果Kernel 有變更過, 則 recovery 都需要重新編譯.

          SDK$source envsetup.sh rockchip_rk3399

           SDK$make recovery-rebuild

           SDK$./build.sh recovery

 

  1. 編譯 buildboot , 編譯指令如下, 一樣在SDK 根目錄下執行

          ./build.sh rootfs

 8. 固件的打包



指令為 ./mkfirmware.sh, 會把各分區的image copy 到rockdev 目錄, 方便管理.

 9. 自動編譯腳本

     有編譯成功過, 確認編譯環境沒有問題, 之後有修改可以改用自動腳本編譯, 節省下指令的時間. 例如指令 $./build.sh,
     會自動依序完成所有分區的編譯, 包含把各分區的image 合併成img 方便燒錄, 在腳本後加上不同參數則有不同功能,
     如只要編譯recovery, 只需要在build.sh 指令後加上recovery, $./build.sh recovery.

     要注意使用自動腳本編譯前要先選擇正確的板級文件, 板級文件代表不同的EVB的硬件配置, 可以透過 build.sh 腳本執行接換板級文件, 或是直接修改板級文件的內容                     /device/rockchip/rk3399/Boardconfig.mk

 

例如 IND 版本的EVB 板級文件的內容如下

# Target arch

export RK_ARCH=arm64

# Uboot defconfig

export RK_UBOOT_DEFCONFIG=rk3399

# Kernel defconfig

export RK_KERNEL_DEFCONFIG=rockchip_linux_defconfig

# Kernel dts

export RK_KERNEL_DTS=rk3399-evb-ind-lpddr4-linux

# boot image type

export RK_BOOT_IMG=boot.img

# kernel image path

export RK_KERNEL_IMG=kernel/arch/arm64/boot/Image

# parameter for GPT table

export RK_PARAMETER=parameter.txt

# Buildroot config

export RK_CFG_BUILDROOT=rockchip_rk3399

# Recovery config

export RK_CFG_RECOVERY=rockchip_rk3399_recovery

 
10. 刷机说明 (把Image 燒錄燒錄到EVB 上).

燒錄 image 這部分可以參考EVB 的使用說明文件, 內有更詳盡的操作說明.

編譯好的update.img 可以透過Windows 的燒錄程式, 透過EVB板子上的USB OTG 跟 PC 連接, 燒錄前先讓EVB進入 MASKROM 模式即可開始操作燒錄程式.

 

11. 系统分区说明 (說明編譯SDK 後會產生那些分區文件, 分區起始位置, 容量大小, 以及各個分區的功能).

 


12. RK3399 SDK 固件
     
編譯好的EVB image可以直接從網站下載, 下載後可以直接燒錄, 如果用戶想還原EVB 的原本的image, 可以直接下載

 

13. SSH key 說明 (客戶有透過SDK開發的需求時, 需要取得RK 授權, 可以跟我們洽詢相關事宜)

技術文檔

類型標題檔案
操作手冊Linux SDK 发布说明

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論