系列导读|面向普通 C 语言开发者
如果你平时写业务代码、做驱动实验,或在 Windows / Ubuntu 上「使用」Linux,但对「一台机器从上电到能打开程序」中间发生了什么还不清楚,这个系列就是为你准备的。
为什么 AI 时代,还要自己构建 Linux? 大模型与边缘推理把「跑在什么系统上」重新推到台前:云端可以继续用通用发行版,但端侧盒子、工控机、机器人、NPU/RISC-V 板卡往往装不下、也装不稳一整套桌面 Linux。发行版替你选好了内核、驱动和一堆你未必需要的服务;AI 产品则要求你能决定:镜像多小、启动多快、只留哪些库、驱动与加速器是否匹配、构建是否可复现。会自己构建,等于把系统从「黑盒依赖」变成「可裁剪、可审计、可交付」的工程部件——这正是把算法真正装进产品时绕不开的一步。
我们会先用白话把启动和包管理讲明白,再动手用 Yocto Project 做出自定义 Linux。编译统一在你 Windows 电脑的 WSL2 Ubuntu 里完成;目标机先用 qemux86-64 在 QEMU 里快速验证,再对比构建 genericx86-64,用 U 盘在同一台 Windows PC 上做成双系统。自定义 layer 与配置模板可用 Git 托管到 GitHub(第 12 篇)。
你将学到什么
- Linux 怎么启动:从按下电源键,到能登录、能跑程序,中间经过哪些阶段。
- 软件怎么安装:Ubuntu、Debian、CentOS、Fedora 上 apt / yum(dnf)在做什么。
- 为什么需要 Yocto:它和「下载一个 Ubuntu 安装盘」有什么不同;平头哥玄铁的 xuantie-yocto-project 扮演什么角色。
- 亲手做一遍:在 WSL2 里配置 → 进一步定制 → 分别构建虚机/真机镜像 →
runqemu 验证 → U 盘双系统跑起来,并验证 hello;再用 Git 托管 meta-demo。
阅读建议
- 第 1~4 篇偏概念,建议按顺序读;遇到英文缩写,文中都会先解释。
- 第 5 篇可以对照你已有的 Ubuntu / Fedora 机器动手敲命令。
- 第 6~7 篇建立 Yocto 的整体认识;第 8~11 篇是连贯 demo;第 12 篇用 Git 管理自定义配置。
- 构建 Yocto 很耗时间与磁盘,第一次请预留半天到一天,以及尽量多的空闲硬盘空间(两机型都编会更久)。
- 动手时需要「照着敲命令」:见 附录 A|动手命令速查,从
git clone 起按顺序收录。
Demo 约定(动手部分统一按这个来)
下面这些词后面会反复出现,这里先对齐:
| |
|---|
| 你的 Windows 电脑上的 WSL2 + Ubuntu。全部 bitbake 在这里执行,不要用纯 Windows 原生环境硬跑 Yocto |
| 给 QEMU 用的虚拟 x86_64 机型。优先构建,用 runqemu 在 WSL2 里快速验证配置和 hello |
| 给真机用的「通用 64 位 PC」机型。再构建一份,做成 U 盘,在 Windows PC 上双系统验证 |
| 最后用来安装、运行自建 Linux 的那台电脑:Intel 64 位(x86_64),约 16GB 内存、约 1TB 硬盘,已装 Windows(通常就是跑 WSL2 的那台) |
| Yocto 里「为哪种机器构建」的配置名。本系列对比使用上面两个名字,并各用一套 build 目录(build-qemux86-64 / build-genericx86-64) |
| 构建系统最终打出来的「整套系统」打包结果。本系列用 core-image-base,并带上自定义 hello 程序 |
.wic | 两种常见的磁盘镜像文件格式,可以写进 U 盘用来启动(真机路径重点用) |
| 同一台电脑硬盘上既保留 Windows,又能选进自建 Linux |
| |
系列目录
| | |
|---|
| | |
| | |
| | |
| | |
| | |
| | |
| | 基本流程、BitBake 构建链、WSL2 与双 MACHINE 约定 |
| | Demo:create-layer、双 build、TEMPLATECONF、hello |
| | 默认组件、psplash、GRUB Logo、内核版本、时区语言、裁剪与包管理 |
| | |
| | |
| | |
| | |
学习路径(一句话)
先弄懂「电脑怎么从断电变成能跑程序」,再弄懂「软件是怎么被安装进去的」,最后在 WSL2 里用 Yocto 生成系统:先 QEMU 跑通,再真机双系统验证,并用 Git 托管自定义配置。
启动流程 → 包管理 → Yocto 定制 →WSL2 配置/定制/构建 → qemux86-64(QEMU) 与 genericx86-64(U盘双系统) 对比 →Git 托管 meta-demo
全书锚定的启动链
后面几乎每一篇都会回到这条链。先混个眼熟即可:
power on → bootloader → linux kernel→ rootfs → init → services → application
用中文串起来就是:
上电 → 引导程序 → Linux 内核 → 根文件系统 → 一号进程 init → 各种后台服务 → 你的应用程序。