1. 环境搭建
- 早早就收到了试用开发板,但当时初次上手没跑起来就暂时搁置了
,最近有空就重新跑一次,记录整体使用流程以及过程中遇到的坑。 - 习惯了用ubuntu,且ubuntu已经配置好linux开发环境,就直接在其上进行开发。
开发环境:VMware虚拟机 + ==ubuntu18.04==
由于本人略显强迫症,故将repo,llvm文件合并至tools文件夹下(懒得修改工程里的tools路径),
故该处指令与教程略有不同
开发工具 | 用途 | 获取途径 |
---|---|---|
必要的库和工具 | 编译所需的必要工具和库(如打包、镜像制作等) | 命令行安装 |
Python3.8 | 编译构建工具 | 命令行安装 |
LLVM(仅OpenHarmony_v1.x分支/标签需要) | 编译工具链 | 网络下载 |
hb | OpenHarmony编译构建命令行工具 | 命令行安装 |
源码 | 功能开发 | 命令行拉取 |
1.1 安装必要的库和工具
使用如下apt-get指令安装编译所需的库和基础工具
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
1.2 安装Python3
先查看当前python版本是否符合要求
adrves@ubuntu:~$ python --version Python 3.6.0
当前python版本不符合要求,升级安装python3.8
sudo apt-get install python3.8
设置python和python3软链接为python3.8。
令python指向python3 python3 指向python3.8sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
1.2.1 翻车现场
现象描述: ubuntu18.04实测修改python软链接会造成终端无法被快捷键及桌面图标打开,但可以被桌面右键打开。
问题原因: terminal在开发阶段使用的是自带的python3.6/3.5解释器,当升级到python3.8之后,其中的一些内建函数或者语法发生了变化,导致terminal打不开了,
解决办法: 通过查找资料发现共有两种解决方案,此处采用解决方案2。
解决方法一:更新终端
一般情况下可以通过
sudo apt-get install gnome-terminal
更新terminal来解决问题,有时候重新安装并没有解决问题,是因为当前Ubuntu版本对应的源里面没有更新版的terminal,可以使用修改解释器的方式临时解决
解决方法二:修改解释器
使用下述打开解释器文件,(良好习惯,修改前先备份)
sudo cp /usr/bin/gnome-terminal /usr/bin/gnome-terminal.bakup
sudo vi /usr/bin/gnome-terminal
在文件第一行显示为
! /usr/bin/python3
将其修改为
! /usr/bin/python3.6
保存退出,重启以后就能终端使用正常
安装并升级Python包管理工具(pip3)
sudo apt-get install python3-setuptools python3-pip -y sudo pip3 install --upgrade pip
1.3 安装LLVM(仅OpenHarmony_v1.x分支/标签需要)
- 下载LLVM工具
解压LLVM安装包至~/tools路径下。
tar -xvf llvm.tar -C ~/tools
设置环境变量
vim ~/.bashrc
拷贝环境变量到.bashrc文件的最后一行,保存并退出。
export PATH=~/tools/llvm/bin:$PATH
生效环境变量。
source ~/.bashrc
1.4 安装hb
前提条件
请先安装Python 3.7.4及以上版本,请见安装Python3。
安装方法
运行如下命令安装hb
python3 -m pip install --user ohos-build
设置环境变量
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/.local/bin:$PATH
执行如下命令更新环境变量。
source ~/.bashrc
执行"hb -h",有打印以下信息即表示安装成功:
usage: hb [-h] [-v] {build,set,env,clean,deps} ... OHOS Build System version 0.4.3 positional arguments: {build,set,env,clean,deps} build Build source code set OHOS build settings env Show OHOS build env clean Clean output deps OHOS components deps optional arguments: -h, --help show this help message and exit -v, --version show program's version number and exit
卸载方法(正常使用过程中无需卸载)
python3 -m pip uninstall ohos-build
提示:hb安装过程出现问题官方解决方法
2. 系统源码获取与编译
2.1 准备工作
OpenHarmony的代码托管在gitee,下载代码前必须在gitee注册账号并设置好公钥(点击学习设置公钥),否则会下载出错。
2.2 安装repo
创建repo安装目录。
wget https://storage.googleapis.com/git-repo-downloads/repo -P ~/tools/
改变执行权限
chmod a+x ~/tools/repo
改变环境变量,在~/.bashrc文件的最后输入
export PATH=~/tools:$PATH export REPO_URL=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/
- 重启shell
2.3 下载系统
XR806_OpenHarmony开发板适配了OpenHarmony_1.0.1_release分支,以下步骤1,步骤2,步骤3选择其中一步进行。
下载指定分支的OpenHarmony,以OpenHarmony_1.0.1_release为例
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
下载好仓库后,输入命令下载代码。
repo sync -c
- 下载好代码后,继续下载剩余的大容量二进制文件。
repo forall -c 'git lfs pull'
2.4 下载xr806源码
1.进入鸿蒙系统的/device文件夹
cd ~/xr806/device
git clone https://gitee.com/moldy-potat...
cd ../ventor
git clone https://gitee.com/moldy-potat...
下载完毕后按照教程目录结构修改文件夹名称使其路径保持一致
务必按照对应二级文件夹下载,否则后面会出现"找不到设备"现象
mv devboard_device_allwinner_xr806 xradio
mv vendor/devboard_device_allwinner_xr806 vendor/xradio
2.4.1 翻车现场
最开始路径未按照规定下载,结果造成一直发现不了xr设备,经查看linux下已发现USB设备,最后把代码仓库按照路径设置后,即可成功发现xr设备。
2.5 设置工程编译工具链
(由于本人安装路径就是~/tool,且编译链工具也和官方保持一致,故该小节无需设置,跳过即可)
- 下载编译链工具,(与官方保持一致)
修改device/xradio/xr806/liteos_m/config.gni中的board_toolchain_prefix为实际环境下的gcc路径。
board_toolchain_prefix = "~/tools/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi-"
修改device/xradio/xr806/xr_skylark/gcc.mk中的CC_DIR为实际环境下的gcc路径。
CC_DIR := ~/tools/gcc-arm-none-eabi-10-2020-q4-major/bin
2.6 工程配置
该步骤按照相关文档步骤执行即可
2.7 编译下载
该过程按照教程执行即可
至此,系统成功编译下载通过