OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录 原创 精华

jerckNing
发布于 2021-7-16 15:26
浏览
4收藏

本文主要介绍在腾讯云服务器上编译小型系统以及Windows本地烧录

一、购买腾讯云服务器

初始购买界面,Ubuntu的系统版本只能选择18.04
OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

二、重装Ubuntu 20.0.4系统

为了避免踩坑,重装系统为Ubuntu 20.04版本:
OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

三、apt-get以及Python安装

1、更新apt-get

sudo apt-get update

2、python版本安装 (官方要求python3.7以上版本)

先确认python版本

cd /usr/bin
ls -l python*

如果没有达到指定版本,先安装python 根据Ubuntu不同版本,安装python。

如果Ubuntu 版本为18+,运行如下命令。

sudo apt-get install python3.8

如果Ubuntu版本为16。

a. 安装依赖包

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

3、设置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

4、安装并升级Python包管理工具(pip3),任选如下一种方式。

命令行方式:

sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip

安装包方式:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

四、 Linux服务器开发工具安装

开发工具 用途 获取途径
gn 产生ninja编译脚本 https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz
ninja 执行ninja编译脚本 https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
LLVM 编译工具链 https://repo.huaweicloud.com/harmonyos/compiler/clang/10.0.1-62608/linux/llvm.tar.gz
针对OpenHarmony_1.0.1_release分支使用以下链接下载:https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar
hc-gen 驱动配置编译工具 https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar
hb OpenHarmony编译构建命令行工具 通过互联网获取
bash 命令行处理工具 系统配置
编译基础软件包(仅ubuntu 20+需要) 编译依赖的基础软件包 通过互联网获取
dosfstools、mtools、mtd-utils 文件打包工具 通过apt-get install安装
Java 虚拟机环境 编译、调试和运行Java程序 通过apt-get install安装

1、下载gn、ninja、LLVM、hc-gen

mkdir -p ~/harmonyos/tools
cd ~/harmonyos/tools
#下载gn
wget https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz
#下载ninga
wget https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
# 下载 LLVM
wget https://repo.huaweicloud.com/harmonyos/compiler/clang/10.0.1-62608/linux/llvm.tar.gz
#下载hc-gen
wget https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar##

OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

2、解压并配置环境变量

解压gn安装包至~/gn路径下。
mkdir ~/gn
tar -xvf gn-linux-x86-1717.tar.gz -C ~/gn
解压ninja安装包至~/ninja路径下。
tar -xvf ninja.1.9.0.tar -C ~/
解压LLVM安装包至~/llvm路径下。
tar -zxvf llvm.tar.gz -C ~/
解压hc-gen安装包至~/hc-gen路径下
tar -xvf hc-gen-0.65-linux.tar -C ~/

设置环境变量

sudo vim ~/.bashrc
在末尾添加如下
export PATH=~/gn:$PATH
export PATH=~/ninja:$PATH
export PATH=~/llvm/bin:$PATH
export PATH=~/hc-gen:$PATH
添加之后 source ~/.bashrc

OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

3、安装hb

1、安装命令

python3 -m pip install --user ohos-build

2、将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

export PATH=~/.local/bin:$PATH

执行如下命令更新环境变量。
source ~/.bashrc

3、执行"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

4、将Linux shell改为bash

查看shell是否为bash,在终端运行如下命令

ls -l /bin/sh

如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改:

方法一:在终端运行如下命令,然后选择 no。

sudo dpkg-reconfigure dash

方法二:先删除sh,再创建软链接。

sudo rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh

5、安装编译依赖基础软件(仅Ubuntu 20+需要)

执行以下命令进行安装:

sudo apt-get install build-essential gcc g++ make zlib* libffi-dev

6、安装文件打包工具及Java虚拟机环境

打开Linux编译服务器终端
运行如下命令,安装dosfstools,mtools,mtd-utils,Java运行时环境(JRE)和Java sdk 开发工具包。

sudo apt-get install dosfstools mtools mtd-utils default-jre default-jdk

五、通过repo下载源码

1、配置 repo 工具

mkdir ~/bin/
sudo apt install curl

如果没有 curl 命令需要先下载

sudo apt install curl
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
chmod a+x ~/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
#添加环境变量~/.bashrc
export PATH=~/bin:$PATH
source ~/.bashrc

2、安装git lfs(如未安装、下载源码会报错)

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install

3、通过repo下载OpenHarmony-2.0-Canary源码

首先配置git

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

下载2.0 Release版本代码初始化

cd harmony/openharmony
repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony-2.0-Canary --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

下载master分支代码

cd harmony/openharmony
repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

六、编译Hi3516(小系统)源码

1、hb set(设置编译路径)

OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

2、选择ipcamera_hispark_taurus

3、hb build -f(执行编译)

OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

经过1个半小时后编译成功
OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

七、小型系统烧录

1、连接开发板,查看串口号

Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三种方式。我主要将一下串口烧录

请连接好电脑和待烧录开发板,以Hi3516DV300为例,需要同时连接串口、网口和电源,具体可参考Hi3516开发板介绍。

打开电脑的设备管理器,查看并记录对应的串口号。
OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

2、打开DevEco Device Tool,在Projects中,点击Settings打开工程配置界面。

OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

3、在“Partition Configuration”页签,设置待烧录文件信息,默认情况下,DevEco Device Tool已针对Hi3516系列开发板进行适配,无需单独修改。

4、在“hi3516dv300”页签,设置烧录选项,包括upload_port、upload_partitions和upload_protocol。

  • upload_port:选择步骤2中查询的串口号。
  • upload_protocol:选择烧录协议,固定选择“hiburn-serial”。
  • upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。

OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区
OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

5、所有的配置都修改完成后,在工程配置页签的顶部,点击Save进行保存。

6、打开工程文件,点击图标,打开DevEco Device Tool界面,在“PROJECT TASKS”中,点击hi3516dv300下的Upload按钮,启动烧录。

OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

7、开始烧录(串口烧录会比较慢)

OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区
OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

8、烧录成功

OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

9、烧录注意事项

如果烧录了boot,此时还不能点亮屏幕
重新写入引导内核启动的指令和参数

9.1、单击Monitor打开串口

OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区

9.2、当出现下图所示时,给开发版上电, 连续输入回车直到串口显示"hisilicon"9

OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区
OpenHarmony2.0 Hi3516系列小型系统源码编译及烧录-鸿蒙开发者社区
此时输入如下四条命令,执行完四条命令之后,系统会重启并点亮屏幕

执行命令 命令解释
reset 表示复位单板。
saveenv 表示保存当前配置。
setenv bootargs “console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=20M rw”; 表示设置启动参数,输出模式为串口输出,波特率为115200,数据位8,rootfs挂载于emmc器件,文件系统类型为vfat,“rootaddr=10M rootsize=20M rw”处对应填入rootfs.img的烧写起始位置与长度,此处与IDE中新增rootfs.img文件时所填大小必须相同
setenv bootcmd “mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000”; 读取FLASH起始地址为0x800(单位为512B,即1MB),大小为0x4800(单位为512B,即9MB)的内容到0x80000000的内存地址,该大小(9MB)与IDE中所填写OHOS_Image.bin文件大小必须相同

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2021-7-16 15:42:34修改
6
收藏 4
回复
举报
2条回复
按时间正序
/
按时间倒序
Whyalone
Whyalone

我只知道因为USB驱动的问题,疯了好几个😂😂😂

回复
2021-7-16 18:18:32
Anzia
Anzia

很详细的文章,先记录一下usb的坑hhh

回复
2021-7-16 20:42:18
回复
    相关推荐