1、课程导学与开发环境准备:Buildroot简介、实时Linux概念、安装虚拟机与Ubuntu、配置Git与Repo

1.1 这门课到底讲什么?

大家好,我是你们的讲师。在嵌入式Linux这个行当摸爬滚打了十几年,我见过太多工程师在实时系统上栽跟头。说白了,普通Linux做桌面、做服务器没问题,但一碰到工业控制、机器人、音频处理这些对时间要求苛刻的场景,它就露怯了。

这门课的核心,就是带大家用Buildroot这个工具,从零构建一个「实时Linux系统」。你想想看,一个系统既能跑Linux丰富的生态,又能保证任务在微秒级响应——这才是嵌入式开发的终极浪漫。

我个人习惯把Buildroot比作「乐高积木」。它不像Yocto那么庞大复杂,也不像手动交叉编译那么原始。你只需要选好内核版本、文件系统、应用软件,它就能帮你打包成一个完整的系统镜像。嗯,我在项目里用它做过工业PLC的底层系统,也做过无人机飞控的实时内核,确实省心。

1.2 什么是实时Linux?

先别急着敲命令,咱们得先搞清楚一个概念:什么是「实时」?

普通Linux的调度器讲究「公平」——每个进程轮流用CPU。但实时系统讲究「确定性」——我说这个任务必须在1毫秒内完成,那就必须完成,天塌下来也得完成。

Linux内核本身不是实时的。但社区搞了个「PREEMPT_RT」补丁,把它变成了硬实时内核。说白了,就是让内核可以被高优先级任务随时打断。我在一个医疗设备项目里用过这个方案,传感器数据采集必须每100微秒触发一次,普通内核抖动太大,换了RT内核后,稳得像瑞士钟表。

实时Linux的两种主流方案:

  • PREEMPT_RT补丁:给标准内核打补丁,实现硬实时。适合对实时性要求极高的场景。
  • Xenomai/Cobalt:双内核方案,一个跑Linux,一个跑实时核。适合需要强隔离的场景。

这门课我们主要用PREEMPT_RT,因为它在Buildroot里集成得最好,社区支持也最活跃。

1.3 开发环境准备:虚拟机与Ubuntu

工欲善其事,必先利其器。咱们先搭好开发环境。

我建议用虚拟机来装Ubuntu。为什么?因为Buildroot编译时会下载大量源码包,万一搞坏了系统,虚拟机快照一恢复就完事。我在公司里就用VMware Workstation,家里用VirtualBox,都挺好。

1.3.1 安装虚拟机

这里我推荐VirtualBox,免费、跨平台、够用。你直接去官网下载对应操作系统的版本安装就行。安装过程没什么坑,一路下一步。

小技巧: 虚拟机内存至少分配4GB,硬盘建议40GB以上。Buildroot编译一次,光下载的源码包就能吃掉好几个G。

1.3.2 安装Ubuntu 22.04 LTS

我选Ubuntu 22.04 LTS,因为它稳定,软件源也全。你下载ISO镜像后,在虚拟机里挂载安装就行。

安装时记得选「最小安装」,别装那些桌面软件,省空间。分区的话,我建议这样:

分区 大小 挂载点
/boot 1GB /boot
swap 4GB 交换空间
/ 剩余全部 /

我曾经犯过一个错:/boot分区只给了200MB,结果内核版本一多,空间就不够用了。嗯,1GB是安全值。

1.4 配置Git与Repo

Buildroot的源码管理用的是Git,而Google的Repo工具能帮我们管理多个Git仓库。咱们先配好这两个工具。

1.4.1 安装Git

打开终端,执行:

sudo apt update
sudo apt install git git-lfs -y

装完后配置用户名和邮箱,这是Git提交代码时的身份标识:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

我个人习惯再加两个配置:

git config --global core.editor "vim"
git config --global color.ui true

第一个把默认编辑器改成Vim,第二个让Git输出带颜色,看着舒服。

1.4.2 安装Repo

Repo是Google为Android开发的一个工具,用来管理多个Git仓库。Buildroot的某些扩展包也会用到它。

安装很简单:

mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

然后把~/bin加到PATH里:

echo 'export PATH=$PATH:~/bin' >> ~/.bashrc
source ~/.bashrc

注意: 如果你在墙内,下载repo可能会失败。可以改用国内镜像:curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo

1.5 验证环境

环境搭好了,咱们验证一下:

git --version
repo --version

如果能看到版本号,说明环境没问题。接下来就可以开始我们的Buildroot实时Linux之旅了。

我记得第一次用Buildroot时,光配环境就折腾了一下午。现在有了虚拟机快照,你随时可以回滚到干净状态。嗯,这就是经验的价值。

本章小结:

  • 实时Linux的核心是「确定性」,PREEMPT_RT是主流方案。
  • Buildroot是构建嵌入式Linux系统的利器,比Yocto简单,比手动编译高效。
  • 开发环境用VirtualBox + Ubuntu 22.04 LTS,内存4GB+,硬盘40GB+。
  • Git和Repo是源码管理的基础,配好用户名和邮箱。

下一章,咱们就正式用Buildroot来编译第一个实时Linux内核。准备好了吗?