1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 瑞芯微 TB-RK3399Pro -- 开发板环境

瑞芯微 TB-RK3399Pro -- 开发板环境

时间:2019-05-27 23:05:28

相关推荐

瑞芯微 TB-RK3399Pro -- 开发板环境

前言

本系列博文,主要以TB-RK3399ProD开发为例,来记录RK3399pro系列的开发,本博文主要来记录开发板环境的攻略,记录下才坑过程。

本人开发环境

PC:ubuntu18.04LST

开发板:TB-RK3399proD-Debian10(推荐此系统,熟悉ubuntu的人选择debian算是没障碍,原因后续说吧)

开发环境搭建

系统、固件:采用Debian10系统(固件v1.7测试通过)

主要是参照前面写的环境安装内容:

(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 配置,此配置为双系统配置。

工具界面如下:

导入配置后,序号7的reconvery.img的目录是错误的,需要需改一下(最好每一个都检查一下)

序号12的rootfs的路径名称注意一下,是“debian10-toybrick-rk3399pro-lxde-V1.1.img”,而不是“rootfs.img”,由于第一次我看官网的,在使用过的过程发现是fedora28系统,并非是debian10。

img目录文件如下:

若用户只想烧单系统,导入对应config 配置文件注意一下(在AndroidTool_Release_v2.64根目录下)。

5)一手长按TB-RK3399Pro开发板上recovery按键,另一手再按reset按键约1秒松开,系统将进入Loader模式,最后松开recovery按键;点击“执行”按钮开始烧写,(注意操作:开始刷机处于关机状态,长按着recovery(不要松手),大约10s;然后同时按下power,再一块松手。点击“执行”。

若用户修改了U-Boot代码导致无法进入Loader模式,用户可以长按TB-RK3399Pro开发板上maskrom按键,再按reset键,系统将进入MASKROM模式,点击“执行”按钮开始烧写。此时可能才进入loader模式)。

界面如下所示:

执行完毕如下图所示:

如果你的开发板连上显示器的话,连开发板的显示器就会出现下面的界面,你也会发现这时才是debian10系统。

6)烧录固件成功之后,你就可以拔掉和主机相连的type-c数据线了。

三、开发板连网(wifi)

此操作在开发板上执行。

无论是下面软件更新还是安装,都需要在线,包括下面串口调试,也需要开发板ip。(当然你可以下载好,离线安装,这就存在一个数据传输的问题了,下面详细说明数据如何传输到开发板上,方便下面继续操作,我们先给开发板连上无线网吧,你当然也可以连有线,只是我没有网线,别笑ps【一个做算法的想好好搞一把部署,竟然还要利用工作之余偷偷摸摸的买板子瞎折腾,实则不易,工作或者学习有条件的同学们,还是好好珍惜可以瞎折腾的时光吧,这说的都题外话了,言归正传吧】)

步骤如下:

将HDMI线连接显示器与开发板,通过USB口连接键盘/鼠标,电源线插上就不用说了吧,上电开机。接口接法如下图所示:

开机上电之后的显示器的界面如下:

输入用户名与密码:

用户名:toybrick

密码 : toybrick

连网

此处我连接的是wifi,当然有网线的就直接插上网线吧。

点击桌面右下角两个台式显示器的网络图标,选择你的wifi,然后输入密码。

联网成功如下。

如果没有你没有找到显示器右下角“网络图标”,怎么办呢?方法总是比问题,对不对?

查看网络设备列表

nmcli dev

注意,如果列出的设备状态是 unmanaged 的,说明网络设备不受NetworkManager管理,你需要清空 /etc/network/interfaces下的网络设置,然后重启

开启wifi

nmcli r wifi on

扫描附近的 WiFi 热点

nmcli dev wifi

连接到指定的 WiFi 热点

nmcli dev wifi connect "SSID" password "PASSWORD" ifname wlan0

在连接的时候需要将 SSID和 PASSWORD 替换成实际的 WiFi名称和密码。

如: nmcli dev wifi connect “duolun” password “123” ifname wlan0

打开终端窗口

屏幕左下角菜单图标 - -> System Tools – >LXTerminal(你可以将此图标锁定到桌面,方面以后快捷使用),如下图所示:

查看无线网卡的名称,一般为wlan0(可选)

toybirck@debian10 ~$ ip addr

查看开发板的ip(可选)

toybirck@debian10 ~$ ifconfig

开发板ip为:192.168.0.104

验证网络是否连上(可选)

toybirck@debian10 ~$ sudo ping

ctrl+c终止。

四、开发板系统软件安装和更新

既然连上网类,那么就开始安装系统软件和更新吧,此操作依旧在开发板上执行。

系统软件安装和更新(必做工作):官方提供的debian10固件烧录好后,自带的是rknn–toolkit-1.3.+,可以通过pip和apt的更新命令将RKNN的三个套件更新到1.4.0(rknn_toolkit, rknn_api, npu_drv)具体情况如下(我是在rk3399Pro板上,即运行TB-RK3399pro开发板)

RKNN包含了3个基本组件:

rknn-toolkit :python程序,可用于转换模型、量化模型和推理rknn-api :c库(.h/.so),用于c/c++程序调用推理引擎npu-drv :npu驱动

1. update rknn_tooklit-1.4.0

toybirck@debian10 ~$ pip3 install --user -U rknn

2.update rknn-api-1.4.0和npu_drv

toybirck@debian10 ~$ sudo apt update --fix-missingtoybirck@debian10 ~$ sudo apt -y upgrade #(中间需要输入"Y")toybirck@debian10 ~$ sudo apt update# 开始正常的安装RKNN-Toolkit部署toybirck@debian10 ~$ sudo apt install rknn-rk3399pro

如下图所示:

关于toybrick系列debian10系统软件包升级说明:

由于toybrick增加一个源,请大家执行如下步骤升级:

更新源:sudo apt update --fix-missing升级软件包:sudo apt -y upgrade

注意:升级过去中会有提示确认是否提供/etc/apt/sources.list.d/toybrick.list,请输入"Y"再次更新源:sudo apt update

说明:上述步骤只需要执行一次即可,后续软件包升级只需要执行命令:

sudo apt update; sudo apt upgrade

3. 检查 RKNN-Toolkit 是否安装成功

toybirck@debian10 ~$ python3>>> from rknn.api import RKNN>>>

若没有任何提示,表明安装成功。键盘ctrl+D,退出python3环境。

4.安装依赖库

toybirck@debian10 ~$ sudo apt install cmake python3-scipy python3-h5py libprotobuf-dev protobuf-compiler zlib1g-dev libjpeg-dev python3-dev python3-opencv

很多人说,跑例程的时候会报一个库文件缺失的错误,并且这个错误会导致所有例程都跑不动,提示numpy libf77blas.so.3 缺失,即libf77blas.so.3:cannot open shared filed :no such file or directory,所以我们搭建开发板环境的时候,还是把这个库一并安装了吧。

toybirck@debian10 ~$ sudo apt-get install libatlas-base-dev

5. 安装深度学习框架的库

a.安装 tensorflow 1.14.0 for debian

pip3 install --user -U tensorflow==1.14.0

如果你使用pytorch的话,现在rknn也支持了pytorch了,不过只支持pytorch1.12,所以使用这个深度学习框架的朋友,也安装一下吧,还有mxnet等,也可以一起安装,如果你使用的的话。我暂且没有使用,所以就没有安装,我只安装了tensorflow,注意是tf1.x不是tf2.x,目前还不支持tf2.x。

b.安装torch(可选)

pip3 install torch==1.2.0 torchvision==0.4.0

c.安装mxnet(可选)

pip3 install mxnet==1.5.0

d.安装gluoncv(可选)

pip3 install gluoncv

注意:安装完成之后,需要重启一下生效

6. 安装蓝牙

toybirck@debian10 ~$ sudo apt-get install -y blueztoybirck@debian10 ~$ sudo apt-get install -y bluemantoybirck@debian10 ~$ sudo bluetoothctl show # 查看蓝牙信息

蓝牙地址如下图红框所示:

五、串口调试

本人安装的是SecureCRT串口工具,window10系统。此后再讲这部分,这个是在你的pc机上安装的。

一般有以下几个步骤:

安装串口调试工具(本人使用的是SecureCRT串口工具)找到开发板串口标识发起串口调试连接命令输入用户名和密码进行登录(用户名:toybrick 密码:toybrick)

六、实现个人PC电脑和开发板进行数据互传

瑞芯微RK3399Pro这个板子其实跟一般的PC机非常接近了,初始预装了Debian 10操作系统,提供2个USB2.0的接口和1个USB3.0的接口,因此可以考虑使用U盘实现数据互传。

一般有以下几个步骤

使用串口连接工具连接开发板,并登录系统插入USB使用mount命令挂载到指定目录进入挂载目录,访问usb中的文件拔出U盘前,先解除U盘挂载

1、插入usb

可以看到usb在系统中对应的路径,一般为/dev/sdx1,两个usb2.0的接口分别对应为/dev/sda1 或者 /dev/sdb1

2、使用mount命令挂载到指定目录

这里假定在用户主目录下进行操作,新建一个sdb1目录用于挂载

toybirck@debian10 ~$ mkdir sdb1 toybirck@debian10 ~$ sudo mount /dev/sdb1 sdb1

3、进入挂载目录,访问usb中的文件

toybirck@debian10 ~$ cd sdb1toybirck@debian10 ~$ ls

七、关于版本说明

(.9.13)

V1.6.0 主要说明:

支持Keras框架,并且支持TF 2.0导出的h5模型支持Pytorch 1.6.0支持ONNX 1.6.0增加模型加密功能新增更多OP支持以及Bug修复

Drv需要更新到 >= 1.5.0

V1.4.0 主要说明

增加逐层量化分析子功能;输入预处理支持多个std_value;支持从开发板导出预编译模型。优化channel_mean_value参数,改为mean_values/std_values;移除load_tensorflow接口中的mean_values和std_values;可视化完善对多输入的支持,增加对RK1806/RV1109/RV1126的支持;精度分析功能增加非归一化的余弦距离和欧式距离;修复已知bug。

V1.3.0 主要说明

从该版本开始我们建议各位切换到debian10,并且直接使用apt和pip命令进行在线更新即可(计算棒dnf update)。

(debian10发布地址:http://t.rock-/forum.php?mod=viewthread&tid=1121)rk3399prod Fedora不再支持rknn在线更新,请各位尽早切换到debian10使用。该版本主要更新了pytorch(1.2)和mxnet的模型支持该版本新增了RKNN的UI显示功能(具体请看文档)该版本解决了大部分上一版本用户报的bug,以及优化了加载时间和混合量化等功能。其他API的变动请仔细看一下文档,该版本改进较大,请务必先通读一遍文档。从该版本开始API和DRV版本号将会统一(例如1.3.0/1.3.0),如果俩个版本号大版本不一致,即不匹配。报问题时候请务必先确认API和DRV版本匹配,并使用的是rknn-toolkit最新版本 (1.3.0)

V1.2.0 主要说明

建议添加RK官方pip源安装,较为方便,开发版、PC、MAC均可使用该源下载rknn-toolkit。(新版固件会自带该源)Tensorflow for aarch64已纳入该官方pip源,可直接安装。Tensorflow 2.0 由于一些第三方库还未支持,目前rknn暂不支持tf2.0,请勿升级使用。附带的文档需要从百度网盘下载:/s/3nwnPxsXrknntoolkit和rknnapi需要版本匹配,模型如果早于rknntoolkit 1.1以前生成的需要重新生成,否则运行可能会出问题。

API: 1.2.1

DRV: 0.9.9/1.2.0

RKNN组件介绍

RKNN包含了3个基本组件

rknn-toolkit :python程序,可用于转换模型、量化模型和推理rknn-api :c库(.h/.so),用于c/c++程序调用推理引擎npu-drv :npu驱动

简介

rknn-toolkit (python)

该组件用于将各类模型转换为rknn格式模型,并包含推理、评估、调试等功能。

组件分为两部分: 转换引擎和推理引擎

支持的平台系统:(PC)windows、(PC)linux_x86_64、(开发版)linux_3399pro、(计算棒)linux_1808

其中:

a. PC - Windows/Linux_x86_64

转换引擎: 全功能

推理引擎: 仿真

b. 开发版 - linux_3399pro转换引擎: 基本功能(无法执行量化等操作)推理引擎: 全功能 (基于 rknn-api)c. 计算棒 - linux_1808不支持全功能rknn-toolkit,尽支持rknn-toolkit-lite

*. rknn-toolkit-lite (python) (1.4.0 新增该组建)

该组建尽包含推理引擎,所以依赖较少,方便直接在3399pro和1808上进行推理操作

rknn-api ©

该组件用于c/c++开发推理程序使用,包含.h头文件和.so库文件。

仅包含推理引擎。

支持的平台系统:(开发版)linux_3399pro、(开发版)android_3399pro、(计算棒)linux_1808

npu-drv

该组件为NPU的驱动程序,由开发版和产品提供的固件内提供,无需用户操作。

重要说明

升级后必须确认这三个组件版本一致,否则可能会出现不可预期的错误。(从1.3开始这三个组件版本号已经统一,用户需要保证大版本号和主版本号一致,例如都是1.3.x)板载的rknn-api/npu-drv均可通过系统的在线升级(apt/dnf等)来升级。板载的rknn-toolkit均可通过python的pip3管理程序升级PC的toolkit和api需要自行下载更新。

总结

开发板环境在开发板上执行,下文将继续更新。欢迎小伙伴们一起学习探讨。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。