前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搭建鸿蒙编译环境(VMware+Linux)

搭建鸿蒙编译环境(VMware+Linux)

作者头像
跋扈洋
发布2021-01-29 07:22:01
9.3K1
发布2021-01-29 07:22:01
举报
文章被收录于专栏:物联网知识

系统定义

  1. HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。
  2. 对消费者而言,HarmonyOS能够将生活场景中的各类终端进行能力整合,形成一个“超级虚拟终端”,可以实现不同的终端设备之间的快速连接、能力互助、资源共享,匹配合适的设备、提供流畅的全场景体验。
  3. 对应用开发者而言,HarmonyOS采用了多种分布式技术,使得应用程序的开发实现与不同终端设备的形态差异无关,降低了开发难度和成本。这能够让开发者聚焦上层业务逻辑,更加便捷、高效地开发应用。 对设备开发者而言,HarmonyOS采用了组件化的设计方案,可以根据设备的资源能力和业务特征进行灵活裁剪,满足不同形态的终端设备对于操作系统的要求。

技术特性硬件互助,资源共享分布式软总线

分布式软总线是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据。分布式软总线示意图见。

一次开发,多端部署

HarmonyOS提供了用户程序框架、Ability框架以及UI框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。一次开发、多端部署示意图见图

技术架构

HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。HarmonyOS技术架构如图

安装VM+linux+VMware Tools

我在自己的另一篇文章中详细讲解了怎么安装VM+Linux。

下载安装包

  1. VM虚拟机
  2. linux

安装VM

  1. 解压
  1. 以管理员身份运行
  1. 不断下一步
  1. 取消这两个勾选
  1. 继续下一步
  1. 安装结束后,点击 许可证
  1. 填入注册码 CG54H-D8D0H-H8DHY-C6X7X-N2KG6 AA702-81D8N-0817Y-75PQT-Q70A4

YC592-8VF55-M81AZ-FWW5T-WVRV0

FC78K-FKED6-H88LZ-0QPEE-QP8X6

UV1H2-AKWD2-H8EJZ-GGMEE-PCATD

AC310-0VG0P-M88CQ-YWY5Z-QPRG0

CG54H-D8D0H-H8DHY-C6X7X-N2KG6

ZC3WK-AFXEK-488JP-A7MQX-XL8YF

AC5XK-0ZD4H-088HP-9NQZV-ZG2R4

ZC5XK-A6E0M-080XQ-04ZZG-YF08D

ZY5H0-D3Y8K-M89EZ-AYPEG-MYUA8

  1. 完成

安装Linux系统ubuntu

  1. 在桌面找到【VMware Workstation Pro】,双击打开。
  2. 点击【创建新的虚拟机】。
  1. 选择【典型】,点击【下一步】。
  1. 选择【稍后安装操作系统】,点击【下一步】。
  1. 选择【稍后安装操作系统】,点击【下一步】。
  1. 选择【Linux】,版本选择【ubuntu 64位】,点击【下一步】。
  1. 虚拟机名称输入【ubuntu 64位】,点击【浏览】更改系统的安装位置,建议安装在除C盘之外的磁盘,可在F盘或其他磁盘新建【ubuntu】文件夹,点击【下一步】。
  1. 点击【下一步】。
  1. 点击【自定义硬件】。
  1. 点击【内存】,设置为【2048MB】。
  1. 选择【新CD/DVD(SATA)】后选择【使用ISO镜像文件】,点击【浏览】找到并选择解压后【ubuntu】文件夹里面的【ubuntu-20.04.1-desktop-amd64】这个镜像。
  1. 点击【网络适配器】,网络连接选择【仅主机模式】。
  1. 选中【USB控制器】,点击【移除】。
  1. 选中【打印机】,点击【移除】然后点击【关闭】
  1. 点击【完成】。’
  1. 选中【ubuntu 64位】,点击【开启此虚拟机】之后不要有任何操作等待下一步的出现。
  1. 选择【中文(简体)】,点击【安装Ubuntu】。
  1. 点击【继续】。

19. 这里默认就好(默认的是Shanghai)点击【继续】。

20. 创建用户账号,点击【继续】。

21. 安装中。

22. 安装完成,点击【现在重启】。

23. 点击键盘上的回车【Enter】键。 24. 重启后不要有任何操作。 25. 点击【用户名】。 26. 输入密码,点击【登录】。

27. 安装完成

下载安装VMware Tools

VMware Tools的功能主要有两点:

1、可以在本机和虚拟机之间拖拽文件 2、是虚拟机的屏幕充满VMware Workstations的窗口

步骤

这里以Ubuntu 16.04为例,其他的步骤都大致相同

  1. 选择“虚拟机”->“安装VMware Tools”
  1. 等一会儿之后,在桌面或者文件里就会出现一个VMware Tools的磁盘驱动,打开终端把压缩文件解压到某个路径
  1. 解压完之后,进解压路径,就会看VMware Tools的安装包(上图安装包左边的文件夹)
  2. 进入安装包,打开终端,执行安装程序

开始安装之后见到yes,就输入yes。其他的就一路回车按(Enter)直到出现“Enjoy, –the VMware team”如下图,就表示安装成功了,然后手动重启虚拟机,虚拟机的屏幕充满VMware Workstations的窗口。

  1. 若是手动重启虚拟机之后,虚拟机的屏幕没有充满VMware Workstations的窗口,也可以手动设置

也可以在本机和虚拟机之间直接拖拽文件了

  1. 最后,解压的VMware Tools的安装文件不想要的话,可以删除,不会影响正常的使用

构建编译环境

将Linux shell改为bash

查看shell是否为bash,在终端运行如下命令

代码语言:javascript
复制
ls -l /bin/sh
1

如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改:

方法一:在终端运行如下命令,然后选择 no。

代码语言:javascript
复制
sudo dpkg-reconfigure dash
1

方法二:先删除sh,再创建软链接。

代码语言:javascript
复制
sudo rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
12

确定Python安装好后,运行如下命令,将python路径链接到"/usr/bin/python"。

代码语言:javascript
复制
which python3.8
cd /usr/bin && sudo rm python && sudo ln -s /usr/local/bin/python3.8 python && python --version
12

安装并升级Python包管理工具(pip3),任选如下一种方式。

命令行方式:

代码语言:javascript
复制
sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip
12

安装包方式:

代码语言:javascript
复制
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
12

运行如下命令,安装python模块setuptools。

代码语言:javascript
复制
pip3 install setuptools
1

安装GUI menuconfig工具(Kconfiglib),建议安装Kconfiglib 13.2.0+版本,任选如下一种方式。

命令行方式:

代码语言:javascript
复制
sudo pip3 install kconfiglib
1

安装包方式: 下载.whl文件(例如:kconfiglib-13.2.0-py2.py3-none-any.whl)。 下载路径:“https://pypi.org/project/kconfiglib#files”

运行如下命令,安装.whl文件。

代码语言:javascript
复制
sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl
1

安装pycryptodome,任选如下一种方式。

安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。安装ecdsa依赖six,请先安装six,再安装ecdsa。 命令行方式:

代码语言:javascript
复制
sudo pip3 install pycryptodome
1

安装包方式: 下载.whl文件(例如:pycryptodome-3.7.3-cp37-cp37m-manylinux1_x86_64.whl)。 下载路径:“https://pypi.org/project/pycryptodome/#files”。

运行如下命令,安装.whl文件。

代码语言:javascript
复制
sudo pip3 install pycryptodome-3.7.3-cp37-cp37m-manylinux1_x86_64.whl
1

安装ecdsa,任选如下一种方式。

命令行方式:

代码语言:javascript
复制
sudo pip3 install ecdsa
1

安装包方式: 下载.whl文件(例如:ecdsa-0.14.1-py2.py3-none-any.whl)。 下载路径:“https://pypi.org/project/ecdsa/#files”

运行如下命令,安装.whl文件。

代码语言:javascript
复制
sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl
1

安装Scons

打开Linux编译服务器终端。 运行如下命令,安装SCons安装包。

代码语言:javascript
复制
sudo apt-get install scons -y
1

如果软件源中无法找到安装包,请按以下步骤处理:

下载源码包(下载路径:“ https://scons.org/pages/download.html ”,推荐SCons版本是3.0.4+)。 解压源码包到任意目录。 安装源码包:进入解压目录,运行如下命令:

代码语言:javascript
复制
sudo python3 setup.py install
1

运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。

代码语言:javascript
复制
scons -v
1

安装编译工具环境

须知

如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装gn、ninja、gcc_riscv32编译工具。

(推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装gn、ninja、gcc_riscv32编译工具。 安装gn、ninja、gcc_riscv32编译工具时,请确保编译工具的环境变量路径唯一。

官方流程

安装gn

官网 打开Linux编译服务器终端。 下载gn工具。 解压gn安装包至~/gn路径下。

代码语言:javascript
复制
tar -xvf gn.1523.tar -C ~/
1

设置环境变量。

代码语言:javascript
复制
vim ~/.bashrc
1

将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

代码语言:javascript
复制
export PATH=~/gn:$PATH
1

生效环境变量。

代码语言:javascript
复制
source ~/.bashrc
1

安装ninja

打开Linux编译服务器终端。 下载ninja工具。 解压ninja安装包至~/ninja路径下。

代码语言:javascript
复制
tar -xvf ninja.1.9.0.tar -C ~/
1

设置环境变量。

代码语言:javascript
复制
vim ~/.bashrc
1

将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

代码语言:javascript
复制
export PATH=~/ninja:$PATH
1

生效环境变量。

代码语言:javascript
复制
source ~/.bashrc
1

安装gcc_riscv32(WLAN模组类编译工具链)

须知 Hi3861平台仅支持使用libgcc运行时库的静态链接,不建议开发者使用libgcc运行时库的动态链接,会导致商业分发时被GPL V3污染。

打开Linux编译服务器终端。 下载gcc_riscv32工具。 解压gcc_riscv32安装包至~/gcc_riscv32路径下。

代码语言:javascript
复制
`tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~`/
1

设置环境变量

代码语言:javascript
复制
vim ~/.bashrc
1

将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

代码语言:javascript
复制
export PATH=~/gcc_riscv32/bin:$PATH
1

生效环境变量。

代码语言:javascript
复制
source ~/.bashrc
1

Shell命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。

代码语言:javascript
复制
riscv32-unknown-elf-gcc -v
1

整合

集体解压

配置环境变量

打开设置环境变量

代码语言:javascript
复制
vim ~/.bashrc
1

在最下面添加这几行

代码语言:javascript
复制
export PATH=~/gn:$PATH
export PATH=~/ninja:$PATH
export PATH=~/gcc_riscv32/bin:$PATH
123

保存

代码语言:javascript
复制
source ~/.bashrc
1

现在可以查看这些环境变量

代码语言:javascript
复制
echo $PATH

12

编译鸿蒙源码

获取鸿蒙源码

开发者需要在Linux服务器上下载一套源代码,获取源码(下载链接)。更多源码获取方式,请见源码获取。

解压

在Linux终端中输入

代码语言:javascript
复制
tar -xzvf code-1.0.tar.gz
1

编译

在终端上输入

代码语言:javascript
复制
python build.py wifiiot
1

DevEco编译

使用HarmonyOS IDE工具DevEco的终端工具连接Linux服务器。(HarmonyOS IDE工具DevEco集成了终端工具的能力,基本使用请参考指导文档) 依次点击“View”、“Terminal”,打开IDE终端工具。

在终端界面使用ssh命令连接linux服务器,如“ssh user@ipaddr”。

进入源码目录下,运行程序 输入 python build.py wifiiot

构建成功后,会在./out/wifiiot/路径中生成以下文件,至此编译构建流程结束。

出现的问题

出现这种问题的原因往往是python的软连接的问题 我的解决方法: 进入环境变量,删除错误的python环境配置,保存退出 然后 which python3 出现

代码语言:javascript
复制
 /usr/bin/python
1

输入 python -v 出现 python 3.8.5 之后就可以运行成功了 本质就是把bin里面的python换成3.8的软连接

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 物联网知识 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 系统定义
    • 技术特性硬件互助,资源共享分布式软总线
      • 一次开发,多端部署
      • 技术架构
      • 安装VM+linux+VMware Tools
        • 下载安装包
          • 安装VM
            • 安装Linux系统ubuntu
              • 下载安装VMware Tools
                • VMware Tools的功能主要有两点:
                • 步骤
                • 将Linux shell改为bash
                • 确定Python安装好后,运行如下命令,将python路径链接到"/usr/bin/python"。
                • 安装并升级Python包管理工具(pip3),任选如下一种方式。
                • 运行如下命令,安装python模块setuptools。
                • 安装GUI menuconfig工具(Kconfiglib),建议安装Kconfiglib 13.2.0+版本,任选如下一种方式。
                • 安装pycryptodome,任选如下一种方式。
                • 安装ecdsa,任选如下一种方式。
                • 安装Scons
            • 构建编译环境
              • 安装编译工具环境
                • 须知
              • 官方流程
                • 安装gn
                • 安装ninja
                • 安装gcc_riscv32(WLAN模组类编译工具链)
                • Shell命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。
              • 整合
                • 集体解压
                • 配置环境变量
            • 编译鸿蒙源码
              • 获取鸿蒙源码
                • 解压
                • 编译
              • DevEco编译
              • 出现的问题
              相关产品与服务
              云服务器
              云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档