20

Neo · 2021年04月07日

R329 开发环境搭建

  • R329 简介,上手
  • 搭建SSH服务器
  • 搭建交叉编译环境

R329 简介,上手

R329 是全志针对智能音箱的推出的一款SOC。 有很多升级的地方啦:

  • Cortex A53@1.5GHz x2
  • 周易AIPU Zy_0701 拥有200GOps
  • 双路AUDIO DSP HIFI4

但是由于内存是集成到SOC里面的,所以不能扩展内存。不过智能音箱应用通常也不会需要太多内存,内置的256M应该是足够的。

R329开发板用的是全志自己Tina linux,这个Tina是基于OpenWrt的。之前经常玩OpenwRt,所以这个Tina上手也比较快。

搭建SSH服务器

使用TTL 串口比较麻烦,需要硬件连接~ 习惯远程链接的,用TTL很不习惯,所以第一步肯定是先搭建SSH服务。

之前用OpenWrt里面是有SSH server,用的是dropbear,OpenSSH Server比较大,dropbear是一个比较小巧的ssh server.看了一下,内置的储存空间只有几十M
image.png
所以还是用dropbear。
自己编译dropbear是比较无聊的,还要搭建交叉编译环境,很麻烦。所以我还是直接下载一个吧。
查了一下dropbear 的项依赖,
image.png
Tina基本都有,所以找一个版本兼容的就行了。我在这里下载点我下载。这是一个deb包,解压之后就把elf文件直接通过U盘(或者SD 卡)拷过去就可以啦。
我把dropbear拷到/usr/bin/ 目录下。
我们可以直接运行

dropbear -R

就可以了。

接下来就是把网络连接和自动启动搞定就可以。

我拿到的Tina 网口是好像没有开启的,我们需要修改一下。
我们

vi /etc/config/network

把内容改成这样:

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fdc3:be8a:5b25::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth0'
        option proto 'dhcp'
        option netmask '255.255.255.0'
        option ip6assign '60'

主要是把eth0改成dhcp.
这样直接插上网线,就可以有IP了。
输入

ifconfig

就可以查看Eth0的IP了。

然后更改一下root的密码,就可以ssh连了。

passwd

然后根据提示输入两次密码就可以更改添加密码image.png

这样的话我们就可以用ssh啦

ssh root@[IP]

然后把加一个crob来让他自动启动。

vi /etc/init.d/dropbear

输入如下内容,保存

#!/bin/sh /etc/rc.common
START=99
STOP=15

start() {
  echo start dropbear
  #commands to launch application, such as above
  /usr/bin/dropbear -R &
}

stop() {
  echo stop
  #commands to kill application
  killall dropbear
}

然后加执行权限,启动自动启动

chmod +x /etc/init.d/dropbear
/etc/init.d/dropbear enable
/etc/init.d/dropbeat start

这样SSH 服务就搭建完成了,不过这个只能连ssh,scp这些是不支持的。所以我们还需要安装ssh-client来支持ssh的其他功能,有scp了之后,我们就不需要SD卡来拷东西了。
这里下载,把bin的东西拷到/usr/bin下面就可以了。

搭建交叉编译环境

由于这个是aarch64的处理器,所以交叉编译直接下载一个aarch64 的编译器的就可以了。
我在ubuntu(WSL)下,直接运行

sudo apt-get install gcc-aarch64-linux-gnu
sudo apt install libc6-dev-arm64-cross

就安装完成了。
测试一下:
image.png
编译一下

aarch64-linux-gnu-g++ hello.cpp

会生成一个a.out, scp 到板子上

scp ./a.out root@[IP]:/tmp

然后在板子上运行:
image.png
Done!

推荐阅读
关注数
2114
内容数
20
全志科技芯片方案学习专栏,欢迎关注。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息