openEuler 是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的另外一个的开源项目。2019 年 9 月华为宣布开源服务器操作系统 EulerOS,并命名为 openEuler。

openEuler 愿景是:通过社区合作,打造创新平台,构建支持多处理器架构、统一和开放的操作系统,推动软硬件应用生态繁荣发展。
openEuler 是基于 Linux 稳定内核发展起来的。Linux 常用发行版基本上可以分为三大系列:Redhat 系,Debian 系,Arch 系。
RedHat、Fedora、CentOS 属于 RedHat,Debian、Ubuntu 属于 Debian 系。同一系列的 linux 发行版安装界面、操作过程,都非常接近。
刚毕业的时候,捣鼓自己的机器安装双操作系统,安装过 Fedora,仅限于安装,后续的工作上还是使用 Ubuntu 较多。OpenHarmony 开源社区使用的也是 Ubuntu 编译器服务器。
这两天,正好尝试了使用 openEuler 编译下 OpenHarmony,简单又顺利,记录下过程,万一有人需要呢。
安装 openEuler
虚拟机、物理机器当然都可以安装。虚拟机又可以使用 WSL、或者 VMWare、VirtualBox 虚拟机软件,如果需要安装最新版本,建议使用后者。当前 WSL 只支持 openEuler 20.03。
①WSL 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"
②虚拟机安装
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
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,大家也可以访问试试。

准备编译 OpenHarmony 的软件环境
主要参考文件为:
https://gitee.com/openharmony/docs/blob/master/docker/Dockerfile
①安装软件包
如果有需要高版本 gcc 比如 gcc 9.3.0 版本,建议使用更高版本的 openEuler。
sudo yum install curl wget -y
sudo yum install vim -y
sudo yum install openssh -y
sudo yum install git -y
sudo yum install dosfstools -y
sudo yum install mtools -y
sudo yum install scons -y
sudo yum install make -y
sudo yum install libffi-devel -y
sudo yum install zip -y
sudo yum install binutils -y
sudo yum install bison -y
sudo yum install flex -y
sudo yum install bc -y
sudo yum install doxygen -y
⑴ sudo yum groupinstall "Development Tools" -y
sudo yum install ruby -y
②安装工具软件
首先 wget 获取软件压缩包,然后解压,最后在环境变量配置文件中进行增加。
sudo mkdir -p /home/tools
sudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/compiler/clang/10.0.1-62608/linux/llvm.tar.gz
sudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar
sudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz
sudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
sudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz
sudo wget -P /home/tools https://mirrors.huaweicloud.com/nodejs/v12.20.0/node-v12.20.0-linux-x64.tar.gz
sudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/develop_tools/hmos_app_packing_tool.jar
sudo wget -P /home/tools https://repo.huaweicloud.com/harmonyos/develop_tools/hapsigntoolv2.jar
sudo tar xvf /home/tools/llvm.tar.gz -C /home/tools
sudo tar xvf /home/tools/hc-gen-0.65-linux.tar -C /home/tools
sudo tar xvf /home/tools/gcc_riscv32-linux-7.3.0.tar.gz -C /home/tools
sudo tar xvf /home/tools/ninja.1.9.0.tar -C /home/tools
sudo tar xvf /home/tools/gn-linux-x86-1717.tar.gz -C /home/tools
sudo tar xvf /home/tools/node-v12.20.0-linux-x64.tar.gz -C /home/tools
sed -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' ~/.bashrc
source ~/.bashrc
rm -rf /home/tools/*.tar
rm -rf /home/tools/*.gz
③安装 git-lfs
我们这里使用现成的 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
④安装交叉编译工具 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.bz2
mkdir /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
⑤安装 Python
从华为云镜像下载 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
⑥安装 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
下载 OpenHarmony 代码
①配置 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
②安装码云 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
③获取代码
获取源码代码的目录如下:
mkdir openharmony
cd openharmony
repo init -u https://gitee.com/openharmony-sig/manifest.git -m devboard_asrmicro.xml --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
编译 OpenHarmony
以 openharmony/vendor/bestechnic/display_demo 为例进行编译。成功编译后,输入如下:

小结

求分享

求点赞

求在看




