第二章 开发环境搭建:安装Ubuntu 20.04、配置Python3、安装repo工具、下载鸿蒙源码

说实话,环境搭建这一步,劝退了很多人。

我见过不少朋友,兴致勃勃想搞鸿蒙移植,结果卡在装系统、配环境上,折腾两天就放弃了。其实没那么可怕,你跟着我一步步来,半小时就能搞定。

2.1 为什么选Ubuntu 20.04?

鸿蒙官方推荐的是Ubuntu 20.04 LTS,我个人也最推荐这个版本。为什么?

  • 兼容性最好:OpenHarmony 3.2 Release的编译工具链,在20.04上测试最充分
  • Python版本合适:系统自带Python 3.8,刚好满足鸿蒙的依赖要求
  • 社区支持多:你遇到问题,网上搜到的解决方案八成都是基于20.04的
注意:别用Ubuntu 22.04或24.04。我试过,Python版本太高,repo工具会报错,还得降级,纯属给自己找麻烦。

2.2 安装Ubuntu 20.04

如果你已经有Linux环境了,可以跳过这步。没有的话,我建议用虚拟机装。

VMware Workstation或者VirtualBox都行,我个人偏爱VMware,稳定一些。

  1. 下载镜像:去Ubuntu官网下载ubuntu-20.04.6-desktop-amd64.iso
  2. 创建虚拟机:内存给8GB,硬盘给80GB,处理器至少2核
  3. 安装系统:一路默认就行,语言选中文,用户名别用中文
小技巧:安装时勾选“为图形或无线硬件安装第三方软件”,能省去后面装驱动的麻烦。

2.3 配置Python3环境

Ubuntu 20.04默认带了Python 3.8,但有时候系统里同时有Python 2.7,容易搞混。

嗯,这里要注意:鸿蒙编译脚本用的是Python 3,所以必须把默认python指向python3。

# 检查当前Python版本
python --version

# 如果显示的是Python 2.7,需要切换
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1

# 再检查一次
python --version
# 应该输出 Python 3.8.x

然后安装pip和必要的依赖包:

sudo apt update
sudo apt install python3-pip python3-setuptools python3-wheel -y

# 安装编译需要的Python库
pip3 install --user setuptools kconfiglib pycryptodome ecdsa

我踩过的坑:曾经有一次,我忘了装pycryptodome,编译到一半报错“No module named 'Crypto'”,找了半天才发现是签名工具依赖这个库。所以这几个包一个都不能少。

2.4 安装repo工具

repo是Google开发的一个仓库管理工具,鸿蒙源码就是用repo来管理的。说白了,它帮你一次性拉取几十个Git仓库。

# 创建bin目录并加入PATH
mkdir -p ~/bin
echo 'export PATH=$PATH:~/bin' >> ~/.bashrc
source ~/.bashrc

# 下载repo工具
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

# 验证安装
repo --version

如果curl下载失败,别慌。国内网络有时候连不上Google的服务器。你可以用清华的镜像:

# 使用清华镜像
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
重要:repo脚本里默认的REPO_URL指向Google,在国内必须改成清华的地址。不然你执行repo init时会卡住不动。
# 配置repo使用清华镜像
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

你可以把这行加到~/.bashrc里,省得每次都要export。

2.5 下载鸿蒙源码(OpenHarmony 3.2 Release)

终于到了拉代码的环节。鸿蒙源码大概有10GB左右,网速慢的话,建议你泡杯咖啡慢慢等。

# 创建工作目录
mkdir -p ~/openharmony
cd ~/openharmony

# 初始化repo仓库
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-3.2-Release --no-repo-verify

# 同步源码
repo sync -c -j4

这里解释一下参数:

  • -b OpenHarmony-3.2-Release:指定分支,就是我们要的3.2正式版
  • --no-repo-verify:跳过repo的GPG验证,国内环境经常验证失败
  • -c:只下载当前分支的代码,不下载历史,省空间
  • -j4:4个线程并行下载,如果你的CPU核多,可以改成-j8
加速技巧:第一次同步特别慢,你可以用repo sync -c -j4 --no-tags,跳过tag下载,能快不少。等后面需要切tag时再单独拉。

同步完成后,检查一下目录结构:

cd ~/openharmony
ls -la
# 你应该看到一堆目录:applications、base、build、device、drivers、foundation、kernel、third_party等

看到这些目录,说明源码已经拉下来了。我习惯再跑一下编译环境的检查脚本:

python build/prebuilts_download.py
# 这个脚本会下载预编译工具链,大概2GB

2.6 验证环境是否就绪

最后,我们快速验证一下环境能不能用。不需要完整编译,只跑一下配置检查:

cd ~/openharmony
hb set
# 如果能看到产品列表,说明环境没问题

如果hb命令找不到,说明你没装hb工具。安装方法很简单:

pip3 install --user build/hb
# 然后重新打开终端,或者 source ~/.bashrc

总结一下:到这一步,你的开发环境就搭好了。Ubuntu 20.04 + Python 3.8 + repo + 鸿蒙3.2源码,齐活。

我刚开始搞鸿蒙移植时,光环境搭建就折腾了两天。现在你跟着这篇文章,半小时应该能搞定。如果遇到问题,多半是网络原因,换个镜像源试试。

下一章,我们会正式开始移植工作——创建自己的开发板目录。那才是真正有意思的部分。