当前位置: 首页 > news >正文

当OpenHarmony遇上OpenEuler

1、 安装openEuler

虚拟机、物理机器当然都可以安装。虚拟机又可以使用WSL、或者VMWare、VirtualBox虚拟机软件,如果需要安装最新版本,建议使用后者。当前WSL只支持OpenEuler 20.03。

1.1 WSL openEuler

WSL的安装都是程序员的必备技能了,不展开如何开启WSL了。打开Windows Store搜索openEuler,如下图所示,进行安装即可。

安装后,可以查看版本信息:

[ken@kenneth ~]$ cat /etc/os-release
NAME="openEuler"
VERSION="20.03 (LTS-SP1)"
ID="openEuler"
VERSION_ID="20.03"
PRETTY_NAME="openEuler 20.03 (LTS-SP1)"
ANSI_COLOR="0;31"

1.2 虚拟机安装

可以访问openEuler镜像服务器https://repo.huaweicloud.com/openeuler/,下载ISO文件,如https://repo.huaweicloud.com/openeuler/openEuler-21.09/ISO/x86_64/openEuler-21.09-everything-x86_64-dvd.iso。然后使用VMWare或者VirtualBox安装。本文以WSL openEuler为例,虚拟机安装也比较简单,不再展开。

安装服务器后,执行uname -a查看系统架构,根据架构下载不同的openEulerOS.repo到/etc/yum.repos.d/目录下,执行下述命令设置软件包镜像。

wget -O /etc/yum.repos.d/openEulerOS.repo https://repo.huaweicloud.com/repository/conf/openeuler_x86_64.repo
yum clean all   # 清除原有yum缓存。
yum makecache   #生成新的缓存。

这里就想放张图,比较喜欢华为云镜像服务器https://mirrors.huaweicloud.com,大家也可以访问试试。

2、准备编译OpenHarmony的软件环境

参考在Ubuntu编译服务器上编译OpenHarmony的软件环境,准备openEuler上的环境。主要参考文件为: https://gitee.com/openharmony/docs/blob/master/docker/Dockerfile,还有获取源代码文档页面。使用的openEuler版本就是WSL openEuler 20.03。

2.1 安装软件包

下面这些软件包对有些开发板的编译可能是不全的,需要另行安装些其他软件。⑴处命令会安装gcc、c++等开发相关的软件包。对于openEuler 20.03,安装的gcc版本为V7.3.0,版本有些低。如果有需要高版本gcc比如 gcc 9.3.0版本,建议使用更高版本的openEuler。

    sudo yum install curl wget -ysudo yum install vim -ysudo yum install openssh -ysudo yum install git -ysudo yum install dosfstools -ysudo yum install mtools -ysudo yum install scons -ysudo yum install make -ysudo yum install libffi-devel -ysudo yum install zip -ysudo yum install binutils -ysudo yum install bison -ysudo yum install flex -ysudo yum install bc -ysudo yum install doxygen -y
⑴  sudo yum groupinstall "Development Tools" -ysudo yum install ruby -y

2.2 安装工具软件

下面安装的工具软件中,部分工具软件对有些开发板是冗余,非必要的,都先安装下。首先wget获取软件压缩包,然后解压,最后在环境变量配置文件中进行增加。

	sudo mkdir -p /home/toolssudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/compiler/clang/10.0.1-62608/linux/llvm.tar.gzsudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tarsudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gzsudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tarsudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gzsudo wget -P /home/tools https://mirrors.huaweicloud.com/nodejs/v12.20.0/node-v12.20.0-linux-x64.tar.gzsudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/develop_tools/hmos_app_packing_tool.jarsudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/develop_tools/hapsigntoolv2.jarsudo tar xvf /home/tools/llvm.tar.gz -C /home/toolssudo tar xvf /home/tools/hc-gen-0.65-linux.tar -C /home/toolssudo tar xvf /home/tools/gcc_riscv32-linux-7.3.0.tar.gz -C /home/toolssudo tar xvf /home/tools/ninja.1.9.0.tar -C /home/toolssudo tar xvf /home/tools/gn-linux-x86-1717.tar.gz -C /home/toolssudo tar xvf /home/tools/node-v12.20.0-linux-x64.tar.gz -C /home/toolssed -i '$aexport PATH=/home/tools/llvm/bin:$PATH' ~/.bashrc sed -i '$aexport PATH=/home/tools/hc-gen:$PATH' ~/.bashrc sed -i '$aexport PATH=/home/tools/gcc_riscv32/bin:$PATH' ~/.bashrc sed -i '$aexport PATH=/home/tools/ninja:$PATH' ~/.bashrc sed -i '$aexport PATH=/home/tools/node-v12.20.0-linux-x64/bin:$PATH' ~/.bashrc sed -i '$aexport PATH=/home/tools:$PATH' ~/.bashrc sed -i '$aexport PATH=~/.local/bin:$PATH' ~/.bashrcsource ~/.bashrcrm -rf /home/tools/*.tarrm -rf /home/tools/*.gz

2.3 安装git-lfs

可以在站点https://gitee.com/mirrors/git-lfs获取git-lfs的源码,进行源码安装git-lfs,但是还需要安装Go等,环境准备复杂。我们这里使用现成的rpm文件来安装git-lfs,如下。

wget -O git-lfs-3.1.2-1.x86_64.rpm https://packagecloud.io/github/git-lfs/packages/fedora/35/git-lfs-3.1.2-1.x86_64.rpm/download.rpm
sudo yum install git-lfs-3.1.2-1.x86_64.rpm -y

2.4 安装交叉编译工具arm-none-eabi-gcc

下载、解压、加入环境变量配置文件,可以根据需要变更交叉编译工具的版本,此处使用的是gcc-arm-none-eabi-9-2020-q2。

wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2mkdir /home/tools/gcc-arm-none-eabi-9-2020-q2
tar xvf gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2 -C /home/tools/gcc-arm-none-eabi-9-2020-q2
sed -i '$aexport PATH=/home/tools/gcc-arm-none-eabi-9-2020-q2/gcc-arm-none-eabi-9-2020-q2-update/bin:$PATH' ~/.bashrc 
source ~/.bashrc 

2.5 安装Python

我们从源码安装Python,需要先安装openssl-devel软件包,否则可能会报“pip is configured with locations that require TLS/SSL, however the…”的错误。从华为云镜像下载Python源码压缩包,解压,配置、编译安装,然后创建软连接文件/usr/local/bin/python、/usr/local/bin/pip。

sudo yum install openssl-devel
wget https://repo.huaweicloud.com/python/3.9.9/Python-3.9.9.tgz
tar -zvf Python-3.9.9.tgz
cd Python-3.9.9
./configure --with-ssl -enable-optimizations
make -j
sudo make install
sudo ln -s /usr/local/bin/python3.9 /usr/local/bin/python
sudo ln -s /usr/local/bin/pip3 /usr/local/bin/pip

安装完毕配置下pypi镜像,创建文件~/.pip/pip.conf,打开vi编辑器。

mkdir ~/.pip/
vi ~/.pip/pip.conf

输入如下内容:

[global]
index-url = https://repo.huaweicloud.com/repository/pypi/simple
trusted-host = repo.huaweicloud.com
timeout = 120

根据提示,可以升级下pip版本:

/usr/local/bin/python3 -m pip install --upgrade pip

2.6 安装ccache

执行下述命令可以完成安装ccache,非最新版本。最新版本可以访问https://github.com/ccache/ccache/blob/master/doc/INSTALL.md,由于需要CMake、C++ 14,对编译环境要求较高,我们使用次新版本ccache-3.6,已经可以满足要求。

wget https://www.samba.org/ftp/ccache/ccache-3.6.tar.xz
tar xvf ccache-3.6.tar.xz
mkdir ../build-ccache
cd ../build-ccache
../ccache-3.6/configure 
# CFLAGS和CPPFLAGS修改参数: 
CFLAGS = -g -O3 -Wall -W -march=native
CPPFLAGS = -g -O3 -Wall -W -march=native
make -j`getconf _NPROCESSORS_ONLN`
sudo make install 

3、下载OpenHarmony代码

3.1 配置git和ssh key

执行下述命令,设置git用户和提交邮箱。

git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store

然后访问https://gitee.com/profile/sshkeys,设置SSH信息。使用下述命令生成SSH Key信息,然后复制到网页即可。

ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"  
cat ~/.ssh/id_ed25519.pub

添加SSH Key后,在终端(Terminal)中输入:

ssh -T git@gitee.com

首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You’ve successfully authenticated, but Gitee.com does not provide shell access. 内容,则证明添加成功。

3.2 安装码云repo工具

安装码云repo工具,执行下述命令即可。

curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > repo
sudo mv repo /usr/local/bin/repo
chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

3.3 获取代码

获取源码代码的目录如下。

mkdir openharmonycd openharmonyrepo init -u https://gitee.com/openharmony-sig/manifest.git -m devboard_asrmicro.xml --no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'

4、 编译OpenHarmony

以openharmony/vendor/bestechnic/display_demo为例进行编译。成功编译后,输入如下:

小结

本文先介绍了如何在openEuler WSL版本上安装必备的软件包,工具软件,然后下载OpenHarmony源代码并成功进行编译,感兴趣的可以自行尝试。

如果大家想更加深入的学习 OpenHarmony 开发的内容,不妨可以参考以下相关学习文档进行学习,助你快速提升自己:

OpenHarmony 开发环境搭建:https://qr18.cn/CgxrRy

《OpenHarmony源码解析》:https://qr18.cn/CgxrRy

  • 搭建开发环境
  • Windows 开发环境的搭建
  • Ubuntu 开发环境搭建
  • Linux 与 Windows 之间的文件共享
  • ……

系统架构分析:https://qr18.cn/CgxrRy

  • 构建子系统
  • 启动流程
  • 子系统
  • 分布式任务调度子系统
  • 分布式通信子系统
  • 驱动子系统
  • ……

OpenHarmony 设备开发学习手册:https://qr18.cn/CgxrRy

在这里插入图片描述

OpenHarmony面试题(内含参考答案):https://qr18.cn/CgxrRy

写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
  • 想要获取更多完整鸿蒙最新学习资源,请移步前往小编:https://qr21.cn/FV7h05

相关文章:

  • 元数据:数据的罗塞塔石碑
  • Pytorch环境配置的方法
  • eclipse maven打包报错: 致命错误: 在类路径或引导类路径中找不到程序包 java.lang的解决
  • MySQL 保姆级教程(七):用正则表达式进行搜索
  • 【Python】已解决报错:AttributeError: module ‘json‘ has no attribute ‘loads‘解决办法
  • mac免费的ntfs软件哪个好 MAC读取NTFS硬盘格式
  • 分数限制下,选好专业还是选好学校?
  • Databricks超10亿美元收购Tabular;Zilliz 推出 Milvus Lite ; 腾讯云支持Redis 7.0
  • 软考初级网络管理员__网络单选题
  • 黑龙江等保测评的流程和注意事项
  • 2023年全国大学生数学建模竞赛C题蔬菜类商品的自动定价与补货决策(含word论文和源代码资源)
  • 如何用多线程执行 unittest 测试用例实现方案
  • One能聊天接入百度千帆AppBuilder
  • 六西格玛助力便携式产品功耗大降:打造绿色节能新标杆!
  • Spring MVC详解(上)
  • @jsonView过滤属性
  • Codepen 每日精选(2018-3-25)
  • Consul Config 使用Git做版本控制的实现
  • docker容器内的网络抓包
  • git 常用命令
  • Mybatis初体验
  • SpringBoot 实战 (三) | 配置文件详解
  • 反思总结然后整装待发
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 浮动相关
  • 关于Java中分层中遇到的一些问题
  • 关于List、List?、ListObject的区别
  • 近期前端发展计划
  • 深度学习入门:10门免费线上课程推荐
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • #pragma pack(1)
  • (1)(1.9) MSP (version 4.2)
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (Java数据结构)ArrayList
  • (solr系列:一)使用tomcat部署solr服务
  • (搬运以学习)flask 上下文的实现
  • (翻译)terry crowley: 写给程序员
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (六)vue-router+UI组件库
  • (论文阅读30/100)Convolutional Pose Machines
  • (排序详解之 堆排序)
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)socket Aio demo
  • (转)大型网站架构演变和知识体系
  • .“空心村”成因分析及解决对策122344
  • .Net 8.0 新的变化
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .Net Core 中间件与过滤器
  • .NET DevOps 接入指南 | 1. GitLab 安装