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,这样会造成无法开机!)
下载固件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复制到指定目录下
再次点击“执行”,执行过程如下图所示:
执行完毕如下图所示:
本人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
此操作在开发板上执行。要是有网线上连有线,此步就可以跳过了。
无论是下面软件更新还是安装,都需要在线,包括下面串口调试,也需要开发板ip。(当然你可以下载好,离线安装,这就存在一个数据传输的问题了,下面详细说明数据如何传输到开发板上,方便下面继续操作,我们先给开发板连上无线网吧,你当然也可以连有线,只是我没有网线,别笑ps【一个做算法的想好好搞一把部署,竟然还要利用工作之余偷偷摸摸的买板子瞎折腾,实则不易,工作或者学习有条件的同学们,还是好好珍惜可以瞎折腾的时光吧,这说的都题外话了,言归正传吧】)
一般有以下几个步骤:
连接开发板,并登录系统
开启networkmanager服务
查看无线网卡的名称
使用iw命令搜索当前可用的WiFi列表(如果知道可以跳过)
使用nmcli命令连接wifi (需要wifi是2.4G频段的,并且加密方式为AES)
验证是否连接上(可选)
查看WIFI对应的IP地址(可选,为后续使用secureCRT连接做准备)
步骤如下:
,如下图所示:
开机上电之后的显示器的界面如下:
输入用户名与密码:
用户名:toybrick
密码 : toybrick
终端窗口打开后,命令与ubuntu一样,如下图所示:
[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.
[toybirck@toybirck ~]$ ip addr
[toybirck@toybirck ~]$ sudo iw wlan0 scan | grep SSID
如下图所示:
命令格式为
sudo nmcli dev wifi connect [SSID] password [password]
操作如下:
[toybirck@toybirck ~]$ sudo nmcli dev wifi connect TP-LINK_AD9E03 password qif123.,
[toybirck@toybirck ~]$ sudo ping www.baidu.com
成功界面如下:
ctrl+d终止。
[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系统
一般有以下几个步骤: