3、获取Buildroot:从官方Git仓库克隆Buildroot、了解版本分支(LTS与最新版)、切换到指定版本
好,咱们正式开始动手。上一章我们把环境搭好了,这一章就来拿Buildroot的源码。
说白了,Buildroot就是一个Git仓库。你把它克隆下来,然后选一个你想要的版本,就这么简单。但这里头有几个坑,我当年刚接触时踩过,今天一并告诉你。
3.1 从官方Git仓库克隆
官方仓库地址是:https://git.buildroot.net/buildroot。我个人习惯用HTTPS方式克隆,因为不需要配置SSH密钥,省事。
打开终端,执行:
git clone https://git.buildroot.net/buildroot
嗯,这里要注意。这个仓库大概有几百兆,如果你的网络不太好,可能会卡住。我曾经在客户现场,网络慢得像蜗牛,等了快半小时才克隆完。所以建议你找个网络好的时候干这事。
克隆完成后,你会看到一个 buildroot 目录。进去看看:
cd buildroot
ls -la
你会看到一堆文件和目录,比如 Makefile、Config.in、package/、board/ 等等。别慌,这些我们后面会一一讲到。
git clone --depth 1 --branch <版本号> 来浅克隆。这样只下载最新代码,速度快很多。
3.2 了解版本分支:LTS与最新版
Buildroot的版本策略很有意思。它有两种主要分支:LTS(长期支持) 和 最新版。
咱们先看看有哪些版本。执行:
git tag | tail -20
你会看到类似这样的输出:
2024.02
2024.02.1
2024.02.2
2024.05
2024.05.1
2024.08
2024.11
2025.02
这里头,2024.02.x 系列就是LTS版本。为什么?因为每年2月发布的版本会被标记为LTS,官方会持续维护两年左右,修bug、打补丁。而其他月份发布的版本(比如2024.05、2024.08)属于最新版,功能更新快,但维护周期短。
我个人的建议是:
- 做产品、做项目:用LTS版本。稳定,少踩坑。
- 学习、尝鲜:用最新版。能体验新特性。
你想想看,如果你的产品要卖两年,结果用的版本只维护半年,后面出了安全漏洞你怎么办?所以LTS版本就是干这个用的。
| 版本类型 | 发布月份 | 维护周期 | 适用场景 |
|---|---|---|---|
| LTS | 每年2月 | 约2年 | 产品开发、长期项目 |
| 最新版 | 5月、8月、11月 | 约6个月 | 学习、原型验证 |
3.3 切换到指定版本
好,现在假设我们决定用LTS版本 2024.02.x 系列的最新补丁版本。怎么切?
先看看 2024.02.x 有哪些小版本:
git tag | grep "2024.02"
输出大概是这样:
2024.02
2024.02.1
2024.02.2
2024.02.3
2024.02.4
2024.02.5
2024.02.6
2024.02.7
2024.02.8
2024.02.9
2024.02.10
2024.02.11
2024.02.12
嗯,到2024.02.12了。我们就切到这个版本:
git checkout 2024.02.12
执行完后,你的工作目录就变成了 2024.02.12 版本的代码。你可以用 git status 确认一下,会看到 HEAD detached at 2024.02.12。
git checkout -b my-branch。
我曾经有一次,在分离头指针状态下改了配置文件,然后直接切到另一个版本,结果改的东西全丢了。从那以后,我每次切版本前都会先确认一下有没有未提交的修改。
3.4 本章知识体系
下面这张图帮你理清本章的核心逻辑:
3.5 避坑指南
最后,分享几个我踩过的坑:
- 不要用master分支:master分支是开发分支,代码可能不稳定。我见过有人直接用master编译,结果编译到一半报错,查了半天发现是代码还没合入。
- 版本号要写全:比如
2024.02和2024.02.12是不同的。前者是初始发布版,后者是打了12个补丁的版本。我建议直接用最新的补丁版本。 - 切换版本后清理一下:有时候旧版本的配置会残留。执行
make clean或者直接删掉output/目录,避免干扰。
好了,现在你已经拿到了Buildroot的源码,并且知道怎么选版本、怎么切换。下一章我们就要开始配置了——嗯,那才是真正有意思的部分。