OpenHarmony开源社区
直播中

lingxin-yuhe

12年用户 341经验值
擅长:嵌入式技术,处理器/DSP,接口/总线/驱动
私信 关注
[经验]

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

前言:docker环境以前没用过,华为云提供了docker的编译环境,拿来用。参考gitee上doc仓[url=https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/gettools-acquire.md#https://gitee.com/link?target=ht ... re-0000001050769927]docker编译环境[/url]说明文档。


一、Docker环境介绍(我用的独立Docker环境)
OpenHarmony为开发者提供了两种Docker环境,以帮助开发者快速完成复杂的开发环境准备工作。两种Docker环境及适用场景如下:
独立Docker环境:适用于直接基于Ubuntu、Windows操作系统平台进行版本编译的场景。
基于HPM的Docker环境:适用于使用HPM工具进行发行版编译的场景。
表1 Docker镜像介绍
系统类型 运行平台 Docker镜像仓库 标签
轻量和小型系统/标准系统(独立Docker环境) Ubuntu/Windows swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker1.0.0   
轻量和小型系统(HPM Docker环境) Ubuntu/Windows swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker 0.0.3

二、环境准备
     进入docker engine官网,点击左侧在Ubuntu上安装docker引擎,如图1所示。
    docker0.png
图1 docker engine安装说明文档
主要安装Install using the repository下的步骤进行安装docker引擎,步骤及命令如下:
  • 首先设置库:
  1. sudo apt-get update
  2. sudo apt-get install
  3.     ca-certificates
  4.     curl
  5.     gnupg
  6.     lsb-release
  7. sudo mkdir -p /etc/apt/keyrings
  8. curl -fsSL [url]https://download.docker.com/linux/ubuntu/gpg[/url] | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  9. echo
  10.   "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] [url]https://download.docker.com/linux/ubuntu[/url]
  11.   $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 安装docker引擎:
  1. sudo apt-get update
  2. sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • 验证安装是否成功:
  1. sudo docker run hello-world
This command downloads a test image and runs it in a container. When the container runs, it prints a message and exits.意思是说这条命令会下载一个测试镜像并且在容器中运行,运行后会打印一个类似hello world的信息后就退出了。我运行如图2所示。
docker1.png
图2 测试docker引擎是否安装正确
2.获取OpenHarmony源码,可参考获取源码
   准备工作
    命令来生成 sshkey:
  1. ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
注意:这里的 xxxxx@xxxxx.com 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。
现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。
按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_ed25519.pub 文件内容,获取到你的 public key。
  1. cat ~/.ssh/id_ed25519.pub
  2. # ssh-ed25519 AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。
添加后,在终端(Terminal)中输入
  1. ssh -T [email]git@gitee.com[/email]
首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access. 内容,则证明添加成功。
  • 安装git客户端和git-lfs。
更新软件源:
  1. sudo apt-get update
通过以下命令安装:
  1. sudo apt-get install git git-lfs
  • 配置用户信息。
  1. git config --global user.name "yourname"
  2. git config --global user.email "your-email-address"
  3. git config --global credential.helper store
  • 执行如下命令安装码云repo工具。
  1. curl [url]https://gitee.com/oschina/repo/raw/fork_flow/repo-py3[/url] -o /usr/local/bin/repo  #如果没有权限,可下载至其他目录,并将其配置到环境变量中
  2. chmod a+x /usr/local/bin/repo
  3. pip3 install -i [url]https://repo.huaweicloud.com/repository/pypi/simple[/url] requests
第一步就有问题,bash: /usr/local/bin/repo: Permission denied没有权限,参考解决办法,进入root用户进行操作:
  1. su passwd root  #修改添加root用户及密码
获取源码通过repo + ssh下载(需注册公钥,请参考码云帮助中心)。
  1. repo init -u [email]git@gitee.com[/email]:openharmony/manifest.git -b master --no-repo-verify[indent]repo sync -c[/indent]repo forall -c 'git lfs pull'
repo sync -c 和repo forall -c 'git lfs pull'两个命令一定要运行到没有错误,100%完成,否则后面会出现问题。有问题再次运行,因网络等各种原因会出现中断或者下载不全的问题,多次运行。
三、docker环境中编译
OpenHarmony的Docker镜像托管在HuaweiCloud SWR上。开发者可以通过该镜像在很大程度上简化编译前的环境配置。下文将介绍
[url=https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/gettools-acquire.md#https://gitee.com/link?target=ht ... re-0000001050769927]具体使用步骤[/url]
  • 获取Docker镜像。

  1. docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0

  • 进入源码根目录执行如下命令,从而进入Docker构建环境。 ubuntu下执行:
  1. docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0
  • 设置编译路径,选择当前路径。
  1. hb set
hbset.png
图3 选择wifiiot_hispark_pegasus

  • 执行编译。
  1. hb build -f
结果如图4所示
build.png
图4 编译结果


更多回帖

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