电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
EAIDK-310: 双系统启动,从源码构建 Tengine AI 框架
分 享
扫描二维码分享
EAIDK-310: 双系统启动,从源码构建 Tengine AI 框架
双系统
Tengine
Ubuntu
HackforFun
关注
发布时间: 2019-09-10
丨
阅读: 4377
# EAIDK-310: 双系统启动,从源码构建 Tengine AI 框架 ![Armbian](https://andyshrk.gitee.io/imgrepo/EAIDK-310/EAIDK-310-Armbian.png) ## 1、引子 EAIDK-310 是 OPEN AI LAB 基于 RK3228H 构建的 嵌入式人工智能开发套件,关于该开发平台的基础介绍,可以参考我的前一篇文章:[**EAIDK-310: AI 从这里开始**](https://www.icxbk.com/article/detail/910.html)。 该平台出厂预装了 Fedora28 操作系统,上面搭载了 OPEN AI LAB 设计的前端 AI 推理计算框架 Tengine。让极客朋友们拿到板子就能进行 AI 应用的开发。不过在交流中我们发现有部分开发者对 Fedora 这个操作系统不太习惯,他们更习惯使用 Ubuntu 或者 Debian。而且很多流行的 AI 框架对 Ubuntu 和 Debian 都提供了直接支持,比如 caffe 和 tensorfow,在 Ubuntu 和 Debian 上只需要一条命令就可以安装,在 Fedora 上要通过源码去编译,而且要解决复杂的依赖关系。 于是我以 Armbian 为基础给这块开发板构建了一个 Ubuntu 18.04,考虑到 Fedora28 毕竟是 OPEN AI LAB 官方预装的操作系统,里面集成的 Tengine 代表这 OPEN AI LAB 的权威技术参考,我也不忍心直接把这个操作系统覆盖掉,万一我的新系统有什么异常的功能,我还想切到官方的系统上,做下对比呢。所以我采用了双系统启动的方式:Ubuntu 18.04 通过烧写工具烧写到 tf 卡上,当烧写有该镜像的 TF 卡插到开发板上,开发板启动的时候会直接启动 TF 卡上的 Ubuntu 18.10,当你拔掉 TF 卡的时候,开发板会默认eMMC 中的 Fedora 启动启动。你看,你可以通过一张 TF 卡体验另外一个新系统,又保留了开发板上预置的管方系统,多好。 ## 2、镜像烧写 镜像可以通过 [百度网盘](https://pan.baidu.com/s/1LTGIr5H5Jib15sFbpXvnfQ) 下载,提取码 `9i66`,推荐用 [Etcher](https://www.balena.io/etcher/) 把镜像s烧写到 TF 卡上:把你的 TF 卡插入读卡器,然后接入电脑,启动 Etcher 软件,选择你刚刚下载的镜像,选中你的 TF 卡,点击 Flash 开始烧写。 ![write image to tf card](https://andyshrk.gitee.io/imgrepo/EAIDK-310/EAIDK-310-etcher.png) 烧写完成后,把 TF 卡插入开发板的 TF 卡插槽,上电。如果一切顺利,这时你可以从 Debug 串口的启动日志中看到开发板已经从 TF 卡上的系统中启动(仔细观察启动 log,你会发现它们和开发板上默认搭载的系统启动 log 有差别),或者接上HDMI 也可以。 ![](https://andyshrk.gitee.io/imgrepo/EAIDK-310/EAIDK-310-Armbian-login.png) 默认登录账号和密码分别是 root : 1234, 输入默认密码后,系统会提示你重新设置密码,仔细看提示操作即可。 ## 3、系统设置 ### 3.1、联网 WiFi 网络连接通过 `nmtui-connect` 命令,如果知道要连接的 AP 名称,直接 `nmtui-connect xxx` , 然后输入密码即可,这里的 xxx 是你 AP SSID 的名称。 如果不知道具体的 AP 名称,可以只输入 `nmtui-connect` 命令,然后系统会弹出一个菜单,根据菜单选择即可。 ### 3.2、串口终端设置 大家如果使用一会儿就会发现,在串口下如果敲的命令过长,默认显示不会换行,而是会回绕到行首开始显示,这个看上去很别扭,可以通过输入 `resize` 命令来设置,系统默认没有这个命令,输入后,系统会提示你安装,按照提示安装即可。 ### 3.3、安装图形库 系统默认不带图形桌面,如果想要图形桌面的朋友,可以通过 [百度网盘](https://pan.baidu.com/s/1_m_DIV79z2vNyf-hT3PVFA) 下载安装包,提取码为 `42tx` ,下载好后通过 `scp` 命令拷贝到 开发板上。然后解压,执行 media-rk3288.sh 脚本安装。 ``` xz -d media-rk3328_1.0.txz tar jxvf media-rk3328_1.0.tar cd media-script ./media-rk3328.sh ``` 执行该脚本后,会弹出一个对话框,把你想选择的选项都选上,然后安装。安装完成后,接上键盘、鼠标,在 HDMI 屏幕上执行 `startx` 命令,你就能看到桌面了。 ![Armbian Desktop](https://andyshrk.gitee.io/imgrepo/EAIDK-310/EAIDK-310-Armbian-desktop.png) 点击右上角的 `Applications` 选项,或者直接在桌面上单击鼠标右键,可以看到各种设置和应用。 ## 4、安装 Tengine 官方预置的 Fedora28 系统上默认就带有 Tengine AI 框架,我做的这个 Ubuntu 系统默认并不带这些,好在 OPEN AI LAB 开源了 Tengine,我们可以从源码直接编译安装,而且直接在开发板上编译。 Tengine 的 ACL GPU 加速功能依赖 Arm 的 ComputeLibrary,所以先要下载 ComputeLibrary 并编译。 ``` git clone https://github.com/ARM-software/ComputeLibrary cd ComputeLibrary git checkout v18.05 scons Werror=1 -j2 debug=0 neon=1 opencl=1 os=linux arch=arm64-v8a build=native ``` 这个编译的比较慢,大概要两三个小时。另外,我用 master 分支编译的时候发现后面 Tengine 编译的时候会编译不过,切到 v18.05 就可以,还没去查具体是什么原因。 Tengine 源码下载和编译可以参考 [Github](https://github.com/andyshrk/Tengine),编译完 Tengine 后可以接着编译它提供的 [examples](https://github.com/OAID/Tengine/blob/master/examples/readme.md), 然按照说明文档中的连接下载对应的 model,即可运行这些测试样例。 ![Tengine example build](https://andyshrk.gitee.io/imgrepo/EAIDK-310/EAIDK-310-Tengine-examples.png) 运行 MTCNN: ![MTCNN](https://andyshrk.gitee.io/imgrepo/EAIDK-310/EAIDK-310-MTCNN.png) 运行 MSSD: ![MSSD](https://andyshrk.gitee.io/imgrepo/EAIDK-310/EAIDK-310-MSSD.png) ![MSSD on horse](https://andyshrk.gitee.io/imgrepo/EAIDK-310/EAIDK-310-MSSD-horse.png)
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
HackforFun
擅长:消费电子
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交