第二章 开发环境搭建:安装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的
2.2 安装Ubuntu 20.04
如果你已经有Linux环境了,可以跳过这步。没有的话,我建议用虚拟机装。
VMware Workstation或者VirtualBox都行,我个人偏爱VMware,稳定一些。
- 下载镜像:去Ubuntu官网下载ubuntu-20.04.6-desktop-amd64.iso
- 创建虚拟机:内存给8GB,硬盘给80GB,处理器至少2核
- 安装系统:一路默认就行,语言选中文,用户名别用中文
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使用清华镜像
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源码,齐活。
我刚开始搞鸿蒙移植时,光环境搭建就折腾了两天。现在你跟着这篇文章,半小时应该能搞定。如果遇到问题,多半是网络原因,换个镜像源试试。
下一章,我们会正式开始移植工作——创建自己的开发板目录。那才是真正有意思的部分。