kings669669 · 2021年12月21日

【XR806开发板试用】Ubuntu环境配置


前言

「免费申请」基于安谋科技STAR-MC1的全志XR806 Wi-Fi+BLE开源鸿蒙开发板试用活动,很高兴能够被选中,这也是我第一次接触鸿蒙开发板,先把自己在Ubuntu下完成的部分记录下来,也好和大家一起学习进步😁。


安装Ubuntu

我是在虚拟机下安装,这部分大家应该都会吧,就不过多阐述了。

环境配置

大家应该先看官方文档【XR806】

1.准备工作

Git
在安装git后,需git-lfs并配置用户信息。否则可能拉代码失败

git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store

repo
安装码云repo工具,可以执行如下命令

mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+rx ~/bin/repo

配置环境变量
如果安装了vim,则可以使用vim编辑。否则手动在~/.bashrc文件最后添加

vim ~/.bashrc
export PATH=~/bin:$PATH #如果没有安装vim,将此句添加至最后

生效环境变量
source ~/.bashrc
修改repo镜像地址,在文章基于星辰处理器的全志XR806开源鸿蒙开发板上手体验中就有相应步骤。
当直接执行repo init时候,系统会提示连接超时。
因为Repo init 默认会访问的url地址https://gerrit.googlesource.c...往往会失败;
所以我们需要替换为国内的地址https://mirrors.ustc.edu.cn/a...,在修改git-repo下载到的repo文件REPO_URL地址。

Python
安装python3.7+,我安装的是3.8版本,根据Ubuntu不同版本,安装python。
如果Ubuntu 版本为18+,运行如下命令。
sudo apt-get install python3.8

如果Ubuntu版本为16。需安装依赖包
sudo apt update && sudo apt install software-properties-common
b. 添加deadsnakes PPA 源,然后按回车键确认安装。
sudo add-apt-repository ppa:deadsnakes/ppa
c. 安装python3.8
sudo apt upgrade && sudo apt install python3.8

设置python和python3软链接为python3.8

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1

LLVM
请先下载llvm工具
解压LLVM安装包至~/llvm路径下,也可以自己手动解压至对应目录下
tar -zxvf llvm.tar -C ~/
设置环境变量
如果安装了vim,则可以使用vim编辑。否则手动在~/.bashrc文件最后添加

vim ~/.bashrc
export PATH=~/llvm/bin:$PATH #如果没有安装vim,将此句添加至最后

生效环境变量
source ~/.bashrc
hb
先安装Python 3.7.4及以上版本和pip工具,才能正常安装。
pip install --user ohos-build
设置环境变量,仿照上面设置即可
PATH="$HOME/.local/bin:$PATH"
执行"hb -h",有打印以下信息即表示安装成功:

usage: hb

OHOS build system

positional arguments:
  {build,set,env,clean}
    build               Build source code
    set                 OHOS build settings
    env                 Show OHOS build env
    clean               Clean output

optional arguments:
  -h, --help            show this help message and exit

安装必要的库和工具

sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-boot-tools mtd-utils gcc-arm-linux-gnueabi cpio device-tree-compiler

否则在后面的步骤中,会有许多错误信息,由于缺少对应的工具和库。
安装libncurses5-dev
sudo apt-get install libncurses5-dev
可能还会缺少其他组件
如果出现,对应安装即可
参考XR806编译的一些环境问题及解决

2.源码

获取源码

repo init -u https://gitee.com/openharmony-sig/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify -m devboard_xr806.xml
repo sync -c
repo forall -c 'git lfs pull'

只获取鸿蒙代码,再手动加入

repo init -u https://gitee.com/openharmony-sig/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify

XR806代码正在走合入开源鸿蒙主仓流程,这几天会暂时不可用。大家可以采用临时仓库链接:https://gitee.com/moldy-potat...

下载编译链

我们使用gcc-arm-none-eabi-10-2020-q4-major,
wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
解压放在指定位置,我们默认放在~/tools中,这样就不用去更改文件里面的路径。如果需要进行更改参考XR806固件编译

代码编译

首次编译工程,需要对原生库进行配置,否则无法编译通过,配置步骤如下:

cd device/xradio/xr806/xr_skylark                               #(1)进入原生SDK目录
cp project/demo/audio_demo/gcc/deconfig .config                 #(2)复制配置文件
make menuconfig                                                 #(3)图形化界面配置
make build_clean                                                #(4)清除旧配置
make lib -j                                                     #(5)根据配置生成静态库和全局头文件
cd -                                                            #(6)返回Harmony根目录
hb set                                                          #(7)选择wifi_skylark
hb build -f                                                     #(8)编译,后续不需要重新配置

其中就是将device/xradio/xr806/xr_skylark/project/demo/audio_demo/gcc/deconfig中的配置文件内容复制在device/xradio/xr806/xr_skylark的.config 中,在进行make menuconfig 进入图形化配置文件,记得检查是否安装libncurses5-dev。进入图形化配置页面后
1直接选择退出,在执行make build_clean清除旧配置, make lib -j根据配置生成静态库和全局头文件,cd - 返回根目录,
hb set
2
直接回车
3
确定选中的是wifi_skylark,直接enter即可。
之后进行hb build -f,编译。如果出现错误,参考官方文档。


代码编写说明

请先查看文档编译顺序
如果是在编译烧录后,并没有成功运行,则可能是libcopy.py的问题。
在文件xr806_openharmony/device/xradio/xr806/xr_skylark/ohos.mk中,并没有更新路径。
文件未被更新如:

OHOSSOURCE = -Wl,--whole-archive
OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_console.a
OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_led.a
OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_WlanTest.a
OHOSSOURCE += -Wl,--no-whole-archive

其中是否有你需要启动的路径,如果没有可以手动添加,但最好还需找出原因。

3.固件烧录

这部分比较简单,我是直接在编译生成的固件在device/xradio/xr806/xr_skylark/out,名称为xr_system.img。
XR806的烧录固件为phoenixMC_xxxx.exe,文件位于device/xradio/xr806/xr_skylark/tools。打开后界面如下:
4
具体查看固件烧录
或者可以在Ubuntu下全流程,参考【XR806开发板试用】系列之一 - Linux环境下Ubuntu完全开发流程

总结

最后感谢极术社区提供的XR806开发板,本次学习到了很多知识,同时希望和大家多多交流。

推荐阅读
关注数
1
文章数
11
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息