当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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/352262.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大学课设项目,Windows端基于UDP的网络聊天程序的服务端和客户端

文章目录 前言项目需求介绍一、服务端1.对Udp套接字进行一个封装2. UdpServer的编写3. Task.h4.protocol.h的编写5.线程池的编写6.main.cc 二、客户端1. Socket.h2.protocol.h3.UdpClient4.menu.h5.main.cpp 三、运行图 前言 本次项目可以作为之前内容的一个扩展,学…

《数据安全产品及服务购买决策参考》

“新全球化”下的数据安全威胁态势与挑战 随着中国企业数字化转型和数字经济的高速发展,数据要素和数据安全的战略价值正不断提升。 同时,在“脱钩”与“新全球化”的全球政治经济博弈中,中国作为全球重要的数据安全市场之一,其…

LeetCode esay mid 记录

1486. 数组异或操作 感觉一般也用不到 emmm 灵茶山艾府传送门 推导过程可以结合官网部分观看 重点由两部分的结合 将特定部分转换为常见部分 0到n的异或和表示 2595. 奇偶位数 0x555是十六进制数,转换为二进制为 0101 0101 0101 class Solution {public int[…

90. 子集 II

90. 子集 II 原题链接:完成情况:解题思路:参考代码:_90子集II_递归法求子集_90子集II_迭代法求子集 错误经验吸取 原题链接: 90. 子集 II https://leetcode.cn/problems/subsets-ii/ 完成情况: 解题思路…

代码解读 | Hybrid Transformers for Music Source Separation[07]

一、背景 0、Hybrid Transformer 论文解读 1、代码复现|Demucs Music Source Separation_demucs架构原理-CSDN博客 2、Hybrid Transformer 各个模块对应的代码具体在工程的哪个地方 3、Hybrid Transformer 各个模块的底层到底是个啥(初步感受)&#xff1…

Vue48-ref属性

一、需求:操作DOM元素 1-1、使用原生的id属性 不太好! 1-2、使用 ref属性 原生HTML中,用id属性给元素打标识,vue里面用ref属性。 给哪个元素加了ref属性,vc实例对象就收集哪个元素!!&#xff0…

WebSocket 详解--spring boot简单使用案例

一、什么是WebSocket WebSocket 是一种网络通信协议,专为在单个 TCP 连接上进行全双工通信而设计。WebSocket 允许客户端和服务器之间的消息能够实时双向传输。这与传统的 HTTP 请求-响应模式有很大的不同。 二、WebSocket 的关键特性 双向通信:WebSocke…

Novartis诺华制药社招综合能力性格动机问卷入职测评笔试题库答案及包过助攻

【华东同舟求职】由资深各行业从业者建立的一站式人才服务网络平台,现阶段目标是“提升全市场各行业岗位信息的流动性和透明度”。我们接受众多行业机构的直接委托发布,并尽力通过各种方法搜寻高价值岗位信息。事实上,我们以发现不为人知的优…

网站改成HTTPS方法

网站改成HTTPS只要网站没有特殊性的要求,绝大部分网站很轻松的就可以完成,尤其是CMS类似的网站系统或者自助搭建的网站(比如:这种网站可以在网站后台一次性安装并且生效)。 基本要求 将网站改成HTTPS有2个前提&#…

HQChart实战教程73-仿tradingview指标MACD

HQChart实战教程73-仿tradingview指标MACD MACD![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/84d180b5620940f6b9fe08c6f10eb0f3.png)麦语法脚本实心MACD指标脚本效果 空心MACD指标脚本效果图 自定义指标添加到系统指标里HQChart插件源码地址 MACD tradingview中…

智能不锈钢氮气柜温湿度氧含量控制介绍

智能不锈钢氮气柜通过集成精密的温湿度和氧含量控制系统,确保内部环境稳定在适宜存储敏感物料的条件。具体实现方式如下: 温度控制:智能氮气柜通常配备有精确的温度传感器以及加热或冷却系统。当内部温度偏离设定值时,系统会自动启…

ue5创建地图瓦片

先在虚幻商城下载免费的paperzd插件,并启用。 导入资源后,先通过应用paper2d纹理资源,将去掉导入ue时产生的边缘模糊,再点击下面的创建瓦片集, 打开瓦片集,发现选中不对, 改变瓦片大小为16*…

Nature 苏浩团队发表创新人工智能“仿真中学习”框架,实现外骨骼的智能性和通用性

北京时间2024年6月12日23时,美国北卡罗来纳州立大学与北卡罗来纳大学教堂山分校的苏浩团队在《自然》(Nature)上发表了一篇关于机器人和人工智能算法相结合服务人类的突破性研究论文,标题为“Experiment-free Exoskeleton Assista…

振动分析-3-基于Python的FFT幅值修正与能量修正

幅值修正与能量修正过程(更正) 参考什么是泄漏? 参考什么是窗函数? 参考使用python实现快速傅里叶变换(FFT) 参考频谱泄露和窗函数以及加窗后幅度修正和python代码实现 1 快速傅里叶变换(FFT) 离散傅里叶变换(discr…

configure: error: library ‘crypto‘ is required for OpenSSL

1、执行命令:./configure --prefix/opt/app/postgresql --with-openssl 报错: 2、解决办法 执行命令:yum install openssl-devel 重新执行 ./configure --prefix/opt/app/postgresql --with-openssl

Springboot 开发之任务调度框架(一)Quartz 简介

一、引言 常见的定时任务框架有 Quartz、elastic-job、xxl-job等等,本文主要介绍 Spirng Boot 集成 Quartz 定时任务框架。 二、Quartz 简介 Quartz 是一个功能强大且灵活的开源作业调度库,广泛用于 Java 应用中。它允许开发者创建复杂的调度任务&…

C++ 03 之 命名空间

game_kun.cpp #include "game_kun.h"void kun::atk() {cout << "吃鸡的攻击"<< endl; } game_lol.cpp #include "game_lol.h"void lol::atk() {cout << "lol的攻击"<< endl; } game_kun.h #include <…

Linux驱动开发-01配置开发环境

一、配置网络环境 使用桥接网卡时 Ubuntu 就是使用一个真实的网卡 &#xff1a;开发板的网线也连接到这个真实的网卡上&#xff0c;这样 Windows 、 Ubuntu 、开发板就都可以用过这个网卡互通了。 NAT 网卡&#xff1a; Ubuntu 通过它上网&#xff0c;只要 Windows 能上网&…

电商客服的得力助手:快捷回复软件

随着技术的进步&#xff0c;传统的人工打字已经逐渐不能满足快节奏的电商服务需求。如今&#xff0c;市面上涌现出众多快捷回复辅助软件&#xff0c;它们以高效率的特点&#xff0c;成为电商客服人员的必备工具。 作为一名拥有五年经验的电商客服&#xff0c;我深刻体会到了这类…

使用 cx_Oracle 在 Oracle 中等待记录并执行操作

问题背景&#xff1a; 在第一个 Python 项目中&#xff0c;需要等待记录被插入 Oracle 表中&#xff0c;一旦记录存在&#xff0c;就调用 Python 函数。目前使用 cx_Oracle 库&#xff0c;采用一种无限循环的方式来查询表。如果记录存在&#xff0c;就调用函数&#xff0c;然后…