第3章:Linux宿主机准备——在Ubuntu/Debian上安装基础依赖包
好,咱们继续往下走。上一章我们把虚拟机或者双系统搞定了,现在你面前应该是一个干干净净的Linux桌面。嗯,接下来要做的,就是往这个系统里塞进Zephyr开发所需的基础工具。
说白了,这一步就像盖房子前先打地基。你想想看,没有Python、没有Git,后面那些自动化脚本、版本管理根本跑不起来。我个人习惯是先把这些基础依赖装好,再去做其他配置,这样心里踏实。
3.1 为什么需要这些基础包?
Zephyr的构建系统依赖Python3,这是它的核心脚本语言。pip用来安装Python的第三方库,比如west、pyelftools这些。git用来拉取Zephyr源码和你的项目代码。wget和curl则是下载工具,有时候需要从网上拉一些固件或者工具链。
我在项目中遇到过好几次这样的情况:新同事拿到一台刚装好的Ubuntu,直接就开始搞Zephyr,结果编译时报错说找不到Python模块。一查,pip没装,west装不上。所以啊,这一步别跳过。
3.2 更新软件包索引
在开始安装之前,先让系统知道最新的软件包列表。打开终端,执行:
sudo apt update
这个命令会从Ubuntu的软件源刷新索引。我建议你每次装新东西前都跑一遍,尤其是刚装完系统的时候。为什么?因为系统自带的源列表可能已经过时了,直接装可能会装到旧版本。
3.3 安装Python3和pip
Ubuntu 20.04及以上版本默认带了Python3,但pip不一定有。我们来确认一下:
python3 --version
pip3 --version
如果pip3没找到,就手动装:
sudo apt install python3 python3-pip -y
装完之后,我习惯把pip升级到最新版:
pip3 install --upgrade pip
这里有个坑:有些系统里pip和pip3是分开的。Zephyr官方推荐用pip3,因为Python2已经退役了。你如果用了pip,可能会装到Python2的库里,后面会出问题。我曾经因为这个折腾了一下午,后来发现是pip指向了Python2。
3.4 安装Git
Git是版本控制的标配。Zephyr的源码托管在GitHub上,没有Git寸步难行。
sudo apt install git -y
装完后配置一下你的身份信息,不然提交代码时会报错:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
我个人习惯把默认分支名改成main:
git config --global init.defaultBranch main
这个不是必须的,但能避免以后每次创建仓库都要手动改分支名。
3.5 安装wget和curl
这两个工具用来下载文件。wget更擅长下载单个文件,curl则支持更多协议,比如FTP、SFTP。Zephyr的工具链安装脚本有时会用到它们。
sudo apt install wget curl -y
装完后可以测试一下:
wget --version
curl --version
看到版本号就说明成功了。
3.6 其他常用工具
除了上面这些,我还建议你装几个顺手的小工具:
- build-essential:编译C/C++代码的基础包,包含gcc、make等
- cmake:Zephyr的构建系统依赖CMake
- ninja-build:比make更快的构建工具,Zephyr默认用它
- gperf:用于生成哈希表,Zephyr的配置系统会用到
- device-tree-compiler:处理设备树文件(.dts)的工具
一条命令全装好:
sudo apt install build-essential cmake ninja-build gperf device-tree-compiler -y
3.7 验证安装结果
装完之后,我们来做个快速检查。把下面这些命令挨个跑一遍,确保每个工具都能正常调用:
python3 --version
pip3 --version
git --version
wget --version
curl --version
cmake --version
ninja --version
gperf --version
dtc --version
如果每个都输出了版本号,恭喜你,基础环境已经准备好了。
3.8 我的一点经验
嗯,到这里基础依赖就装完了。整个过程其实很简单,但容易出问题的地方往往在细节上。比如Python版本,Zephyr 3.0以后要求Python 3.6以上,Ubuntu 18.04默认是3.6,勉强能用。但如果你用的是Ubuntu 16.04,那就得自己升级Python了。
另外,我建议你装完这些后,重启一下终端,或者重新登录一次。有些环境变量需要刷新才能生效。别问我怎么知道的——有一次我装完cmake,没重启终端,结果cmake --version还是旧版本,折腾了半天才发现是缓存问题。
下一章,我们会安装Zephyr的构建工具west,以及配置Python虚拟环境。到时候这些基础工具就会派上用场了。