[文章]

【HarmonyOS HiSpark Wi-Fi IoT 套件试用连连载】搭建鸿蒙编译环境(VMware+Linux)

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

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

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

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

安装VM+linux+VMware Tools我在自己的另一篇文章中详细讲解了怎么安装VM+Linux。
下载安装包
  • VM虚拟机
  • linux
安装VM
  • 解压
  • 以管理员身份运行
  • 不断下一步



  • 取消这两个勾选
  • 继续下一步

  • 安装结束后,点击 许可证
  • 填入注册码
    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
  • 完成

安装Linux系统ubuntu
  • 在桌面找到【VMware Workstation Pro】,双击打开。
  • 点击【创建新的虚拟机】。

  • 选择【典型】,点击【下一步】。

  • 选择【稍后安装操作系统】,点击【下一步】。

  • 选择【稍后安装操作系统】,点击【下一步】。

  • 选择【Linux】,版本选择【ubuntu 64位】,点击【下一步】。

  • 虚拟机名称输入【ubuntu 64位】,点击【浏览】更改系统的安装位置,建议安装在出C盘之外的磁盘,可在F盘或其他磁盘新建【ubuntu】文件夹,点击【下一步】。

  • 点击【下一步】。

  • 点击【自定义硬件】。

  • 点击【内存】,设置为【2048MB】。

  • 选择【新CD/DVD(SATA)】后选择【使用ISO镜像文件】,点击【浏览】找到并选择解压后【ubuntu】文件夹里面的【ubuntu-20.04.1-desktop-amd64】这个镜像。

  • 点击【网络适配器】,网络连接选择【仅主机模式】。

  • 选中【USB控制器】,点击【移除】。

  • 选中【打印机】,点击【移除】然后点击【关闭】



  • 点击【完成】。’

  • 选中【ubuntu 64位】,点击【开启此虚拟机】之后不要有任何操作等待下一步的出现。

  • 选择【中文(简体)】,点击【安装Ubuntu】。

  • 点击【继续】。






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

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

21. 安装中。

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

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

下载安装VMware ToolsVMware Tools的功能主要有两点:1、可以在本机和虚拟机之间拖拽文件
2、是虚拟机的屏幕充满VMware Workstations的窗口

步骤这里以Ubuntu 16.04为例,其他的步骤都大致相同
  • 选择“虚拟机”->“安装VMware Tools”
  • 等一会儿之后,在桌面或者文件里就会出现一个VMware Tools的磁盘驱动,打开终端把压缩文件解压到某个路径
  • 解压完之后,进解压路径,就会看VMware Tools的安装包(上图安装包左边的文件夹)
  • 进入安装包,打开终端,执行安装程序



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

    也可以在本机和虚拟机之间直接拖拽文件了
  • 最后,解压的VMware Tools的安装文件不想要的话,可以删除,不会影响正常的使用
构建编译环境将Linux shell改为bash查看shell是否为bash,在终端运行如下命令
ls -l /bin/sh
  • 1
如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改:
方法一:在终端运行如下命令,然后选择 no。
sudo dpkg-reconfigure dash
  • 1
方法二:先删除sh,再创建软链接。
sudo rm -RF /bin/shsudo ln -s /bin/bash /bin/sh
  • 1
  • 2
确定Python安装好后,运行如下命令,将python路径链接到"/usr/bin/python"。which python3.8cd /usr/bin && sudo rm python && sudo ln -s /usr/local/bin/python3.8 python && python --version
  • 1
  • 2
安装并升级Python包管理工具(pip3),任选如下一种方式。命令行方式:
sudo apt-get install python3-setuptools python3-pip -ysudo pip3 install --upgrade pip
  • 1
  • 2
安装包方式:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pypython get-pip.py
  • 1
  • 2
运行如下命令,安装python模块setuptools。pip3 install setuptools
  • 1
安装GUI menuconfig工具(Kconfiglib),建议安装Kconfiglib 13.2.0+版本,任选如下一种方式。命令行方式:
sudo pip3 install kconfiglib
  • 1
安装包方式:
下载.whl文件(例如:kconfiglib-13.2.0-py2.py3-none-any.whl)。
下载路径:“https://pypi.org/project/kconfiglib#files”
运行如下命令,安装.whl文件。
sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl
  • 1
安装pycryptodome,任选如下一种方式。安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。安装ecdsa依赖six,请先安装six,再安装ecdsa。
命令行方式:
sudo pip3 install pycryptodome
  • 1
安装包方式:
下载.whl文件(例如:pycryptodome-3.7.3-cp37-cp37m-manylinux1_x86_64.whl)。
下载路径:“https://pypi.org/project/pycryptodome/#files”。
运行如下命令,安装.whl文件。
sudo pip3 install pycryptodome-3.7.3-cp37-cp37m-manylinux1_x86_64.whl
  • 1


安装ecdsa,任选如下一种方式。命令行方式:
sudo pip3 install ecdsa
  • 1
安装包方式:
下载.whl文件(例如:ecdsa-0.14.1-py2.py3-none-any.whl)。
下载路径:“https://pypi.org/project/ecdsa/#files”
运行如下命令,安装.whl文件。
sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl
  • 1
安装Scons打开Linux编译服务器终端。
运行如下命令,安装SCons安装包。
sudo apt-get install scons -y
  • 1
如果软件源中无法找到安装包,请按以下步骤处理:
下载源码包(下载路径:“ https://scons.org/pages/download.html ”,推荐SCons版本是3.0.4+)。
解压源码包到任意目录。
安装源码包:进入解压目录,运行如下命令:
sudo python3 setup.py install
  • 1
运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。
scons -v
  • 1


安装编译工具环境须知如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装gn、ninja、gcc_riscv32编译工具。
(推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装gn、ninja、gcc_riscv32编译工具。
安装gn、ninja、gcc_riscv32编译工具时,请确保编译工具的环境变量路径唯一。
官方流程安装gn官网
打开Linux编译服务器终端。
下载gn工具。
解压gn安装包至~/gn路径下。
tar -xvf gn.1523.tar -C ~/
  • 1
设置环境变量。
vim ~/.bashrc
  • 1
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/gn:$PATH
  • 1
生效环境变量。
source ~/.bashrc
  • 1
安装ninja打开Linux编译服务器终端。
下载ninja工具。
解压ninja安装包至~/ninja路径下。
tar -xvf ninja.1.9.0.tar -C ~/
  • 1
设置环境变量。
vim ~/.bashrc
  • 1
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/ninja:$PATH
  • 1
生效环境变量。
source ~/.bashrc
  • 1
安装gcc_riscv32(WLAN模组类编译工具链)须知
Hi3861平台仅支持使用libgcc运行时库的静态链接,不建议开发者使用libgcc运行时库的动态链接,会导致商业分发时被GPL V3污染。
打开Linux编译服务器终端。
下载gcc_riscv32工具。
解压gcc_riscv32安装包至~/gcc_riscv32路径下。
`tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~`/
  • 1
设置环境变量
vim ~/.bashrc
  • 1
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/gcc_riscv32/bin:$PATH
  • 1
生效环境变量。
source ~/.bashrc
  • 1
Shell命令行中输入如下命令,如果能正确显示编译器版本号,表明编译器安装成功。riscv32-unknown-elf-gcc -v
  • 1

整合集体解压
配置环境变量打开设置环境变量
vim ~/.bashrc
  • 1
在最下面添加这几行
export PATH=~/gn:$PATHexport PATH=~/ninja:$PATHexport PATH=~/gcc_riscv32/bin:$PATH
  • 1
  • 2
  • 3
保存
source ~/.bashrc
  • 1
现在可以查看这些环境变量
echo $PATH
  • 1
  • 2


编译鸿蒙源码获取鸿蒙源码开发者需要在Linux服务器上下载一套源代码,获取源码(下载链接)。更多源码获取方式,请见源码获取。
解压在Linux终端中输入
tar -xzvf code-1.0.tar.gz
  • 1
编译在终端上输入
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
出现
/usr/bin/python
  • 1
输入
python -v
出现
python 3.8.5
之后就可以运行成功了
本质就是把bin里面的python换成3.8的软连接
0
2020-10-25 09:57:38   评论 分享淘帖
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发表新帖