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 点虚拟机
https://img-blog.csdnimg.cn/5eb6bcd007314d4bb17e284d5ef98065.png#pic_center
然后点设置,然后点选项,然后点共享文件夹,然后点添加,然后点下一步,
https://img-blog.csdnimg.cn/25f2f1ece4254634806cbbc7e3706e8b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center
然后点浏览,选择新建的共享文件夹,然后点下一步,
https://img-blog.csdnimg.cn/c51a3807d22b452d908e95a4ebab6f3f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center
选启用此共享,然后点完成。
https://img-blog.csdnimg.cn/a6102db4c72c4cc3af4a6b295f854c99.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center
然后点确定。
这时候在 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
点配置小齿轮
https://img-blog.csdnimg.cn/af6ca598dbf14cb3a628bce52cbc2fee.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center
然后点 SSH 公钥,然后把生成的密钥贴进公钥的框框,然后点确定
https://img-blog.csdnimg.cn/9fde04c42c0344b6a99d4bb23fb966ee.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center
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 项,回车
https://img-blog.csdnimg.cn/b93266af80ee4a0aacbea7a08df16395.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center
可以用 hb env 打印出来配置好的编译参数
~/work/OpenHOS$ hb env
root path: /home/username/work/OpenHOS
board: hispark_taurus
kernel: liteos_a
product: ipcamera_hispark_taurus
product path: /home/username/work/OpenHOS/vendor/hisilicon/hispark_taurus
device path: /home/username/work/OpenHOS/device/board/hisilicon/hispark_taurus/liteos_a
device company: hisilicon 3. 编译源码
hb build -f 编译完成的信息
......
STAMP obj/build/ohos/packages/copy_testfwk_required_files_phone.stamp
STAMP obj/build/ohos/packages/package_testcase.stamp
STAMP obj/build/core/gn/make_test.stamp
54614+0 records in
54614+0 records out
27962368 bytes (28 MB, 27 MiB) copied, 0.0615173 s, 455 MB/s
54598+0 records in
54598+0 records out
27954176 bytes (28 MB, 27 MiB) copied, 0.0614429 s, 455 MB/s
102400+0 records in
102400+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 0.112262 s, 467 MB/s
c targets overlap rate statistics
subsystem files NO. percentage builds NO. percentage overlap rate
aafwk 67 1.0% 67 1.0% 1.00
ace 693 10.6% 693 10.6% 1.00
ai 76 1.2% 76 1.2% 1.00
appexecfwk 38 0.6% 38 0.6% 1.00
communication 218 3.3% 218 3.3% 1.00
distributedschedule 43 0.7% 43 0.7% 1.00
global 38 0.6% 38 0.6% 1.00
graphic 331 5.1% 331 5.1% 1.00
hdf 625 9.6% 625 9.6% 1.00
hiviewdfx 9 0.1% 9 0.1% 1.00
kernel 2435 37.4% 2435 37.4% 1.00
multimedia 124 1.9% 124 1.9% 1.00
powermgr 25 0.4% 25 0.4% 1.00
securec 117 1.8% 117 1.8% 1.00
security 284 4.4% 284 4.4% 1.00
sensors 7 0.1% 7 0.1% 1.00
startup 68 1.0% 68 1.0% 1.00
third_party 1333 20.5% 1333 20.5% 1.00
updater 4 0.1% 4 0.1% 1.00
utils 12 0.2% 12 0.2% 1.00
c overall build overlap rate: 1.00
ipcamera_hispark_taurus build success
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 lu27M 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 lu50M Apr 24 05:13 userfs_vfat.img 由镜像大小来确定起分区始地址和长度:分区长度要大于镜像大小,分区起始地址 = 上一个分区的起始地址 + 上一个分区的长度
在 E:\share\images 目录新建文件 3516.xml,添加各分区的信息:
2. 下载海思芯片的烧写软件Hitool
可以在润和官网上下载。貌似要注册账号。
3. 连接数据线
串口线连接开发板和 Win10。串口从左到右依次是 GND,RX,TX
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
USB 线一端连接开发板背面的 TypeC 口,另一端接电脑连 Win10。
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
4. 配置Hitool
打开解压后的Hitool,保证当前芯片选择的是 Hi3516DV300
https://img-blog.csdnimg.cn/0ef08d42966247b68f71b58a15359ba9.png
打开设备管理器查看串口号
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
在Hitool的传输方式选串口,设置串口号
https://img-blog.csdnimg.cn/89611ad755e34808a9c596905d8da896.png#pic_center
点终端1标签的设置
https://img-blog.csdnimg.cn/0616b237d15a42d8912dd58459a1f004.png#pic_center
设置串口号,配置波特率为 115200,以及数据位停止位等,然后点确定
https://img-blog.csdnimg.cn/87d732f8f5a64681ba074a3c38aecb1e.png#pic_center
点连接串口
https://img-blog.csdnimg.cn/d88b26f1d9404e9ca50f1cc114cbfb80.png#pic_center
然后传输方式选择 USB 口
点烧写 eMMC 标签
点浏览选择分区表文件,然后各分区信息会显示在表格里
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
5. 镜像烧写
如果烧写不同类型内核的系统,需要先擦除分区:
1)先点擦除全器件,
https://img-blog.csdnimg.cn/853dcb6b38f147188ae9fb781e9f455b.png#pic_center
2)然后按住开发板上 update 键的同时,
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
3)同时拔插一下接电脑端的 USB线重新给开发板上电
像这样:
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
4)注意此时虚拟机会弹个框框让选择连接虚拟机还是连接主机 Win10,须要选择连接主机 Win10,否则会擦除失败
5)此时出现绿色进度条,开始擦除分区
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
6)擦除完成后点烧写
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
7)如果烧写失败则需要重做这个流程:点烧写,按开发板 update 键,同时拔插 USB 线给开发板重新上电,选择连接主机 Win10,等绿色进度条出现
8)烧写完成后开发板自动重新开机,终端1的框框会打印信息
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
此时需要配置 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 开发板重启后正常进系统
https://img-blog.csdnimg.cn/0b180d9b7b8749eb9ced698ba627eb7f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center
Hitool 里的终端1框框里可以输入命令
https://img-blog.csdnimg.cn/ac4d5e2322dd4d04968b51c7c94f11da.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA44GC44Or,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center
总结
下一篇讲讲驱动。
相关文章
下一篇:OpenHarmonyOs / LiteOs-a 驱动开发
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]