更多信息请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.comopenEuler是OpenHarmony打造的另一个开源项目由OpenAtom基金会孵化和运营的项目。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,简单流畅。我会把过程记录下来,以备有人需要。1.安装openEuler虚拟机,物理机当然可以安装。虚拟机可以使用WSL,或者VMWare,VirtualBox虚拟机软件。如果需要安装最新版本,建议使用后者。目前WSL仅支持OpenEuler20.03。1.1WSLopenEulerWSL的安装是程序员必备的技能,如何开启WSL就不赘述了。打开WindowsStore,搜索openEuler,如下图,安装即可。安装后可以查看版本信息:[ken@kenneth~]$cat/etc/os-releaseNAME="openEuler"VERSION="20.03(LTS-SP1)"ID="openEuler"VERSION_ID="20.03"PRETTY_NAME="openEuler20.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进行安装。本文以WSLopenEuler为例,虚拟机的安装比较简单,就不展开了。服务器安装完成后,执行uname-a查看系统架构,根据架构下载不同的openEulerOS.repos到/etc/yum.repos.d/目录下,执行以下命令设置软件包镜像。wget-O/etc/yum.repos.d/openEulerOS.repohttps://repo.huaweicloud.com/repository/conf/openeuler_x86_64.repoyumcleanall#清除原来的yum缓存。yummakecache#生成一个新的缓存。这里就放个图吧,我比较喜欢华为云镜像服务器https://mirrors.huaweicloud.com,大家也可以访问试试。2、准备编译OpenHarmony的软件环境。参考在Ubuntu编译服务器上编译OpenHarmony的软件环境,在openEuler上准备环境。主要参考文件为:https://gitee.com/openharmony/docs/blob/master/docker/Dockerfile,并获取源码文档页面。使用的openEuler版本为WSLopenEuler20.03。2.1安装软件包以下软件包对于部分开发板可能编译不完整,另外一些软件需要单独安装。⑴该命令会安装gcc、c++等开发相关的软件包。openEuler20.03安装的gcc版本为V7.3.0,略低。如果需要gcc9.3.0等更高版本的gcc,建议使用更高版本的openEuler。sudoyum安装curlwget-ysudoyum安装vim-ysudoyum安装openssh-ysudoyum安装git-ysudoyum安装dosfstools-ysudoyum安装mtools-ysudoyum安装scons-ysudoyum安装make-ysudoyuminstalllibffi-devel-ysudoyuminstallzip-ysudoyuminstallbinutils-ysudoyuminstallbison-ysudoyuminstallflex-ysudoyuminstallbc-ysudoyuminstalldoxygen-y⑴sudoyumgroupinstall"开发工具"-ysudoyuminstallruby??-y2.2安装工具软件下面安装的工具软件中,有些工具软件对于某些开发板来说是多余的,如果不需要,先安装。首先wget获取软件压缩包,然后解压,最后添加到环境变量配置文件中。sudomkdir-p/home/toolssudowget-P/home/toolshttps://repo.huaweicloud.com/harmonyos/compiler/clang/10.0.1-62608/linux/llvm.tar.gzsudowget-P/home/toolshttps://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tarsudowget-P/home/toolshttps://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gzsudowget-P/home/toolshttps://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tarsudowget-P/home/toolshttps://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gzsudowget-P/home/toolshttps://mirrors.huaweicloud.com/nodejs/v12.20.0/node-v12.20.0-linux-x64.tar.gzsudowget-P/home/toolshttps://repo.huaweicloud.com/harmonyos/develop_tools/hmos_app_packing_tool.jarsudowget-P/home/toolshttps://repo.huaweicloud.com/harmonyos/develop_tools/hapsigntoolv2.jarsudotarxvf/home/tools/llvm.tar.gz-C/home/toolssudotarxvf/home/tools/hc-gen-0.65-linux.tar-C/home/toolssudotarxvf/home/tools/gcc_riscv32-linux-7.3.0.tar.gz-C/home/toolssudotarxvf/home/tools/ninja.1.9.0.tar-C/home/toolssudotarxvf/home/tools/gn-linux-x86-1717.tar.gz-C/home/tools须藤tarxvf/home/tools/node-v12.20.0-linux-x64.tar.gz-C/home/toolssed-i'$aexportPATH=/home/tools/llvm/bin:$PATH'~/.bashrcsed-i'$aexportPATH=/home/tools/hc-gen:$PATH'~/.bashrcsed-i'$aexportPATH=/home/tools/gcc_riscv32/bin:$PATH'~/.bashrcsed-i'$aexportPATH=/home/tools/ninja:$PATH'~/.bashrcsed-i'$aexportPATH=/home/tools/node-v12.20.0-linux-x64/bin:$PATH'~/.bashrcsed-i'$aexportPATH=/home/tools:$PATH'~/.bashrcsed-i'$aexportPATH=~/.local/bin:$PATH'~/.bashrc源~/.bashrcrm-rf/home/tools/*.tarrm-rf/home/tools/*.gz2.3安装git-lfs在https://gitee.com/mirrors/git-lfs-lfs获取git的源码,是源码电影git-lfs,但是还需要安装Go等,环境准备比较复杂。这里我们使用现成的rpm文件安装git-lfs,如下。wget-Ogit-lfs-3.1.2-1.x86_64.rpmhttps://packagecloud.io/github/git-lfs/packages/fedora/35/git-lfs-3.1.2-1.x86_64.rpm/download.rpmsudoyuminstallgit-lfs-3.1.2-1.x86_64.rpm-y2.4安装交叉编译工具arm-none-eabi-gcc下载解压,添加环境变量配置文件,可以改交叉编译工具根据需要这里使用gcc-arm-none-eabi-9-2020-q2版本。wgethttps://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-q2tarxvfgcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2-C/home/tools/gcc-arm-none-eabi-9-2020-q2sed-i'$aexportPATH=/home/tools/gcc-arm-none-eabi-9-2020-q2/gcc-arm-none-eabi-9-2020-q2-update/bin:$PATH'~/.bashrcsource~/.bashrc2.5安装Python我们从源码安装Python,需要先安装openssl-devel包,否则可能报“pipis配置了需要TLS/SSL的位置,但是...”错误。从华为云镜像下载Python压缩包源码包,解压、配置、编译、安装,创建软链接文件/usr/local/bin/python和/usr/local/bin/pip。sudoyuminstallopenssl-develwgethttps://repo.huaweicloud.com/python/3.9.9/Python-3.9.9.tgztar-zvfPython-3.9.9.tgzcdPython-3.9.9./configure--with-ssl-enable-optimizationsmake-jsudomakeinstallsudoln-s/usr/local/bin/python3.9/usr/local/bin/pythonsudoln-s/usr/local/bin/pip3/usr/local/bin/pipinstall配置好pypi镜像后,创建文件~/.pip/pip.conf,打开vi编辑器。mkdir~/.pip/vi~/.pip/pip.conf输入以下内容:[global]index-url=https://repo.huaweicloud.com/repository/pypi/simpletrusted-host=repo.huaweicloud.comtimeout=120根据提示升级pip版本即可:/usr/local/bin/python3-mpipinstall--upgradepip2.6安装ccache执行如下命令完成ccache的安装,不是的最新版本。可以在https://github.com/ccache/ccache/blob/master/doc/INSTALL.md访问最新版本。由于需要CMake和C++14,对编译环境的要求比较高。我们使用的是next-new版本的ccache-3.6,已经可以满足要求了。wgethttps://www.samba.org/ftp/ccache/ccache-3.6.tar.xztarxvfccache-3.6.tar.xzmkdir../build-ccachecd../build-ccache../ccache-3.6/configure#修改CFLAGS和CPPFLAGS参数:CFLAGS=-g-O3-Wall-W-march=nativeCPPFLAGS=-g-O3-Wall-W-march=nativemake-j`getconf_NPROCESSORS_ONLN`sudomakeinstall3.下载OpenHarmony代码3.1配置git和sshkey执行以下命令设置git用户和提交邮箱。gitconfig--globaluser.name"yourname"gitconfig--globaluser.email"your-email-address"gitconfig--globalcredential.helperstore然后访问https://gitee.com/profile/sshkeys,设置SSH信息。使用以下命令生成SSHKey信息,然后复制到网页中。ssh-keygen-ted25519-C"xxxxx@xxxxx.com"cat~/.ssh/id_ed25519.pub添加SSHKey后,在终端(Terminal)输入:ssh-Tgit@gitee.com第一次使用需要确认并将主机添加到本地SSH信任列表。如果内容您好XXX!您已成功认证,但Gitee.com不提供shell访问。被返回,证明添加成功。3.2安装码云repo工具安装码云repo工具,执行以下命令。curl-shttps://gitee.com/oschina/repo/raw/fork_flow/repo-py3>reposudomvrepo/usr/local/bin/repochmoda+x/usr/local/bin/repopip3install-ihttps://repo.huaweicloud.com/repository/pypi/simplerequests3.3获取代码源码获取目录如下。mkdiropenharmonycdopenharmonyrepoinit-uhttps://gitee.com/openharmony-sig/manifest.git-mdevboard_asrmicro.xml--no-repo-verifyreposync-crepoforall-c'gitlfspull'4.将OpenHarmony编译成openharmony/vendor/bestechnic/display_demo为例进行编译。编译成功后,进入如下:总结本文首先介绍如何在openEulerWSL版本上安装必要的软件包和工具软件,然后下载OpenHarmony源码并编译成功。如果你有兴趣,你可以自己尝试一下。更多信息请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com
