OpenHarmonyOs / LiteOs-a 开发环境搭建

相关文章

下一篇:OpenHarmonyOs / LiteOs-a 驱动开发

文章目录

  • 相关文章
  • 前言
  • 一、前期准备
          • 1. 下载 Ubuntu 系统
          • 2. Vmware 虚拟机安装 Ubuntu 20.04:(略)
          • 3. 整一个共享文件夹
          • 4. 根据操作习惯瞎逼配置一下
          • 5. 注册 Gitee 账户
  • 二、下载环境配置
          • 1. 安装和配置 git
          • 2. ssh 密钥配置
          • 3. 下载下载代码的工具和 OpenHarmony 源码
  • 三、配置编译环境
          • 1. 安装一堆库
          • 2. 下载安装交叉编译工具
          • 3. 下载安装鸿蒙编译工具
          • 4. 下载 openjdk
  • 四、编译OpenHarmonyOs源代码
          • 1. 测试一下!
          • 2. 选择平台
          • 3. 编译源码
  • 五、烧写镜像
          • 1. 编写 emmc 分区表文件
          • 2. 下载海思芯片的烧写软件Hitool
          • 3. 连接数据线
          • 4. 配置Hitool
          • 5. 镜像烧写
  • 总结
  • 相关文章


前言

本文介绍了在 Ubuntu 20.04 系统搭建 OpenHarmonyOs / LiteOs-a 开发环境的方法。
开发板用的是润和的ipcamera_hispark_taurus,芯片是HI3516DV300。


一、前期准备

包括安装配置 Ubuntu 系统和注册 Gitee 账户。如果两者都准备好了可以略过。

1. 下载 Ubuntu 系统

https://ubuntu.com/download/desktop

2. Vmware 虚拟机安装 Ubuntu 20.04:(略)
3. 整一个共享文件夹

在主机 Windows 10 的 E 盘新建一个 share 文件夹。然后在 Vmware 点虚拟机
在这里插入图片描述
然后点设置,然后点选项,然后点共享文件夹,然后点添加,然后点下一步,
OpenHarmonyOs / LiteOs-a 开发环境搭建_第1张图片
然后点浏览,选择新建的共享文件夹,然后点下一步,
OpenHarmonyOs / LiteOs-a 开发环境搭建_第2张图片
选启用此共享,然后点完成。
OpenHarmonyOs / LiteOs-a 开发环境搭建_第3张图片
然后点确定。
这时候在 Ubuntu 会生成一个路径

/mnt/hgfs/share/ 
4. 根据操作习惯瞎逼配置一下

1)更新软件List

sudo apt update

2)安装和配置vim
安装vim文本编辑器

sudo apt-get install vim

配置vim:打开 ~/.vimrc

vim ~/.vimrc

添加

set nu
set hlsearch
set cursorline
set cursorcolumn
set autoindent

set laststatus=2
"highlight StatusLine cterm=bold ctermfg=yellow ctermbg=blue
function! CurDir()
	let curdir = substitute(getcwd(), $HOME, "~", "g")
	return curdir
endfunction
set statusline=\ %f%m%r%h\ \|\ \ pwd:\ %{CurDir()}\ \ \|%=\|\ %l,%c\ %p%%
5. 注册 Gitee 账户

https://gitee.com/signup?from=homepage
注册步骤:(略)

二、下载环境配置

1. 安装和配置 git

安装版本管理工具 git 和 git-lfs:

sudo apt-get install git
sudo apt-get install git-lfs

配置 git:
用户名 UserName
邮箱 [email protected]

git config --global user.name "UserName"
git config --global user.email "[email protected]"
git config --global credential.helper store
2. ssh 密钥配置

1)生成 ssh 密钥
如果已生成 ssh 密钥可以略过这步

ssh-keygen -t rsa

一路回车后,生成 ssh 密钥在路径 ~/.ssh/

cat ~/.ssh/id_rsa.pub

打印出来这坨很长的东西就是 ssh 公钥

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZxilDryT.................................

2)添加公钥
登录 Gitee https://gitee.com/login#lang=zh-CN
点配置小齿轮
OpenHarmonyOs / LiteOs-a 开发环境搭建_第4张图片
然后点 SSH 公钥,然后把生成的密钥贴进公钥的框框,然后点确定
OpenHarmonyOs / LiteOs-a 开发环境搭建_第5张图片

3. 下载下载代码的工具和 OpenHarmony 源码

1)安装 repo 代码仓库管理工具

sudo apt install curl
mkdir ~/bin
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
sudo chmod 777 ~/bin/repo

打开 ~/.bashrc

vim ~/.bashrc

在最后一行添加系统环境变量

export PATH=~/bin:$PATH

source 一下!

. ~/.bashrc

2)安装 python 2.7
因为 Ubuntu 20.04 自带的 python 是3.9版本的,而 repo 需要用到 python 2.7,所以安装一下 python 2.7 并配置为默认的 python

sudo apt install python2.7
sudo ln -sf /usr/bin/python2.7 /usr/bin/python

3)安装 pip3 和 requests 库

sudo apt install python3-pip
python3 -m pip install -i https://repo.huaweicloud.com/repository/pypi/simple requests

这个不知道是搞毛用的,但是官网的文档里有,勉为其难地装一下
(Requests is an elegant and simple HTTP library for Python, built for human beings. )
4)下载代码
新建工作路径放代码

mkdir ~/work/OpenHOS -p
cd ~/work/OpenHOS

init 一下 repo,下载 master 分支的源码。(master 分支的代码包含最新的功能,而 LTS 分支的代码比较稳定。)
官网上的文档用的是这个命令

repo init -u [email protected]:openharmony/manifest.git -b master --no-repo-verify

但是我这里会报错。如果报错的话试试添加 --no-clone-bundle

repo init -u [email protected]:openharmony/manifest.git -b master --no-repo-verify --no-clone-bundle

开始同步代码!

repo sync -c
repo forall -c 'git lfs pull'

源码总共18G左右,注意预留硬盘空间。

三、配置编译环境

1. 安装一堆库

编译源码用到的库

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
2. 下载安装交叉编译工具

因为 OpenHarmonyOs 跑在 Arm 平台,而源代码是在 PC 平台上编译,所以需要交叉编译工具来编译(出)在 Arm 平台上跑的软件。
在源码根目录下跑

bash build/prebuilts_download.sh

会在上层目录新建一个目录 OpenHarmony_2.0_canary_prebuilts,保存交叉编译工具的压缩包,之后会自动解压到源码中相应的位置

3. 下载安装鸿蒙编译工具
python3 -m pip install --user ohos-build

添加系统环境变量

vim ~/.bashrc

最后一行添加

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

source 一下!

source ~/.bashrc
4. 下载 openjdk

编译源码打包 hap 应用的时候会用到 openjdk

sudo apt install openjdk-11-jdk

四、编译OpenHarmonyOs源代码

1. 测试一下!
hb -h

打印一堆东西

usage: hb [-h] [-v] {build,set,env,clean} ...

OHOS Build System version 0.4.6

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
  -v, --version         show program's version number and exit
2. 选择平台
hb set

因为开发板是润和的开发板ipcamera_hispark_taurus,所以选择对应的配置 ipcamera_hispark_taurus 项,回车
OpenHarmonyOs / LiteOs-a 开发环境搭建_第6张图片
可以用 hb env 打印出来配置好的编译参数

~/work/OpenHOS$ hb env
[OHOS INFO] root path: /home/username/work/OpenHOS
[OHOS INFO] board: hispark_taurus
[OHOS INFO] kernel: liteos_a
[OHOS INFO] product: ipcamera_hispark_taurus
[OHOS INFO] product path: /home/username/work/OpenHOS/vendor/hisilicon/hispark_taurus
[OHOS INFO] device path: /home/username/work/OpenHOS/device/board/hisilicon/hispark_taurus/liteos_a
[OHOS INFO] device company: hisilicon
3. 编译源码
hb build -f

编译完成的信息

......
[OHOS INFO] [6635/6637] STAMP obj/build/ohos/packages/copy_testfwk_required_files_phone.stamp
[OHOS INFO] [6636/6637] STAMP obj/build/ohos/packages/package_testcase.stamp
[OHOS INFO] [6637/6637] STAMP obj/build/core/gn/make_test.stamp
[OHOS INFO] 54614+0 records in
[OHOS INFO] 54614+0 records out
[OHOS INFO] 27962368 bytes (28 MB, 27 MiB) copied, 0.0615173 s, 455 MB/s
[OHOS INFO] 54598+0 records in
[OHOS INFO] 54598+0 records out
[OHOS INFO] 27954176 bytes (28 MB, 27 MiB) copied, 0.0614429 s, 455 MB/s
[OHOS INFO] 102400+0 records in
[OHOS INFO] 102400+0 records out
[OHOS INFO] 52428800 bytes (52 MB, 50 MiB) copied, 0.112262 s, 467 MB/s
[OHOS INFO] c targets overlap rate statistics
[OHOS INFO] subsystem       	files NO.	percentage	builds NO.	percentage	overlap rate
[OHOS INFO] aafwk           	      67	1.0%	      67	1.0%	1.00
[OHOS INFO] ace             	     693	10.6%	     693	10.6%	1.00
[OHOS INFO] ai              	      76	1.2%	      76	1.2%	1.00
[OHOS INFO] appexecfwk      	      38	0.6%	      38	0.6%	1.00
[OHOS INFO] communication   	     218	3.3%	     218	3.3%	1.00
[OHOS INFO] distributedschedule	      43	0.7%	      43	0.7%	1.00
[OHOS INFO] global          	      38	0.6%	      38	0.6%	1.00
[OHOS INFO] graphic         	     331	5.1%	     331	5.1%	1.00
[OHOS INFO] hdf             	     625	9.6%	     625	9.6%	1.00
[OHOS INFO] hiviewdfx       	       9	0.1%	       9	0.1%	1.00
[OHOS INFO] kernel          	    2435	37.4%	    2435	37.4%	1.00
[OHOS INFO] multimedia      	     124	1.9%	     124	1.9%	1.00
[OHOS INFO] powermgr        	      25	0.4%	      25	0.4%	1.00
[OHOS INFO] securec         	     117	1.8%	     117	1.8%	1.00
[OHOS INFO] security        	     284	4.4%	     284	4.4%	1.00
[OHOS INFO] sensors         	       7	0.1%	       7	0.1%	1.00
[OHOS INFO] startup         	      68	1.0%	      68	1.0%	1.00
[OHOS INFO] third_party     	    1333	20.5%	    1333	20.5%	1.00
[OHOS INFO] updater         	       4	0.1%	       4	0.1%	1.00
[OHOS INFO] utils           	      12	0.2%	      12	0.2%	1.00
[OHOS INFO] 
[OHOS INFO] c overall build overlap rate: 1.00
[OHOS INFO] 
[OHOS INFO] 
[OHOS INFO] ipcamera_hispark_taurus build success
[OHOS INFO] cost time: 0:07:47

编译出来的镜像路径

device/board/hisilicon/hispark_taurus/uboot/out/boot/u-boot-hi3516dv300.bin
out/hispark_taurus/ipcamera_hispark_taurus/OHOS_Image.bin
out/hispark_taurus/ipcamera_hispark_taurus/rootfs_vfat.img
out/hispark_taurus/ipcamera_hispark_taurus/userfs_vfat.img

注意 LTS 分支编译出来的 uboot 路径是在

device/hisilicon/hispark_taurus/sdk_liteos/uboot/out/boot/u-boot-hi3516dv300.bin

跟 master 分支不同。
复制编译出来的镜像到共享文件夹

mkdir images
cp device/board/hisilicon/hispark_taurus/uboot/out/boot/u-boot-hi3516dv300.bin images
cp out/hispark_taurus/ipcamera_hispark_taurus/OHOS_Image.bin images
cp out/hispark_taurus/ipcamera_hispark_taurus/rootfs_vfat.img images
cp out/hispark_taurus/ipcamera_hispark_taurus/userfs_vfat.img images
cp images /mnt/hgfs/share/ -frp

五、烧写镜像

1. 编写 emmc 分区表文件

emmc 分区表文件包含 fastboot,kernel,rootfs,user 分区的分区名字 PartitionName,文件系统 FileSystem,起始地址 Start,长度 Length,路径 SelectFile
先在源码根目录

ls -l images

可以获得镜像大小

-rwxrwxr-x 1 lu lu 6.3M Apr 24 05:13 OHOS_Image.bin
-rw-rw-r-- 1 lu lu  27M Apr 24 05:13 rootfs_vfat.img
-rwxrwxr-x 1 lu lu 259K Apr 24 05:13 u-boot-hi3516dv300.bin
-rw-rw-r-- 1 lu lu  50M Apr 24 05:13 userfs_vfat.img

由镜像大小来确定起分区始地址和长度:分区长度要大于镜像大小,分区起始地址 = 上一个分区的起始地址 + 上一个分区的长度
在 E:\share\images 目录新建文件 3516.xml,添加各分区的信息:

<?xml version="1.0" encoding="GB2312" ?>
<Partition_Info>
<Part Sel="1" PartitionName="fastboot" FlashType="emmc" FileSystem="none" Start="0" Length="1M" SelectFile="E:\share\images\u-boot-hi3516dv300.bin"/>
<Part Sel="1" PartitionName="kernel" FlashType="emmc" FileSystem="none" Start="1M" Length="9M" SelectFile="E:\share\images\OHOS_Image.bin"/>
<Part Sel="1" PartitionName="rootfs" FlashType="emmc" FileSystem="none" Start="10M" Length="30M" SelectFile="E:\share\images\rootfs_vfat.img"/>
<Part Sel="1" PartitionName="user" FlashType="emmc" FileSystem="none" Start="40M" Length="50M" SelectFile="E:\share\images\userfs_vfat.img"/>
</Partition_Info>
2. 下载海思芯片的烧写软件Hitool

可以在润和官网上下载。貌似要注册账号。

3. 连接数据线

串口线连接开发板和 Win10。串口从左到右依次是 GND,RX,TX
OpenHarmonyOs / LiteOs-a 开发环境搭建_第7张图片
USB 线一端连接开发板背面的 TypeC 口,另一端接电脑连 Win10。
OpenHarmonyOs / LiteOs-a 开发环境搭建_第8张图片

4. 配置Hitool

打开解压后的Hitool,保证当前芯片选择的是 Hi3516DV300
OpenHarmonyOs / LiteOs-a 开发环境搭建_第9张图片
打开设备管理器查看串口号
OpenHarmonyOs / LiteOs-a 开发环境搭建_第10张图片
在Hitool的传输方式选串口,设置串口号
OpenHarmonyOs / LiteOs-a 开发环境搭建_第11张图片
点终端1标签的设置
在这里插入图片描述
设置串口号,配置波特率为 115200,以及数据位停止位等,然后点确定
OpenHarmonyOs / LiteOs-a 开发环境搭建_第12张图片
点连接串口
在这里插入图片描述
然后传输方式选择 USB 口
点烧写 eMMC 标签
点浏览选择分区表文件,然后各分区信息会显示在表格里
OpenHarmonyOs / LiteOs-a 开发环境搭建_第13张图片

5. 镜像烧写

如果烧写不同类型内核的系统,需要先擦除分区:
1)先点擦除全器件,
在这里插入图片描述
2)然后按住开发板上 update 键的同时
OpenHarmonyOs / LiteOs-a 开发环境搭建_第14张图片
3)同时拔插一下接电脑端的 USB线重新给开发板上电
像这样:
OpenHarmonyOs / LiteOs-a 开发环境搭建_第15张图片
4)注意此时虚拟机会弹个框框让选择连接虚拟机还是连接主机 Win10,须要选择连接主机 Win10,否则会擦除失败
5)此时出现绿色进度条,开始擦除分区
OpenHarmonyOs / LiteOs-a 开发环境搭建_第16张图片
6)擦除完成后点烧写
OpenHarmonyOs / LiteOs-a 开发环境搭建_第17张图片
7)如果烧写失败则需要重做这个流程:点烧写,按开发板 update 键,同时拔插 USB 线给开发板重新上电,选择连接主机 Win10,等绿色进度条出现
8)烧写完成后开发板自动重新开机,终端1的框框会打印信息
OpenHarmonyOs / LiteOs-a 开发环境搭建_第18张图片
此时需要配置 uboot 启动参数,在终端1的框框中依次输入命令然后回车

setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000";
setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=30M rw";
saveenv
reset

开发板重启后正常进系统
OpenHarmonyOs / LiteOs-a 开发环境搭建_第19张图片
Hitool 里的终端1框框里可以输入命令
OpenHarmonyOs / LiteOs-a 开发环境搭建_第20张图片


总结

下一篇讲讲驱动。

相关文章

下一篇:OpenHarmonyOs / LiteOs-a 驱动开发

你可能感兴趣的:(OpenHarmonyOs,/,LiteOs-a,开发,鸿蒙系统,harmonyos,鸿蒙)