鸿蒙OpenHarmony

开源鸿蒙系统编译指南

使用Ubuntu的编译环境对OpenHarmony鸿蒙源码进行编译,在Windows环境中将编译出来的固件烧录到开发板上。

Ubuntu编译环境配置

Ubuntu环境实际使用环境:

Ubuntu 22.04.4 LTS

内存:64G

另外,用的CPU E5-2697 v2@2.70GHz*24,编译完成不到1个小时吧

第一步:Shell 改 Bash

1、在Ubuntu的终端窗口中执行sudo dpkg-reconfigure dash,出现如下页面:

2、在页面中使用方向按键选择"否"或No,回车确认会自动退出。

第二步:安装Git和安装pip3工具

Git是版本控制工具,pip3是python的包管理工具

1、安装Git

bash 复制代码
sudo apt install git git-lfs python3-pip curl

2、安装pip3

bash 复制代码
mkdir ~/.pip
pip3 config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple
pip3 config set global.trusted-host mirrors.huaweicloud.com
pip3 config set global.timeout 120

第三步:远程仓配置

鸿蒙的源码放在码云服务器上,需要先申请码云gitee的自有账号,这里只介绍部分过程。

1、SSH 公钥设置

根据官网指导文档生成SSH公钥,再设置账户SSH公钥

这里需要注意的是测试SSH环境时,再Linux终端中,首次执行 ssh -T git@gitee.com 时,出现如下结果,直接输入yes跳过。

再次执行 ssh -T git@gitee.com,才会出现和gitee官网相同的结果,这一点官方可能是选择性忽略,或许没有自测到此场景。

2、配置git的用户信息

bash 复制代码
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store

3、下载安装码云的repo工具,安装在 ~/bin 或其他路径下:

bash 复制代码
mkdir ~/bin
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/bin/repo 
chmod a+x ~/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

4、配置repo环境变量

在终端中执行 vim ~/.bashrc 命令编辑环境变量,在环境变量文件的最后一行添加repo的安装路径:

bash 复制代码
export PATH=~/bin:$PATH  # 这里的repo在~/bin下安装,也可以安装在其他路径下

执行 source ~/.bashrc 使该环境变量生效。

第四步:拉取代码

1、在新建的空文件夹中,准备拉取源码。这里下载到了 /xxx/openharmony4.0

bash 复制代码
mkdir /xxx/openharmony4.0

2、拉取源码

bash 复制代码
cd /xxx/openharmony4.0          # 1.进入到新建的文件下
repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify    # 2.初始化仓库
repo sync -c     # 3.开始同步代码

获取鸿蒙代码结束后,如下文件列表:

第五步:安装编译环境

1、通过以下步骤安装编译OpenHarmony需要的库和工具。

bash 复制代码
sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libc6-dev-amd64 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 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.8-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

说明:

(1)若使用Ubuntu20及以上版本,由于gcc-multilib和gcc-arm-linux-gnueabi互斥,请勿安装gcc-arm-linux-gnueabi,直接执行上述命令即可。

(2)若使用Ubuntu18.04,需要继续执行 sudo apt-get install gcc-arm-linux-gnueabi

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

2、设置默认python版本

查看Python 3.8的安装路径 which python3.8,这里的路径是 /usr/bin/python3.8

bash 复制代码
# 设置默认Python解释器
sudo update-alternatives --install /usr/bin/python python {默认Python路径} 1
sudo update-alternatives --install /usr/bin/python3 python3 {默认Python路径} 1
# 例如:
# sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
# sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1

第六步:本地编译源码

1、在源码根目录下执行prebuilts脚本

bash build/prebuilts_download.sh

2、开始编译源码

指定编译类型为rk3568,编译结果文件及编译日志文件获取路径:out/rk3568

sudo ./build.sh --product-name rk3568 --ccache

不指定类型,直接编译源码,编译结果文件在 out/sdk/ohos-sdk文件夹里

sudo ./build.sh --product-name ohos-sdk

Windows开发环境配置

一般情况下,大多数人都会在Windows环境下开发调试烧录,这就需要Windows和Ubuntu交互和传输文件,这就需要配置远程访问环境。

第一步:在Ubuntu编译环境上安装SSH服务

一般情况下,只要用其他远程(MobaXterm)工具能通过SSH服务登录,就可以忽略不执行此步骤。

在Ubuntu系统中,打开终端工具,执行如下命令安装SSH服务并启动。

bash 复制代码
sudo apt-get install openssh-server   # 安装openssh-server
sudo systemctl start ssh      # 启动SSH服务

第二步:在Windows开发环境上安装Remote SSH客户端

打开Windows系统下的Visual Studio Code工具,点击插件管理模块,在插件市场的搜索并安装"remote-ssh"插件。

第三步:开发环境远程连接编译环境

1、打开Remote Explorer。

2、新建远程连接。

3、输入"ssh user@host-or-ip"或者"user@domain@host-or-ip"后回车确认。其中host-or-ip为要连接的远程计算机的IP地址或者host名称,user为登录远程计算机的帐号。注意:这里的user和host-or-ip均是编译环境已经配置过的账号。

4、在弹出的输入框中,选择SSH configuration文件,选择默认的第一选项即可。

5、根据自己的习惯选择两种链接方式之一

6、在弹出的输入框中,根据远程环境的类型,选择Linux/Windows/MacOs,然后输入登录远程计算机的user的密码,确认回车开始连接远程计算机。

这是成功连接的正常状态。

7、如图找到远程环境中的源码后,点击"OK" ,可以打开远程源码进行编辑调试。

相关推荐
SameX43 分钟前
鸿蒙 Next 电商应用安全支付与密码保护实践
前端·harmonyos
SuperHeroWu72 小时前
【HarmonyOS】键盘遮挡输入框UI布局处理
华为·harmonyos·压缩·keyboard·键盘遮挡·抬起
sanzk6 小时前
华为鸿蒙应用开发
华为·harmonyos
SoraLuna10 小时前
「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现
macos·ui·harmonyos
ClkLog-开源埋点用户分析11 小时前
ClkLog企业版(CDP)预售开启,更有鸿蒙SDK前来助力
华为·开源·开源软件·harmonyos
mg66812 小时前
鸿蒙系统的优势 开发 环境搭建 开发小示例
华为·harmonyos
模拟IC攻城狮12 小时前
华为海思招聘-芯片与器件设计工程师-模拟芯片方向- 机试题-真题套题题目——共8套(每套四十题)
嵌入式硬件·华为·硬件架构·芯片
lqj_本人12 小时前
鸿蒙next选择 Flutter 开发跨平台应用的原因
flutter·华为·harmonyos
lqj_本人12 小时前
使用 Flutter 绘制一个棋盘
harmonyos
TangKenny12 小时前
计算网络信号
java·算法·华为