OpenHarmony开源社区
直播中

HonestQiao

8年用户 520经验值
擅长:嵌入式技术
私信 关注
[经验]

OpenHarmony 3.1 Release docker编译指南

引用: Author: HonestQiao    Date: 2022-04-12   Update:2022-04-13
引用: 说明:
  • 作者环境:主机MacBook Pro 2015(16G),Docker Desktop for Mac(官方)
  • 以下所有操作过程,经过实测验证;
  • 只要启用了docker环境,那么与主机是什么系统就没有关系,确保docker内的操作按照以下文档来即可
  • 涉及设备和验证:
    • HiSpark Wi-Fi IoT:一次全新建立docker环境编译轻量版成功
    • HiSpark AI Camera:一次全新建立docker环境编译小型版和标准版均成功
    • DAYU200:二次全新建立docker环境编译标准版均均成功
感谢:
  • 李工做小白鼠反复测试验证,提供建议
  • 连志安老师提供帮助指导
  • 一、编译环境创建:使用docker
  • docker环境准备:
    • 核心:至少分配4核,更多更好
    • 内存:至少分配4G,更大更好
    • 磁盘:至少分配100G
  • 运行镜像:【耗时较长,请耐心等待】
    1. # 根据实际情况,切换到主目录,并使用openharmony目录作为工作目录
    2. cd ~
    3. mkdir openharmony
    4. cd openharmony

    5. # 拉取最新openharmony编译环境docker镜像,镜像较大,拉取时间较长,请耐心等待
    6. docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0

    7. # 启动镜像
    8. docker run --name ohos_build -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0

    9. # 启动成功后,显示如下:
    10. root@4464960a58ab:/home/openharmony#

    11. #输入 cat /etc/issue,回车,显示如下:
    12. root@4464960a58ab:/home/openharmony# cat /etc/issue Ubuntu 18.04.5 LTS n l

    13. root@4464960a58ab:/home/openharmony#

  • 后续操作,都在docker环境内执行
    • 如退出或者重启过docker服务,可通过如下方式重新进入:
      1. # 进入对应docker的bash环境:
      2.   docker exec -it ohos_build bash
      3. #如上一步执行没有进入,那执行下一步:
      4.   docker start ohos_build -i

二、准备环境并获取源码:以下操作在docker环境内执行
  • 设置时间:
    1. apt update
    2. apt-get install -y tzdata iputils-ping
    3. # 安装完成后,根据提示,设置为6.Asia、70.Shanghai

  • 设置ssh秘钥:

      方式1:已在gitee设置过公钥【不清楚或者找不到个人私钥那就直接用方式2】
    1. #方式1:如果你已经在主机上访问 https://gitee.com/profile/sshkeys 并设置过公钥
    2. #请将主机上该公钥对应的个人私钥(通常为用户根目录下的.ssh/id_rsa)的全部内容复制到docker中来
    3. #该个人私钥以-----BEGIN RSA PRIVATE KEY-----开头,以-----END RSA PRIVATE KEY-----结尾

    4. #此处为docker环境内操作
    5. mkdir ~/.ssh
    6. vim ~/.ssh/idrsa # 打开文件后,直接输入i,然后将复制的内容粘贴进来,再按ESC,再输入:wq!回车保存即可
    7. -----BEGIN RSA PRIVATE KEY-----
    8. 【请将该公钥对应的个人秘钥idrsa的全部内容复制粘贴到~/.ssh/id_rsa这里】
    9. -----END RSA PRIVATE KEY-----

    10. #保存后,设置其权限:
    11. chmod 0400 ~/.ssh/id_rsa
    12. chmod 0600 ~/.ssh

    • 方式2:生成一个新的秘钥,可参考 生成/添加SSH公钥 - Gitee官方指导
      1. #方式2:你也可以直接生成一个新的秘钥生成
      2. #新的秘钥:用如下的rsa或者按照官方指导用ed25519均可,不用纠结
      3. ssh-keygen -t rsa

      4. #生成后,设置其权限:
      5. chmod 0400 ~/.ssh/id_rsa
      6. chmod 0600 ~/.ssh

      7. 请拷贝以下内容,将公钥(~/.sss/id_rsa.pub)给设置到 https://gitee.com/profile/sshkeys 这个页面
      8. cat ~/.ssh/id_rsa.pub


    • 验证ssh账户状态
      1. # 测试git账户:没错,就是 git@gitee.com ,不用改,也不能改
      2. ssh -T git@gitee.com

      3. # 执行上述命令后,应显示如下信息,表示可以使用git@ssh;如提示yes/no,直接输入yes回车
      4. Hi 你在gitee的姓名! You've successfully authenticated, but GITEE.COM does not provide shell access.

  • 设置git:
    1. # 设置git
    2. apt-get install -y git git-lfs
    3. git config --global user.name "你在gitee的用户名"
    4. git config --global user.email "你在gitee的邮箱名"
    5. git config --global credential.helper store

  • 安装repo:
    1. # 安装repo
    2. curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o /usr/local/bin/repo chmod a+x /usr/local/bin/repo
    3. pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

  • 下载源码:【耗时较长,请耐心等待】
    1. # 使用 /home.dist 为源码和编译工作目录,加快编译速度
    2. mkdir -p /home/dist/OpenHarmony-v3.1-Release
    3. cd /home/dist/OpenHarmony-v3.1-Release

    4. # 获取3.1 Release分支代码:拉取时间教程,请耐心等待
    5. repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Release --no-repo-verify
    6. repo sync -c
    7. repo forall -c 'git lfs pull'

    8. # 重复一遍,确保执行成功,没有失败
    9. repo sync -c repo forall -c 'git lfs pull'

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

三、编译代码:以下操作在docker环境内执行【耗时较长,请耐心等待】
  • 编译轻量版:
    • WiFi-IoT(Hi3861)- hispark_pegasus:
    • wifiiothisparkpegasus
      1. # 执行后,上下按键,选择wifiiothisparkpegasus
      2. hb set

      3. # 执行编译:加 -f 参数,表示强制重新编译所有
      4. hb build

      5. # 编译完成,显示如下信息:
      6. [OHOS INFO] wifiiothisparkpegasus build success
      7. [OHOS INFO] cost time: 编译时间很短

      8. # 编译完成后,刷机镜像文件位于:
      9. # out/hisparkpegasus/wifiiothispark_pegasus/

  • 编译小型版:
    • Hi3516DV300-hispark_taurus:
    • ipcamerahisparktaurus
      1. # 执⾏后,上下按键,选择ipcamera_hispark_taurus
      2. hb set

      3. # 执⾏编译:加 -f 参数,表示强制重新编译所有
      4. hb build

      5. # 编译完成,显示如下信息:
      6. [OHOS INFO] ipcamera_hispark_taurus build success
      7. [OHOS INFO] cost time: 编译时间不⻓

      8. # 编译完成后,刷机镜像⽂件位于:
      9. # out/hispark_taurus/ipcamera_hispark_taurus/

      10. # TODO:初次刷机后,需要设置启动参数
      11. #https:/%ww+.openharmony.cn:7780/pages/zhcn/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/

    • ipcamerahisparktaurus_linux
      1. # 执⾏后,上下按键,选择ipcamera_hispark_taurus_linux
      2. hb set

      3. # 执⾏编译:加 -f 参数,表示强制重新编译所有
      4. hb build

      5. # 编译完成,显示如下信息:
      6. [OHOS INFO] ipcamera_hispark_taurus_linux build success
      7. [OHOS INFO] cost time: 编译时间不⻓

      8. # 编译完成后,刷机镜像⽂件位于:
      9. # out/hispark_taurus/ipcamera_hispark_taurus_linux/

  • 编译标准版:编译过程较长,可能长达数小时
    • Hi3516dv300:
    • Hi3516DV300
      1. # 执⾏编译脚本:如⾸次编译不成功,且不是下述错误,如出现MkImages类似错误,可考虑多次运⾏编
      2. 译脚本(李⼯经验3~4次)
      3. ./build.sh -#product-name Hi3516DV300 -#ccache

      4. # 如编译失败,提示curl⽬录下的问题,则可以如下处理,然后继续编译:
      5. cd third_party/curl/
      6. git stash
      7. cd .-/.-/

      8. # 编译完成,显示如下信息:
      9. [OHOS INFO] Hi3516DV300 build success
      10. [OHOS INFO] cost time: 编译时间很⻓

      11. # 编译完成后,刷机镜像⽂件位于:
      12. # out/hi3516dv300/packages/phone/images/

    • DAYU200:
    • rk3568:
      1. # 执⾏编译脚本:如⾸次编译不成功,且不是下述错误,可考虑再次运⾏
      2. ./build.sh -#product-name rk3568 -#ccache

      3. # 如编译失败,提示curl⽬录下的问题,则可以如下处理,然后继续编译:
      4. cd third_party/curl/
      5. git stash
      6. cd .-/.-/

      7. # 编译完成,显示如下信息:
      8. [OHOS INFO] rk3568 build success
      9. [OHOS INFO] cost time: 编译时间很⻓,作者环境初次4⼩时以上

      10. # 编译完成后,刷机镜像⽂件位于:
      11. # out/rk3568/packages/phone/images/

四、烧录:未完待续五、体验:未完待续
OpenHarmony 3.1 Release 编译_烧录_体验.pdf (101.91 KB)
(下载次数: 6, 2022-4-14 14:18 上传)

随时更新,烧录和体验待更新!

回帖(1)

一曲作罢

2022-4-15 10:26:24
太棒了,感谢老师分享
举报

更多回帖

发帖
×
20
完善资料,
赚取积分