瑞芯微 TB-RK3399Pro -- 開發板環境

2020-10-11 11:00:21

本人開發環境

PC:ubuntu18.04LST
開發板:TB-RK3399proD-Debian10(推薦此係統,熟悉ubuntu的人選擇debian算是沒障礙,原因後續說吧)

開發環境搭建
系統、韌體:採用Debian10系統(韌體v1.5測試通過)
主要是參照前面寫的環境安裝內容:
(1)PC-Ubuntu 環境安裝、 keras 2.2.4 +tensorflow-gpu 1.x 安裝
(2)在PC-UBUNTU1804 or > version, 安裝rknn虛擬環境,模擬rknn實現基本模型的轉化、推理、執行
(3)rk3399pro板子上刷機(fedora28 -> debian10)雙系統
(如果linux系統是fedora 28,和常用的ubuntu有點類似,只不過包安裝的命令由apt-get 換成了dnf。debian10和ubuntu安裝命令是一樣的)
提示:RK3399PRO的這些特定運算的硬體(注意,CPU,GPU,VPG,RGA,NPU,PCI-Ex4硬體單元皆是獨立運作的,也就是說同一時間他們都可以做獨立的任務,相互不干擾不等待,考驗同學們多執行緒編碼的時候到了),大家可以提前學習一下,本人在學習記錄《網路通訊與伺服器》部署也用到多執行緒,部落格也會時刻更新,也會不斷更新完善已經寫好的部落格,這些知識點是通用的。

一、開機

在這裡插入圖片描述

二、燒錄韌體(刷機)

在這裡插入圖片描述
由於本人購買的是4GB+2GB記憶體,也便於以後可能研究一下Android系統,所以安裝了雙系統。
window主機燒寫韌體和linux主機燒寫韌體選其一就行,此處我兩種方式都寫了,本人使用的window主機燒寫韌體。此板子支援Android和Linux雙系統,支援雙系統啟動和一鍵切換功能。
燒寫前千萬別去擦除Flash,這樣會造成無法開機!

Window主機燒寫韌體

下載韌體TB-RK3399ProD韌體和燒寫工具window系統燒寫工具, linux系統燒寫工具
1)安裝Windows PC端USB驅動(首次燒寫執行),支援xp,win7_32,win7_64,win8_32,win8_64,win10作業系統。本人使用window10系統
2)雙擊DriverAssitant_v4.7\ DriverInstall.exe開啟安裝程式,點選「驅動安裝」按提示安裝驅動即可,
在這裡插入圖片描述
安裝介面如下所示:
在這裡插入圖片描述
3)Type-C線連線主機端的USB介面和TB-RK3399Pro開發板的Type-C介面,燒寫工具通過該介面燒寫韌體。
在這裡插入圖片描述

4)雙擊AndroidTool_Release_v2.64\AndroidTool.exe啟動燒寫工具,單擊右鍵,匯入config_dual 設定,此設定為雙系統設定。
在這裡插入圖片描述
工具介面如下:
在這裡插入圖片描述
在這裡插入圖片描述
img目錄檔案如下:

若使用者只想燒單系統,可以參考步驟7和步驟8匯入對應config 組態檔(在AndroidTool_Release_v2.64根目錄下)。

5)一手長按TB-RK3399Pro開發板上recovery按鍵,另一手再按reset按鍵約1秒鬆開,系統將進入Loader模式,最後鬆開recovery按鍵;點選「執行」按鈕開始燒寫,(注意操作:開始刷機處於關機狀態,長按著recover(不要鬆手),大約10s;然後同時按下power,再一塊鬆手。此時可能才進入loader模式),如下所示;
在這裡插入圖片描述
若使用者修改了U-Boot程式碼導致無法進入Loader模式,使用者可以長按TB-RK3399Pro開發板上maskrom按鍵,再按reset鍵,系統將進入MASKROM模式,點選「執行」按鈕開始燒寫。
點選「執行」之後報錯如下:
在這裡插入圖片描述
在這裡插入圖片描述
將下圖檔案中的rootfs.img複製到指定目錄下
在這裡插入圖片描述
再次點選「執行」,執行過程如下圖所示:
在這裡插入圖片描述
執行完畢如下圖所示:
在這裡插入圖片描述

Linux主機燒寫韌體

本人PC使用ubuntu1804LTS,刷機工具linuxTool-v1.0
1)、Type-C線連線主機端的USB介面和TB-RK3399Pro開發板的Type-C介面。
說明:TB-RK3399Pro的Linux系統也可以作為開發主機給其他開發板燒寫韌體.
2)、長按TB-RK3399Pro開發板上recovery按鍵後重新啟動機器,進入Loader模式。
3)、下載系統韌體並解壓,將韌體拷貝到linuxTool-v1.0/images目錄下。最終結果如下:
在這裡插入圖片描述
4)執行如下命令燒寫韌體:
燒錄雙系統
a) 燒寫所有韌體:

sudo ./flash.py -d all

b) 燒寫uboot.img和trust.img:

sudo ./flash.py -d uboot

c) 燒寫system.img:

sudo ./flash.py -d system

d) 燒寫boot.img和boot_linux.img:

sudo ./flash.py -d boot

e) 燒寫rootfs.img:

sudo ./flash.py -d rootfs

三、開發板連wifi

此操作在開發板上執行。要是有網線上連有線,此步就可以跳過了。
無論是下面軟體更新還是安裝,都需要線上,包括下面串列埠偵錯,也需要開發板ip。(當然你可以下載好,離線安裝,這就存在一個資料傳輸的問題了,下面詳細說明資料如何傳輸到開發板上,方便下面繼續操作,我們先給開發板連上無線網咖,你當然也可以連有線,只是我沒有網線,別笑ps【一個做演演算法的想好好搞一把部署,竟然還要利用工作之餘偷偷摸摸的買板子瞎折騰,實則不易,工作或者學習有條件的同學們,還是好好珍惜可以瞎折騰的時光吧,這說的都題外話了,言歸正傳吧】)
一般有以下幾個步驟:
連線開發板,並登入系統
開啟networkmanager服務
檢視無線網路卡的名稱
使用iw命令搜尋當前可用的WiFi列表(如果知道可以跳過)
使用nmcli命令連線wifi (需要wifi是2.4G頻段的,並且加密方式為AES)
驗證是否連線上(可選)
檢視WIFI對應的IP地址(可選,為後續使用secureCRT連線做準備)

步驟如下:

  1. 將HDMI線連線顯示器與開發板,通過USB口連線鍵盤/滑鼠,電源線插上就不用說了吧。介面接法

,如下圖所示:
在這裡插入圖片描述
開機上電之後的顯示器的介面如下:
在這裡插入圖片描述
輸入使用者名稱與密碼:
使用者名稱:toybrick
密碼 : toybrick

  1. 開啟桌面左下角黑色桌上型電腦顯示器圖示,即開啟終端視窗

在這裡插入圖片描述
終端視窗開啟後,命令與ubuntu一樣,如下圖所示:在這裡插入圖片描述

  1. 開啟networkmanager服務
[toybirck@toybirck ~]$ sudo service network-manager start

會提示
Redirecting to /bin/systemctl start network-maneger.service.
Failed to start network-maneger. service: Unit network-maneger.service not found.

  1. 檢視無線網路卡的名稱,一般為wlan0
[toybirck@toybirck ~]$ ip addr

在這裡插入圖片描述

  1. 搜尋當前可用的WiFi
[toybirck@toybirck ~]$ sudo iw wlan0 scan | grep SSID

如下圖所示:
在這裡插入圖片描述

  1. 連線wifi

命令格式為
sudo nmcli dev wifi connect [SSID] password [password]
操作如下:

[toybirck@toybirck ~]$ sudo nmcli dev wifi connect TP-LINK_AD9E03 password qif123.,

如下圖所示:
在這裡插入圖片描述

  1. 驗證網路是否連上
[toybirck@toybirck ~]$ sudo ping www.baidu.com

成功介面如下:
在這裡插入圖片描述
ctrl+d終止。

  1. 檢視連線wifi後開發板對應的ip地址
[toybirck@toybirck ~]$ ip address

通過ip address命令,可以檢視p2p0無線網路卡對應的資訊,如圖所示,ip地址為:192.168.31.193
在這裡插入圖片描述

四、開發板系統軟體安裝和更新

連上網了,那麼就開始安裝系統軟體和更新吧,此操作依舊在開發板上執行。
系統軟體安裝和更新(必做工作):官方提供的debian10韌體燒錄好後,自帶的是rknn–toolkit-1.2.0,可以通過pip和apt的更新命令將RKNN的三個套件更新到1.3.0(rknn_toolkit, rknn_api, npu_drv)具體情況如下(我是在rk3399Pro板上,即執行TB-RK3399pro開發板)

五、串列埠偵錯

本人安裝的是SecureCRT串列埠工具,window10系統
一般有以下幾個步驟:

  • 安裝串列埠偵錯工具(本人使用的是SecureCRT串列埠工具)
  • 找到開發板串列埠標識
  • 發起串列埠偵錯連線命令
  • 輸入使用者名稱和密碼進行登入(使用者名稱:toybrick 密碼:toybrick)