#DAYU200体验官# OpenHarmony 3.1 Release docker编译指南 原创 精华

HonestQiao
发布于 2022-4-14 14:24
浏览
7收藏

OpenHarmony 3.1 Release docker编译指南

Author: HonestQiao Date: 2022-04-12 Update:2022-04-13

说明:

  1. 作者环境:主机MacBook Pro 2015(16G),Docker Desktop for Mac(官方)
  2. 以下所有操作过程,经过实测验证;
  3. 只要启用了docker环境,那么与主机是什么系统就没有关系,确保docker内的操作按照以下文档来即可
  4. 涉及设备和验证:
    1. HiSpark Wi-Fi IoT:一次全新建立docker环境编译轻量版成功
    2. HiSpark AI Camera:一次全新建立docker环境编译小型版和标准版均成功
    3. DAYU200:二次全新建立docker环境编译标准版均均成功

感谢:

  1. 李工做小白鼠反复测试验证,提供建议
  2. 连志安老师提供帮助指导

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

  • docker环境准备:

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

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

    • 磁盘:至少分配100G

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

    # 根据实际情况,切换到主目录,并使用openharmony目录作为工作目录
    cd ~
    mkdir openharmony
    cd 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 \n \l
    
    root@4464960a58ab:/home/openharmony#
    
  • 后续操作,都在docker环境内执行

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

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

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

  • 设置时间:

    apt update
    apt-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 ~/.ssh
    vim ~/.ssh/id_rsa # 打开文件后,直接输入i,然后将复制的内容粘贴进来,再按ESC,再输入:wq!回车保存即可
    -----BEGIN RSA PRIVATE KEY-----
    【请将该公钥对应的个人秘钥id_rsa的全部内容复制粘贴到~/.ssh/id_rsa这里】
    -----END RSA PRIVATE KEY-----
    
    #保存后,设置其权限:
    chmod 0400 ~/.ssh/id_rsa
    chmod 0600 ~/.ssh
    
    • 方式2:生成一个新的秘钥,可参考 生成/添加SSH公钥 - Gitee官方指导

      # 方式2:你也可以直接生成一个新的秘钥
      # 生成新的秘钥:用如下的rsa或者按照官方指导用ed25519均可,不用纠结
      ssh-keygen -t rsa
      
      # 生成后,设置其权限:
      chmod 0400 ~/.ssh/id_rsa
      chmod 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:

    # 设置git
    apt-get install -y git git-lfs
    git config --global user.name "你在gitee的用户名"
    git config --global user.email "你在gitee的邮箱名"
    git config --global credential.helper store
    
  • 安装repo:

    # 安装repo
    curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o /usr/local/bin/repo
    chmod a+x /usr/local/bin/repo
    pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
    
  • 下载源码:【耗时较长,请耐心等待】

    # 使用 /home.dist 为源码和编译工作目录,加快编译速度
    mkdir -p /home/dist/OpenHarmony-v3.1-Release
    cd /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-verify
    repo sync -c
    repo forall -c 'git lfs pull'
    
    # 重复一遍,确保执行成功,没有失败
    repo sync -c
    repo forall -c 'git lfs pull'
    
  • 预编译工具包:【耗时较长,请耐心等待】

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

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

  • 编译轻量版:

    • WiFi-IoT(Hi3861)- hispark_pegasus:

      • wifiiot_hispark_pegasus

        # 执行后,上下按键,选择wifiiot_hispark_pegasus
        hb 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_taurus
        hb 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_linux
        hb 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 stash
        cd ../../
        
        # 编译完成,显示如下信息:
        [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 stash
        cd ../../
        
        # 编译完成,显示如下信息:
        [OHOS INFO] rk3568 build success
        [OHOS INFO] cost time: 编译时间很长,作者环境初次4小时以上
        
        # 编译完成后,刷机镜像文件位于:
        # out/rk3568/packages/phone/images/
        

四、烧录:未完待续

五、体验:未完待续

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

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
OpenHarmony 3.1 Release 编译.pdf 101.91K 189次下载
已于2022-11-30 14:32:50修改
11
收藏 7
回复
举报
3条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

第一时间看到老师的文章,我马上前排学习!

回复
2022-4-14 14:33:55
程序员PGone
程序员PGone

乔老师是我大哥,OpenHarmony是我最爱,马上安排学习!

回复
2022-4-14 17:12:44
qq5f486e08b52f1
qq5f486e08b52f1

请问一下单步编译rk3568  kernel 是什么命令呢?要是修改kernel 修改哪里的呢?out、src_tmp 里的么?

回复
2022-6-28 14:52:51
回复
    相关推荐