OpenHarmonyOs / LiteOs-a 开发环境搭建

打印 上一主题 下一主题

主题 795|帖子 795|积分 2385

相关文章

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

文章目录




前言

本文介绍了在 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 会生成一个路径
  1. /mnt/hgfs/share/
复制代码
4. 根据操作习惯瞎逼配置一下

1)更新软件List
  1. sudo apt update
复制代码
2)安装和配置vim
安装vim文本编辑器
  1. sudo apt-get install vim
复制代码
配置vim:打开 ~/.vimrc
  1. vim ~/.vimrc
复制代码
添加
  1. set nu
  2. set hlsearch
  3. set cursorline
  4. set cursorcolumn
  5. set autoindent
  6. set laststatus=2
  7. "highlight StatusLine cterm=bold ctermfg=yellow ctermbg=blue
  8. function! CurDir()
  9.         let curdir = substitute(getcwd(), $HOME, "~", "g")
  10.         return curdir
  11. endfunction
  12. set statusline=\ %f%m%r%h\ \|\ \ pwd:\ %{CurDir()}\ \ \|%=\|\ %l,%c\ %p%%
复制代码
5. 注册 Gitee 账户

https://gitee.com/signup?from=homepage
注册步骤:(略)
二、下载环境配置

1. 安装和配置 git

安装版本管理工具 git 和 git-lfs:
  1. sudo apt-get install git
  2. sudo apt-get install git-lfs
复制代码
配置 git:
用户名 UserName
邮箱 account@email.com
  1. git config --global user.name "UserName"
  2. git config --global user.email "account@email.com"
  3. git config --global credential.helper store
复制代码
2. ssh 密钥配置

1)生成 ssh 密钥
如果已生成 ssh 密钥可以略过这步
  1. ssh-keygen -t rsa
复制代码
一路回车后,生成 ssh 密钥在路径 ~/.ssh/
  1. cat ~/.ssh/id_rsa.pub
复制代码
打印出来这坨很长的东西就是 ssh 公钥
  1. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZxilDryT.................................
复制代码
2)添加公钥
登录 Gitee https://gitee.com/login#lang=zh-CN
点配置小齿轮

然后点 SSH 公钥,然后把生成的密钥贴进公钥的框框,然后点确定

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

1)安装 repo 代码仓库管理工具
  1. sudo apt install curl
  2. mkdir ~/bin
  3. curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
  4. sudo chmod 777 ~/bin/repo
复制代码
打开 ~/.bashrc
  1. vim ~/.bashrc
复制代码
在最后一行添加系统环境变量
  1. export PATH=~/bin:$PATH
复制代码
source 一下!
  1. . ~/.bashrc
复制代码
2)安装 python 2.7
因为 Ubuntu 20.04 自带的 python 是3.9版本的,而 repo 需要用到 python 2.7,所以安装一下 python 2.7 并配置为默认的 python
  1. sudo apt install python2.7
  2. sudo ln -sf /usr/bin/python2.7 /usr/bin/python
复制代码
3)安装 pip3 和 requests 库
  1. sudo apt install python3-pip
  2. 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)下载代码
新建工作路径放代码
  1. mkdir ~/work/OpenHOS -p
  2. cd ~/work/OpenHOS
复制代码
init 一下 repo,下载 master 分支的源码。(master 分支的代码包含最新的功能,而 LTS 分支的代码比较稳定。)
官网上的文档用的是这个命令
  1. repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
复制代码
但是我这里会报错。如果报错的话试试添加 --no-clone-bundle
  1. repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify --no-clone-bundle
复制代码
开始同步代码!
  1. repo sync -c
  2. repo forall -c 'git lfs pull'
复制代码
源码总共18G左右,注意预留硬盘空间。
三、配置编译环境

1. 安装一堆库

编译源码用到的库
  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 平台上跑的软件。
在源码根目录下跑
  1. bash build/prebuilts_download.sh
复制代码
会在上层目录新建一个目录 OpenHarmony_2.0_canary_prebuilts,保存交叉编译工具的压缩包,之后会自动解压到源码中相应的位置
3. 下载安装鸿蒙编译工具

  1. python3 -m pip install --user ohos-build
复制代码
添加系统环境变量
  1. vim ~/.bashrc
复制代码
最后一行添加
  1. export PATH=~/.local/bin:$PATH
复制代码
source 一下!
  1. source ~/.bashrc
复制代码
4. 下载 openjdk

编译源码打包 hap 应用的时候会用到 openjdk
  1. sudo apt install openjdk-11-jdk
复制代码
四、编译OpenHarmonyOs源代码

1. 测试一下!

  1. hb -h
复制代码
打印一堆东西
  1. usage: hb [-h] [-v] {build,set,env,clean} ...
  2. OHOS Build System version 0.4.6
  3. positional arguments:
  4.   {build,set,env,clean}
  5.     build               Build source code
  6.     set                 OHOS build settings
  7.     env                 Show OHOS build env
  8.     clean               Clean output
  9. optional arguments:
  10.   -h, --help            show this help message and exit
  11.   -v, --version         show program's version number and exit
复制代码
2. 选择平台

  1. hb set
复制代码
因为开发板是润和的开发板ipcamera_hispark_taurus,所以选择对应的配置 ipcamera_hispark_taurus 项,回车

可以用 hb env 打印出来配置好的编译参数
  1. ~/work/OpenHOS$ hb env
  2. [OHOS INFO] root path: /home/username/work/OpenHOS
  3. [OHOS INFO] board: hispark_taurus
  4. [OHOS INFO] kernel: liteos_a
  5. [OHOS INFO] product: ipcamera_hispark_taurus
  6. [OHOS INFO] product path: /home/username/work/OpenHOS/vendor/hisilicon/hispark_taurus
  7. [OHOS INFO] device path: /home/username/work/OpenHOS/device/board/hisilicon/hispark_taurus/liteos_a
  8. [OHOS INFO] device company: hisilicon
复制代码
3. 编译源码

  1. hb build -f
复制代码
编译完成的信息
  1. ......
  2. [OHOS INFO] [6635/6637] STAMP obj/build/ohos/packages/copy_testfwk_required_files_phone.stamp
  3. [OHOS INFO] [6636/6637] STAMP obj/build/ohos/packages/package_testcase.stamp
  4. [OHOS INFO] [6637/6637] STAMP obj/build/core/gn/make_test.stamp
  5. [OHOS INFO] 54614+0 records in
  6. [OHOS INFO] 54614+0 records out
  7. [OHOS INFO] 27962368 bytes (28 MB, 27 MiB) copied, 0.0615173 s, 455 MB/s
  8. [OHOS INFO] 54598+0 records in
  9. [OHOS INFO] 54598+0 records out
  10. [OHOS INFO] 27954176 bytes (28 MB, 27 MiB) copied, 0.0614429 s, 455 MB/s
  11. [OHOS INFO] 102400+0 records in
  12. [OHOS INFO] 102400+0 records out
  13. [OHOS INFO] 52428800 bytes (52 MB, 50 MiB) copied, 0.112262 s, 467 MB/s
  14. [OHOS INFO] c targets overlap rate statistics
  15. [OHOS INFO] subsystem               files NO.        percentage        builds NO.        percentage        overlap rate
  16. [OHOS INFO] aafwk                         67        1.0%              67        1.0%        1.00
  17. [OHOS INFO] ace                          693        10.6%             693        10.6%        1.00
  18. [OHOS INFO] ai                            76        1.2%              76        1.2%        1.00
  19. [OHOS INFO] appexecfwk                    38        0.6%              38        0.6%        1.00
  20. [OHOS INFO] communication                218        3.3%             218        3.3%        1.00
  21. [OHOS INFO] distributedschedule              43        0.7%              43        0.7%        1.00
  22. [OHOS INFO] global                        38        0.6%              38        0.6%        1.00
  23. [OHOS INFO] graphic                      331        5.1%             331        5.1%        1.00
  24. [OHOS INFO] hdf                          625        9.6%             625        9.6%        1.00
  25. [OHOS INFO] hiviewdfx                      9        0.1%               9        0.1%        1.00
  26. [OHOS INFO] kernel                      2435        37.4%            2435        37.4%        1.00
  27. [OHOS INFO] multimedia                   124        1.9%             124        1.9%        1.00
  28. [OHOS INFO] powermgr                      25        0.4%              25        0.4%        1.00
  29. [OHOS INFO] securec                      117        1.8%             117        1.8%        1.00
  30. [OHOS INFO] security                     284        4.4%             284        4.4%        1.00
  31. [OHOS INFO] sensors                        7        0.1%               7        0.1%        1.00
  32. [OHOS INFO] startup                       68        1.0%              68        1.0%        1.00
  33. [OHOS INFO] third_party                 1333        20.5%            1333        20.5%        1.00
  34. [OHOS INFO] updater                        4        0.1%               4        0.1%        1.00
  35. [OHOS INFO] utils                         12        0.2%              12        0.2%        1.00
  36. [OHOS INFO]
  37. [OHOS INFO] c overall build overlap rate: 1.00
  38. [OHOS INFO]
  39. [OHOS INFO]
  40. [OHOS INFO] ipcamera_hispark_taurus build success
  41. [OHOS INFO] cost time: 0:07:47
复制代码
编译出来的镜像路径
  1. device/board/hisilicon/hispark_taurus/uboot/out/boot/u-boot-hi3516dv300.bin
  2. out/hispark_taurus/ipcamera_hispark_taurus/OHOS_Image.bin
  3. out/hispark_taurus/ipcamera_hispark_taurus/rootfs_vfat.img
  4. out/hispark_taurus/ipcamera_hispark_taurus/userfs_vfat.img
复制代码
注意 LTS 分支编译出来的 uboot 路径是在
  1. device/hisilicon/hispark_taurus/sdk_liteos/uboot/out/boot/u-boot-hi3516dv300.bin
复制代码
跟 master 分支不同。
复制编译出来的镜像到共享文件夹
  1. mkdir images
  2. cp device/board/hisilicon/hispark_taurus/uboot/out/boot/u-boot-hi3516dv300.bin images
  3. cp out/hispark_taurus/ipcamera_hispark_taurus/OHOS_Image.bin images
  4. cp out/hispark_taurus/ipcamera_hispark_taurus/rootfs_vfat.img images
  5. cp out/hispark_taurus/ipcamera_hispark_taurus/userfs_vfat.img images
  6. cp images /mnt/hgfs/share/ -frp
复制代码
五、烧写镜像

1. 编写 emmc 分区表文件

emmc 分区表文件包含 fastboot,kernel,rootfs,user 分区的分区名字 PartitionName,文件系统 FileSystem,起始地址 Start,长度 Length,路径 SelectFile
先在源码根目录
  1. ls -l images
复制代码
可以获得镜像大小
  1. -rwxrwxr-x 1 lu lu 6.3M Apr 24 05:13 OHOS_Image.bin
  2. -rw-rw-r-- 1 lu lu  27M Apr 24 05:13 rootfs_vfat.img
  3. -rwxrwxr-x 1 lu lu 259K Apr 24 05:13 u-boot-hi3516dv300.bin
  4. -rw-rw-r-- 1 lu lu  50M Apr 24 05:13 userfs_vfat.img
复制代码
由镜像大小来确定起分区始地址和长度:分区长度要大于镜像大小,分区起始地址 = 上一个分区的起始地址 + 上一个分区的长度
在 E:\share\images 目录新建文件 3516.xml,添加各分区的信息:
  1. [/code] [size=2]2. 下载海思芯片的烧写软件Hitool[/size]
  2. 可以在[url=http://www.hihope.org/download/download.aspx?mtt=32]润和官网[/url]上下载。貌似要注册账号。
  3. [size=2]3. 连接数据线[/size]
  4. 串口线连接开发板和 Win10。串口从左到右依次是 GND,RX,TX
  5. [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]
  6. USB 线一端连接开发板背面的 TypeC 口,另一端接电脑连 Win10。
  7. [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]
  8. [size=2]4. 配置Hitool[/size]
  9. 打开解压后的Hitool,保证当前芯片选择的是 Hi3516DV300
  10. [img]https://img-blog.csdnimg.cn/0ef08d42966247b68f71b58a15359ba9.png[/img]
  11. 打开设备管理器查看串口号
  12. [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]
  13. 在Hitool的传输方式选串口,设置串口号
  14. [img]https://img-blog.csdnimg.cn/89611ad755e34808a9c596905d8da896.png#pic_center[/img]
  15. 点终端1标签的设置
  16. [img]https://img-blog.csdnimg.cn/0616b237d15a42d8912dd58459a1f004.png#pic_center[/img]
  17. 设置串口号,配置波特率为 115200,以及数据位停止位等,然后点确定
  18. [img]https://img-blog.csdnimg.cn/87d732f8f5a64681ba074a3c38aecb1e.png#pic_center[/img]
  19. 点连接串口
  20. [img]https://img-blog.csdnimg.cn/d88b26f1d9404e9ca50f1cc114cbfb80.png#pic_center[/img]
  21. 然后传输方式选择 USB 口
  22. 点烧写 eMMC 标签
  23. 点浏览选择分区表文件,然后各分区信息会显示在表格里
  24. [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]
  25. [size=2]5. 镜像烧写[/size]
  26. 如果烧写不同类型内核的系统,需要先擦除分区:
  27. 1)先点擦除全器件,
  28. [img]https://img-blog.csdnimg.cn/853dcb6b38f147188ae9fb781e9f455b.png#pic_center[/img]
  29. 2)然后按住开发板上 update 键的同时,
  30. [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]
  31. 3)同时拔插一下接电脑端的 USB线重新给开发板上电
  32. 像这样:
  33. [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]
  34. 4)注意此时虚拟机会弹个框框让选择连接虚拟机还是连接主机 Win10,须要选择连接主机 Win10,否则会擦除失败
  35. 5)此时出现绿色进度条,开始擦除分区
  36. [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]
  37. 6)擦除完成后点烧写
  38. [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]
  39. 7)如果烧写失败则需要重做这个流程:点烧写,按开发板 update 键,同时拔插 USB 线给开发板重新上电,选择连接主机 Win10,等绿色进度条出现
  40. 8)烧写完成后开发板自动重新开机,终端1的框框会打印信息
  41. [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]
  42. 此时需要配置 uboot 启动参数,在终端1的框框中依次输入命令然后回车
  43. [code]setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000";
  44. setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=30M rw";
  45. saveenv
  46. reset
复制代码
开发板重启后正常进系统

Hitool 里的终端1框框里可以输入命令


总结

下一篇讲讲驱动。
相关文章

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表