0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用docker完成编译环境创建

电子发烧友开源社区 来源:HarmonyOS官方合作社区 作者:HarmonyOS官方合作社 2022-04-21 07:49 次阅读

说明:

  1. 作者环境:主机MacBook Pro 2015(16G),Docker Desktop for Mac(官方)

  2. 以下所有操作过程,经过实测验证;

  3. 只要启用了docker环境,那么与主机是什么系统就没有关系,确保docker内的操作按照以下文档来即可

  4. 涉及设备和验证:

  • HiSpark Wi-Fi IoT:一次全新建立docker环境编译轻量版成功

  • HiSpark AI Camera:一次全新建立docker环境编译小型版和标准版均成功

  • DAYU200:二次全新建立docker环境编译标准版均均成功

感谢:

  1. 李工做小白鼠反复测试验证,提供建议

  2. 连志安老师提供帮助指导

一、编译环境创建:使用docker

docker环境准备:

  • 核心:至少分配4核,更多更好

  • 内存:至少分配4G,更大更好

  • 磁盘:至少分配100g

运行镜像:【耗时较长,请耐心等待】

# 根据实际情况,切换到主目录,并使用openharmony目录作为工作目录cd ~mkdir openharmonycd openharmony
# 拉取最新openharmony编译环境docker镜像,镜像较大,拉取时间较长,请耐心等待docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
# 启动镜像docker run --name ohos_build -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
# 启动成功后,显示如下:root@4464960a58ab:/home/openharmony#
#输入 cat /etc/issue,回车,显示如下:root@4464960a58ab:/home/openharmony# cat /etc/issue Ubuntu 18.04.5 LTS 
 lroot@4464960a58ab:/home/openharmony#

(左右移动查看全部内容)

后续操作,都在docker环境内执行

  • 如退出或者重启过docker服务,可通过如下方式重新进入:

# 进入对应docker的bash环境: docker exec -it ohos_build bash#如上一步执行没有进入,那执行下一步: docker start ohos_build -i

(左右移动查看全部内容)

二、准备环境并获取源码:以下操作在docker环境内执行

设置时间:

apt updateapt-get install -y tzdata iputils-ping# 安装完成后,根据提示,设置为6.Asia、70.Shanghai

(左右移动查看全部内容)

设置ssh秘钥:

方式1:已在gitee设置过公钥【不清楚或者找不到个人私钥那就直接用方式2】

#方式1:如果你已经在主机上访问 https://gitee.com/profile/sshkeys 并设置过公钥#请将主机上该公钥对应的个人私钥(通常为用户根目录下的.ssh/id_rsa)的全部内容复制到docker中来#该个人私钥以-----BEGIN RSA PRIVATE KEY-----开头,以-----END RSA PRIVATE KEY-----结尾
#此处为docker环境内操作mkdir ~/.sshvim ~/.ssh/idrsa # 打开文件后,直接输入i,然后将复制的内容粘贴进来,再按ESC,再输入:wq!回车保存即可-----BEGIN RSA PRIVATE KEY-----【请将该公钥对应的个人秘钥idrsa的全部内容复制粘贴到~/.ssh/id_rsa这里】-----END RSA PRIVATE KEY-----
#保存后,设置其权限:chmod 0400 ~/.ssh/id_rsachmod 0600 ~/.ssh

(左右移动查看全部内容)

方式2:生成一个新的秘钥,可参考生成/添加SSH公钥 - Gitee官方指导

#方式2:你也可以直接生成一个新的秘钥生成#新的秘钥:用如下的rsa或者按照官方指导用ed25519均可,不用纠结ssh-keygen -t rsa
#生成后,设置其权限:chmod 0400 ~/.ssh/id_rsachmod 0600 ~/.ssh
请拷贝以下内容,将公钥(~/.sss/id_rsa.pub)给设置到 https://gitee.com/profile/sshkeys 这个页面cat ~/.ssh/id_rsa.pub

(左右移动查看全部内容)

验证ssh账户状态:

# 测试git账户:没错,就是 git@gitee.com ,不用改,也不能改ssh -T git@gitee.com
# 执行上述命令后,应显示如下信息,表示可以使用git@ssh;如提示yes/no,直接输入yes回车Hi 你在gitee的姓名! You've successfully authenticated, but GITEE.COM does not provide shell access.

(左右移动查看全部内容)

设置git:

# 设置gitapt-get install -y git git-lfsgit config --global user.name "你在gitee的用户名"git config --global user.email "你在gitee的邮箱名"git config --global credential.helper store

(左右移动查看全部内容)

安装repo:

# 安装repocurl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o /usr/local/bin/repochmod a+x /usr/local/bin/repopip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

(左右移动查看全部内容)

下载源码:【耗时较长,请耐心等待】

# 使用 /home.dist 为源码和编译工作目录,加快编译速度mkdir -p /home/dist/OpenHarmony-v3.1-Releasecd /home/dist/OpenHarmony-v3.1-Release
# 获取3.1 Release分支代码:拉取时间教程,请耐心等待repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Release --no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'
# 重复一遍,确保执行成功,没有失败repo sync -crepo forall -c 'git lfs pull'

(左右移动查看全部内容)

预编译工具包:【耗时较长,请耐心等待】

# 预编译工具包:下载和编译时间较长,请耐心等待./build/prebuilts_download.sh

(左右移动查看全部内容)

三、编译代码:以下操作在docker环境内执行【耗时较长,请耐心等待】

编译轻量版:

  • WiFi-IoT(Hi3861)- hispark_pegasus:

  • wifiiot_hispark_pegasus

# 执行后,上下按键,选择wifiiot_hispark_pegasushb set
# 执行编译:加 -f 参数,表示强制重新编译所有hb build 
# 编译完成,显示如下信息:[OHOS INFO] wifiiot_hispark_pegasus build success[OHOS INFO] cost time: 编译时间很短
# 编译完成后,刷机镜像文件位于:# out/hispark_pegasus/wifiiot_hispark_pegasus/   

(左右移动查看全部内容)

编译小型版:

  • Hi3516DV300-hispark_taurus:

  • ipcamera_hispark_taurus

# 执行后,上下按键,选择ipcamera_hispark_taurushb set
# 执行编译:加 -f 参数,表示强制重新编译所有hb build
# 编译完成,显示如下信息:[OHOS INFO] ipcamera_hispark_taurus build success[OHOS INFO] cost time: 编译时间不长
# 编译完成后,刷机镜像文件位于:# out/hispark_taurus/ipcamera_hispark_taurus/ 
# TODO:初次刷机后,需要设置启动参数# https://www.openharmony.cn:7780/pages/zh-cn/device/%E8%AE%BE%E5%A4%87%E5%BC%80%E5%8F%91%E6%96%87%E6%A1%A3/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/%E6%A0%87%E5%87%86%E7%B3%BB%E7%BB%9F%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8%EF%BC%88IDE%E6%96%B9%E5%BC%8F%EF%BC%89/%E8%BF%90%E8%A1%8C%20Hello%20World%E2%80%9D/Hi3516%E5%BC%80%E5%8F%91%E6%9D%BF/%E8%BF%90%E8%A1%8C/

(左右移动查看全部内容)

  • ipcamera_hispark_taurus_linux

# 执行后,上下按键,选择ipcamera_hispark_taurus_linuxhb set
# 执行编译:加 -f 参数,表示强制重新编译所有hb build 
# 编译完成,显示如下信息:[OHOS INFO] ipcamera_hispark_taurus_linux build success[OHOS INFO] cost time: 编译时间不长
# 编译完成后,刷机镜像文件位于:# out/hispark_taurus/ipcamera_hispark_taurus_linux/   

(左右移动查看全部内容)

编译标准版:编译过程较长,可能长达数小时

  • Hi3516dv300:

  • Hi3516DV300

# 执行编译脚本:如首次编译不成功,且不是下述错误,如出现MkImages类似错误,可考虑多次运行编译脚本(李工经验3~4次)./build.sh --product-name Hi3516DV300 --ccache
# 如编译失败,提示curl目录下的问题,则可以如下处理,然后继续编译:cd third_party/curl/ git stashcd ../../
# 编译完成,显示如下信息:[OHOS INFO] Hi3516DV300 build success[OHOS INFO] cost time: 编译时间很长
# 编译完成后,刷机镜像文件位于:# out/hi3516dv300/packages/phone/images/

(左右移动查看全部内容)

  • DAYU200:

  • rk3568:

# 执行编译脚本:如首次编译不成功,且不是下述错误,可考虑再次运行./build.sh --product-name rk3568 --ccache
# 如编译失败,提示curl目录下的问题,则可以如下处理,然后继续编译:cd third_party/curl/ git stashcd ../../
# 编译完成,显示如下信息:[OHOS INFO] rk3568 build success[OHOS INFO] cost time: 编译时间很长,作者环境初次4小时以上
# 编译完成后,刷机镜像文件位于:# out/rk3568/packages/phone/images/

(左右移动查看全部内容)

未完待续:后面的文章将会为大家详细讲解烧录过程以及体验过程~

原文标题:OpenHarmony 3.1 Release docker编译指南

文章出处:【微信公众号:HarmonyOS官方合作社区】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • macbook
    +关注

    关注

    0

    文章

    496

    浏览量

    41684
  • 编译环境
    +关注

    关注

    0

    文章

    12

    浏览量

    8552
  • Docker
    +关注

    关注

    0

    文章

    457

    浏览量

    11849

原文标题:OpenHarmony 3.1 Release docker编译指南

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    鸿蒙OpenHarmony威廉希尔官方网站 :【Docker编译环境

    OpenHarmony为开发者提供了两种Docker环境,以帮助开发者快速完成复杂的开发环境准备工作。
    的头像 发表于 05-11 09:47 1459次阅读
    鸿蒙OpenHarmony威廉希尔官方网站
:【<b class='flag-5'>Docker</b><b class='flag-5'>编译</b><b class='flag-5'>环境</b>】

    如何在Docker创建容器

    Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bar
    发表于 01-03 15:58

    Docker容器实现HarmonyOS编译环境(WifiIoT)--仅需3个步骤完成环境,1个步骤编译

    。简简单单3个步骤直接完成编译环境的搭建。也不需要理解和记忆什么命令,复制粘贴存好编译命令就完了。一次搭建,长期使用。概念说明:虽然前面大话说得很玄乎,其实还是有几个东西需要说明清楚的
    发表于 10-21 13:05

    《鸿蒙设备学习菜鸟指南》之【六、搭建编译环境

    :– Docker无忧包:编译环境已配好,安装后就可以使用啦• MacOS系统:– Docker无忧包:编译
    发表于 10-30 14:24

    docker编译遇到的坑

    前言:首先感谢一下乔帮主和群里面的李隆两位大佬的无私帮助,让我这个完全没有接触docker的小白能够使用docker编译鸿蒙的代码!!!正片:由于我电脑实在是太垃圾了,所以之前代码一直在腾讯云上
    发表于 11-04 13:51

    【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】搭建基于Linux的Docker开发环境

    后,再次使用checkEnv命令检查开发环境,安装正常情况下会有如下输出。 我们在buildtools目录下使用命令hmBuildStart执行首次编译,经过一段时间的编译后,会输出成功信息。 至此,基于Linux的
    发表于 01-23 10:07

    全志D1-H tina Docker 编译环境制作和使用

    d1 的 tina 环境由于工具链比较老旧, 很多开发者的机器上的环境没法正常使用所以,我写一篇使用 Docker 编译 tina 的文章,继续抛砖引玉,欢迎交流.准备工作* 安装好
    发表于 03-14 11:26

    OpenHarmony 3.1 Release docker编译指南

    IoT:一次全新建立docker环境编译轻量版成功HiSpark AI Camera:一次全新建立docker环境
    发表于 04-14 14:19

    介绍一下linux环境docker的使用流程

    。在这里,我们使用 RUN 指令拉取了 arm-gcc 工具链。推送镜像在本地推送镜像的方式不再介绍,在这里,我们使用 CI 的方式自动化完成 Docker 镜像的构建以及推送。搭建 CI创建
    发表于 04-27 15:03

    【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】+环境搭建2 docker环境搭建及编译代码

    ... re-0000001050769927]docker编译环境[/url]说明文档。一、Docker环境介绍(我用的独立
    发表于 05-29 17:16

    OpenHarmony Docker移植实践

    swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0 此Docker编译
    发表于 05-18 10:03

    【Milk-V Duo 开发板免费体验】2、SDK编译环境Docker镜像制作教程

    写) walker2048/duo_env 参数: 告诉docker使用哪个镜像来创建容器。 4、进入容器后,直接运行./build_milkv.sh就会开始编译SDK了。 首次编译
    发表于 08-24 20:23

    使用Docker容器编译OK3568源代码

    经常编译系统,又免不了搭建各种开发环境,所以为了不对开发主机的环境有影响,使用Docker容器编译代码是比较方便和省心的方式。
    发表于 10-19 10:36

    从零开始学习制作、以及使用Tina的Docker编译镜像

    学习制作、以及使用Tina的Docker编译镜像
    的头像 发表于 08-28 11:45 2308次阅读
    从零开始学习制作、以及使用Tina的<b class='flag-5'>Docker</b><b class='flag-5'>编译</b>镜像

    OKT507-C_Docker编译环境指导_V1.0

    飞凌嵌入式OKT507-C开发板Docker编译环境指导
    发表于 08-15 17:24 10次下载