4、Linux环境搭建:Ubuntu虚拟机配置、交叉编译工具链、repo工具安装
说实话,做鸿蒙设备开发,第一步就是搞定Linux环境。很多新手一上来就卡在这里,折腾半天装不上工具链,或者repo拉代码失败。我当年刚接触时也踩过不少坑,今天就把这些经验一次性说清楚。
4.1 Ubuntu虚拟机配置
我个人习惯用VMware Workstation,当然VirtualBox也行。但有一点要注意——鸿蒙的编译对磁盘空间要求不小,我建议至少给虚拟机分配100GB的磁盘空间,内存8GB起步。
核心配置建议:
- CPU:4核以上(编译时多线程并行)
- 内存:8GB~16GB(别低于8GB,否则编译会卡死)
- 磁盘:100GB动态扩展(实际用下来大概60GB左右)
- 网络:NAT模式(方便上网,也方便和宿主机通信)
系统版本我推荐Ubuntu 20.04 LTS。为什么?因为鸿蒙官方文档里明确写了这个版本兼容性最好。我曾经试过用22.04,结果某些依赖包版本太高,反而出问题。嗯,这里要注意——别追求最新版,稳定才是王道。
装好系统后,第一件事就是换源。你想想看,从国外源下载包,速度慢得让人抓狂。换成清华或中科大的镜像源,速度能快10倍。
# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 替换为清华源(Ubuntu 20.04)
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
# 更新
sudo apt update && sudo apt upgrade -y
4.2 交叉编译工具链安装
交叉编译,说白了就是在PC上编译出能在开发板上运行的程序。鸿蒙设备大多基于ARM架构,所以我们需要ARM交叉编译工具链。
鸿蒙官方推荐使用gcc-arm-none-eabi或gcc-arm-linux-gnueabihf。具体用哪个,取决于你的目标芯片。我做过几个项目,总结下来:
| 芯片类型 | 工具链 | 适用场景 |
|---|---|---|
| Cortex-M系列 | gcc-arm-none-eabi | 轻量设备、传感器节点 |
| Cortex-A系列 | gcc-arm-linux-gnueabihf | 带Linux系统的设备 |
| RISC-V系列 | riscv64-unknown-elf-gcc | 新兴架构设备 |
安装方法很简单,直接apt安装就行:
# 安装ARM交叉编译工具链
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi
# 验证安装
arm-none-eabi-gcc --version
我的经验:安装完后一定要验证一下。我曾经遇到过装了一半网络断了,结果工具链不完整,编译时报一些莫名其妙的错误。跑一下--version,看到版本号就放心了。
4.3 repo工具安装
repo是Google开发的一个工具,用来管理多个Git仓库。鸿蒙的代码库非常大,包含了几百个Git仓库,用手动git clone一个个拉?那得拉到猴年马月。repo就是干这个的——一条命令拉取所有代码。
安装repo其实很简单,但有个坑——repo本身是一个Python脚本,所以你得先确保Python环境没问题。
# 安装Python和git
sudo apt install python3 python3-pip git
# 下载repo工具
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
# 添加到PATH
echo 'export PATH=~/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
# 验证
repo --version
注意:如果你在国内,访问Google的服务器可能会超时。我曾经就卡在这一步,死活下不下来。解决办法是用国内镜像:
# 使用清华镜像
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
装好repo后,就可以拉取鸿蒙源码了。不过这里先不展开,后面章节会详细讲。你只需要知道——repo init + repo sync,这两条命令就是拉代码的黄金组合。
4.4 环境验证
所有东西装完后,我建议做一个快速验证。别等到编译时才发现环境有问题,那才叫崩溃。
# 1. 验证交叉编译工具链
arm-none-eabi-gcc --version
# 输出示例:arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors) 10.3.1
# 2. 验证repo
repo --version
# 输出示例:repo version v2.29
# 3. 验证Python
python3 --version
# 输出示例:Python 3.8.10
如果以上都能正常输出版本号,恭喜你,环境搭建成功了。
避坑指南:我曾经在虚拟机里装完所有工具后,发现编译时总是报Permission denied。查了半天,原来是repo拉下来的代码权限不对。解决办法很简单:
# 给源码目录添加写权限
sudo chown -R $USER:$USER ~/harmonyos
嗯,这个坑我踩过,你们就别再踩了。
4.5 本章小结
这一章我们搞定了三件事:
- Ubuntu虚拟机配置——磁盘、内存、CPU,别省
- 交叉编译工具链——ARM架构必备,装完要验证
- repo工具——拉取鸿蒙源码的利器,注意国内镜像
环境搭好了,后面才能安心写代码。下一章我们开始真正接触鸿蒙的源码结构和编译框架。说实话,那部分才是真正有意思的地方。
公众号:蓝海资料掘金营,微信deep3321