OpenHarmony介绍

OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。

OpenHarmony详细架构如下:

更多详情可见官方:开发文档

本文介绍开源鸿蒙在ubuntu系统下如何拉取源码:包括ubuntu的下载配置和拉取代码的详细操作

1、VMware及镜像下载

对于VMware的选择,实在纠结就选择更新的版本。

通过网盘分享的文件:vmware
链接: https://pan.baidu.com/s/1FrTyskLwICD1Un9yPM6vVw?pwd=422t 提取码: 422t

通过网盘分享的文件:ubuntu-20.04.6-desktop-amd64.iso
链接: https://pan.baidu.com/s/16GFQgA-eKNWh250ypxG3wQ?pwd=c6mf 提取码: c6mf

VMware下载时建议非C盘,避免内存不够用。

2、环境配置(基于命令行开发)

1>右键左边空白处,新建虚拟机和镜像,保存位置仍然选择非C盘,磁盘大小选择大于180g(源码拉取大约120G),所有命名不要包含中文

2>打开进入虚拟机,按照下方代码依次在bash输入

远程访问准备

当在Windows下进行烧录时,开发者需要访问Ubuntu环境下的源码和镜像文件。您可以使用习惯的文件传输或共享工具实现文件的共享或传输。

此处介绍通过Samba服务器进行连接的操作方法。

配置Samba服务器

在Ubuntu环境下进行以下操作:

1.安装Samba软件包。

sudo apt-get install samba samba-common

2.修改Samba配置文件,配置共享信息。 打开配置文件:

sudo gedit /etc/samba/smb.conf   

在配置文件末尾添加以下配置信息(根据实际需要配置相关内容):

[Share]                    #在Windows中映射的根文件夹名称(此处以“Share”为例)
comment = Shared Folder    #共享信息说明
path = /home/share         #共享目录
valid users = username     #可以访问该共享目录的用户(Ubuntu的用户名)
directory mask = 0775      #默认创建的目录权限
create mask = 0775         #默认创建的文件权限
public = yes               #是否公开(如果运行报错就删除这句)
writable = yes             #是否可写
available = yes            #是否可获取
browseable = yes           #是否可浏览

3.添加Samba服务器用户和访问密码。username可以填写和ubuntu用户名一样

sudo smbpasswd -a username   #用户名为Ubuntu用户名。输入命令后,根据提示设置密码。

4.重启Samba服务。

sudo service smbd restart

设置Windows映射

在Windows环境下进行以下操作:

1.右键计算机选择映射网络驱动器,输入共享文件夹信息。在文件夹输入框填入Ubuntu设备的IP地址和Ubuntu共享文件夹的路径。ip在ubuntu中输入ip a查看。共享路径填写配置部share部分,可以自行修改。

quickstart-pkg-prepare-networkdriver

2.输入Samba服务器的访问用户名和密码。

quickstart-pkg-prepare-setsamba

3.用户名和密码输入完成后即可在Windows下看到Linux的共享目录,并可对其进行访问。

安装库和工具集

使用命令行进行设备开发时,可以通过以下步骤安装编译OpenHarmony需要的库和工具。

相应操作在Ubuntu环境中进行。

1.使用如下apt-get命令安装后续操作所需的库和工具:

sudo apt-get update -y && sudo apt-get install -y \
binutils \
binutils-dev \
git \
git-lfs \
gnupg \
flex \
bison \
gperf \
build-essential \
zip \
curl \
zlib1g-dev \
gcc-multilib \
g++-multilib \
gcc-arm-linux-gnueabi \
libc6-dev-i386 \
lib32ncurses5-dev \
x11proto-core-dev \
libx11-dev \
lib32z1-dev \
ccache \
libgl1-mesa-dev \
libxml2-utils \
xsltproc \
unzip \
m4 \
bc \
gnutls-bin \
python3.9 \
python3-pip \
ruby \
genext2fs \
device-tree-compiler \
make \
libffi-dev \
e2fsprogs \
pkg-config \
perl \
openssl \
libssl-dev \
libelf-dev \
libdwarf-dev \
u-boot-tools \
mtd-utils \
cpio \
doxygen \
liblz4-tool \
openjdk-8-jre \
gcc \
g++ \
texinfo \
dosfstools \
mtools \
default-jre \
default-jdk \
libncurses5 \
apt-utils \
wget \
scons \
python3.9-distutils \
tar \
rsync \
git-core \
libxml2-dev \
lib32z-dev \
grsync \
xxd \
libglib2.0-dev \
libpixman-1-dev \
kmod \
jfsutils \
reiserfsprogs \
xfsprogs \
squashfs-tools \
pcmciautils \
quota \
ppp \
libtinfo-dev \
libtinfo5 \
libncurses5-dev \
libncursesw5 \
libstdc++6 \
gcc-arm-none-eabi \
vim \
ssh \
locales \
libxinerama-dev \
libxcursor-dev \
libxrandr-dev \
libxi-dev

icon-note.gif

 说明:

  • 以上安装命令适用于Ubuntu18.04,其他版本请根据安装包名称采用对应的安装命令。其中:

    • Python要求安装Python 3.8及以上版本,此处以Python 3.8为例。

    • Java要求java8及以上版本,此处以java8为例。

  • 若您使用的是Ubuntu20及以上版本,由于gcc-multilib和gcc-arm-linux-gnueabi互斥,请勿安装gcc-arm-linux-gnueabi。

  • 执行过程中需要多次点击回车以确认安装所需的库和工具。

2.将Python 3.8设置为默认Python版本。

查看Python 3.8的位置:

which python3.8

如果无输出请在环境中安装python3.8或以上版本,以下安装命令可作为python3安装的参考:

sudo apt-get install python3
sudo apt-get install python-is-python3

查询python是否可用符合版本要求:

python --version

获取源码

在Ubuntu环境下通过以下步骤获取OpenHarmony源码。

准备工作

1.注册gitcode帐号。

2.注册gitcode的SSH公钥。点击跳转

右上角头像——个人设置——SSH公钥——新建

3.安装git客户端和git-lfs。(上述工具已在安装必要的库和工具小节安装。如已安装,请忽略)

更新软件源:

sudo apt-get update

通过以下命令安装:

sudo apt-get install git git-lfs

4.配置用户信息。yourname和your-email-address任意填写即可,建议与用户名一致。

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

5.执行如下命令安装gitcode的repo工具。

下述命令中的安装路径以"~/bin"为例,请用户自行创建所需目录。建议创建在/bin目录下。

mkdir ~/bin
curl https://raw.gitcode.com/gitcode-dev/repo/raw/main/repo-py3 -o ~/bin/repo 
chmod a+x ~/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

6.将repo添加到环境变量。

vim ~/.bashrc               # 编辑环境变量
export PATH=~/bin:$PATH     # 在环境变量的最后添加一行repo路径信息
source ~/.bashrc            # 应用环境变量

获取方式

说明:

发布分支代码相对比较稳定,开发者可基于发布分支代码进行商用功能开发。Master主干为开发分支,开发者可通过Master主干获取最新特性。

OpenHarmony发布分支代码获取

OpenHarmony各个版本发布分支的源码获取方式。这里以OpenHarmony v6.1 Release为例:

通过repo + ssh 下载(前面已经注册过公钥并配置)。

从版本分支获取源码。可获取该版本分支的最新源码,包括版本发布后在该分支的合入。从上到下依次执行

repo init -u git@gitcode.com:openharmony/manifest.git -b OpenHarmony-6.1-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

    执行prebuilts

    在源码根目录下执行prebuilts脚本,安装编译器及二进制工具。

    bash build/prebuilts_download.sh

    安装编译工具

    相关操作在Ubuntu环境下进行。

    安装hb

    1.在源码根目录运行如下命令安装hb并更新至最新版本。

    python3 -m pip install --user build/hb

    2.设置环境变量。

    vim ~/.bashrc

    3.将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

    export PATH=~/.local/bin:$PATH

    4.执行如下命令更新环境变量。

    source ~/.bashrc

    5.在源码目录执行"hb help",界面打印以下信息即表示安装成功。

    hb_help

    至此,OpenHarmony源码拉取成功,开始进行编译。

    3、编译(以RK3568/瑞芯微3568为例)

    前提条件

    操作步骤

    方法一:hb编译(请先安装编译工具)

    在Ubuntu环境下进入源码根目录,执行如下命令进行编译:

     1.设置编译路径。

    hb set

    2.选择当前路径。

    3.在hihope下选择rk3568并回车。

    说明:

    同样的开发板在适配不同的场景时,要采用的编译形态不同(即此处要选择的product不同)。

    quickstart-standard-rk3568-build

    RK3568编译设置图例

    4.默认情况下,编译的是32位系统,若不需要调整,则跳过此步骤。

    如需编译为64位系统,请执行如下命令:

    hb build --target-cpu arm64

    5.执行编译。

     说明:

    • 单独编译一个部件(例如hello),可使用“hb build -T 目标名称”进行编译。

    • 增量编译整个产品,可使用“hb build”进行编译。

    • 完整编译整个产品,可使用“hb build -f”进行编译。

    此处以完整编译整个产品为例进行说明。

    hb build -f

    6.编译结束后,出现“rk3568 build success”字样,则证明构建成功。 

    Logo

    作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

    更多推荐