ToB企服应用市场:ToB评测及商务社交产业平台
标题:
OpenHarmonyOs / LiteOs-a 开发环境搭建
[打印本页]
作者:
石小疯
时间:
2022-6-24 05:39
标题:
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 点虚拟机
然后点设置,然后点选项,然后点共享文件夹,然后点添加,然后点下一步,
然后点浏览,选择新建的共享文件夹,然后点下一步,
选启用此共享,然后点完成。
然后点确定。
这时候在 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
邮箱 account@email.com
git config --global user.name "UserName"
git config --global user.email "account@email.com"
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
点配置小齿轮
然后点 SSH 公钥,然后把生成的密钥贴进公钥的框框,然后点确定
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 git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
复制代码
但是我这里会报错。如果报错的话试试添加 --no-clone-bundle
repo init -u git@gitee.com: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 项,回车
可以用 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,添加各分区的信息:
[/code] [size=2]2. 下载海思芯片的烧写软件Hitool[/size]
可以在[url=http://www.hihope.org/download/download.aspx?mtt=32]润和官网[/url]上下载。貌似要注册账号。
[size=2]3. 连接数据线[/size]
串口线连接开发板和 Win10。串口从左到右依次是 GND,RX,TX
[img]https://img-blog.csdnimg.cn/84128ee7de194321adfee059578fb2c7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center[/img]
USB 线一端连接开发板背面的 TypeC 口,另一端接电脑连 Win10。
[img]https://img-blog.csdnimg.cn/6b43c94615f5478e8089fc7b9a7c5fe6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center[/img]
[size=2]4. 配置Hitool[/size]
打开解压后的Hitool,保证当前芯片选择的是 Hi3516DV300
[img]https://img-blog.csdnimg.cn/0ef08d42966247b68f71b58a15359ba9.png[/img]
打开设备管理器查看串口号
[img]https://img-blog.csdnimg.cn/594359692d5c4116adfa54ab52ada90b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center[/img]
在Hitool的传输方式选串口,设置串口号
[img]https://img-blog.csdnimg.cn/89611ad755e34808a9c596905d8da896.png#pic_center[/img]
点终端1标签的设置
[img]https://img-blog.csdnimg.cn/0616b237d15a42d8912dd58459a1f004.png#pic_center[/img]
设置串口号,配置波特率为 115200,以及数据位停止位等,然后点确定
[img]https://img-blog.csdnimg.cn/87d732f8f5a64681ba074a3c38aecb1e.png#pic_center[/img]
点连接串口
[img]https://img-blog.csdnimg.cn/d88b26f1d9404e9ca50f1cc114cbfb80.png#pic_center[/img]
然后传输方式选择 USB 口
点烧写 eMMC 标签
点浏览选择分区表文件,然后各分区信息会显示在表格里
[img]https://img-blog.csdnimg.cn/87c11e9f8baf4065b4a86a196aac7c5c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center[/img]
[size=2]5. 镜像烧写[/size]
如果烧写不同类型内核的系统,需要先擦除分区:
1)先点擦除全器件,
[img]https://img-blog.csdnimg.cn/853dcb6b38f147188ae9fb781e9f455b.png#pic_center[/img]
2)然后按住开发板上 update 键的同时,
[img]https://img-blog.csdnimg.cn/deb2618077f1494e8c8640ed6e0b85e2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center[/img]
3)同时拔插一下接电脑端的 USB线重新给开发板上电
像这样:
[img]https://img-blog.csdnimg.cn/4a60c36a6aab477db05488d361486ad2.bmp?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center[/img]
4)注意此时虚拟机会弹个框框让选择连接虚拟机还是连接主机 Win10,须要选择连接主机 Win10,否则会擦除失败
5)此时出现绿色进度条,开始擦除分区
[img]https://img-blog.csdnimg.cn/3b3632c2718d47f3a17842620cf1a106.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center[/img]
6)擦除完成后点烧写
[img]https://img-blog.csdnimg.cn/45c53235fb9845ac92da882d9761680c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center[/img]
7)如果烧写失败则需要重做这个流程:点烧写,按开发板 update 键,同时拔插 USB 线给开发板重新上电,选择连接主机 Win10,等绿色进度条出现
8)烧写完成后开发板自动重新开机,终端1的框框会打印信息
[img]https://img-blog.csdnimg.cn/25e4c6899d354aad856b28fed94210f2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center[/img]
此时需要配置 uboot 启动参数,在终端1的框框中依次输入命令然后回车
[code]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
复制代码
开发板重启后正常进系统
Hitool 里的终端1框框里可以输入命令
总结
下一篇讲讲驱动。
相关文章
下一篇:
OpenHarmonyOs / LiteOs-a 驱动开发
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4