内核源码获取与版本选择:从kernel.org下载、Git仓库管理、LTS版本选择策略

做嵌入式Linux,第一步就是搞定内核源码。这事儿看着简单,但我在项目里见过太多人在这上面栽跟头。今天咱们就聊聊怎么选版本、怎么下载、怎么管理。

从kernel.org下载:最正统的方式

kernel.org是Linux内核的官方发布站点。我个人习惯直接去那下载,原因很简单——干净、权威、没中间商赚差价。

打开网站,你会看到一堆版本号。别慌,咱们挑着看:

  • 主线版本(Mainline):Linus Torvalds亲自维护的,最新最热,但稳定性嘛...你懂的
  • 稳定版本(Stable):在主线基础上修修补补,适合大多数场景
  • 长期支持版本(LTS):这个重点说,后面单独讲
  • 实时版本(RT):做工业控制、机器人用的,普通项目用不上
我的习惯:下载时选tar.xz格式,压缩率高,传输快。解压命令:tar -xf linux-6.1.y.tar.xz

Git仓库管理:版本控制的正确姿势

用Git管理内核源码,说白了就是给自己留条后路。我在做某个物联网网关项目时,就因为没做Git管理,改了一堆配置后想回退,结果...嗯,重下了三遍源码。

克隆主线仓库:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
git checkout v6.1

为什么要用Git?三个理由:

  1. 版本切换方便:git checkout v5.15 一秒切版本
  2. 打补丁简单:git am patch_file.patch 搞定
  3. 自己改的东西能追溯:哪天改崩了,git diff 一看就知道动了哪
注意:完整克隆内核仓库大概3-4GB,网络不好的话,建议用 --depth 1 只拉最新版本。比如:git clone --depth 1 --branch v6.1 git://...

LTS版本选择策略:别追新,求稳

做产品选内核版本,我有一条铁律:能用LTS就别用主线。为什么?

你想想看,一个产品从开发到量产,少说半年,多则两三年。主线版本每两三个月就出一个大版本,你追得上吗?

目前推荐的LTS版本:

版本 发布年份 维护截止 推荐场景
6.1.x 2022 2026+ 新项目首选,支持新硬件
5.15.x 2021 2026+ 成熟稳定,资料最多
5.10.x 2020 2026+ 老项目维护,兼容性好
5.4.x 2019 2025 极老项目,建议迁移

选版本时,我一般这么考虑:

  • 新项目:用6.1或5.15,驱动支持好,社区活跃
  • 老项目升级:看原来用的什么,尽量选同大版本的最新小版本
  • 芯片厂商要求:有些SoC厂商会指定内核版本,比如全志喜欢用5.4,那就别硬上6.1

核心观点:LTS版本就像老黄牛,干活稳当不出错。主线版本像赛马,跑得快但容易摔。做产品,选老黄牛。

版本选择的避坑指南

我曾经在一个项目里选了当时最新的6.0主线版本,结果发现某个网卡驱动有bug,折腾了两周才找到补丁。后来学乖了,一律用LTS。

还有一次,客户要求用5.10,但我们的BSP只支持5.4。你以为换个版本就能编译过?太天真了。设备树、驱动API、配置选项全都不一样。所以,版本选择要跟BSP走,别自己拍脑袋。

最后说一句:内核源码获取不是技术活,是经验活。选对了版本,后面裁剪、编译、调试都顺风顺水。选错了...嗯,你会在Git里来回切换,浪费大量时间。

内核源码获取与版本选择 · 知识体系 内核源码获取 kernel.org 下载 Git 仓库管理 LTS 版本选择 主线版本 稳定版本 LTS版本 版本切换 补丁管理 变更追溯 新项目 老项目 芯片要求 核心原则:LTS优先,BSP匹配,Git管理 不追新 · 不求快 · 只求稳

可可精品资料库