从零构建Ubuntu Base根文件系统:实战开发板移植指南

1. 为什么选择Ubuntu Base来构建根文件系统?

如果你玩过树莓派或者类似的ARM开发板,比如瑞芯微的RK3528,你可能用过官方提供的现成系统镜像。这些镜像开箱即用,确实方便。但当你需要深度定制,比如预装自己的应用、裁剪掉不需要的组件以节省宝贵的存储空间,或者适配一块全新的定制硬件时,从零开始构建一个属于自己的根文件系统就成了必经之路。

这时候,Ubuntu Base 就是你最好的起点。它是什么?你可以把它理解成Ubuntu官方提供的“骨架”或者“最小化系统”。它只包含了最核心的包管理器(apt)、最基本的命令行工具和库,体积通常只有几十兆。相比BusyBox,它背后有Ubuntu庞大的软件仓库支持,你可以用熟悉的 apt install 安装几乎任何你需要的软件;相比Yocto或Buildroot,它的学习曲线平缓得多,不需要理解复杂的层和配方,更像是在搭建一个标准的Linux系统。

我这次实战的目标平台是瑞芯微的RK3528开发板。选择Ubuntu Base 20.04 LTS(Focal Fossa)版本,主要是考虑到其长期支持带来的稳定性,以及国内镜像源(如阿里云)对ARM架构的20.04版本支持比较完善,下载和更新软件包速度更快。当然,22.04版本也是可行的,但需要确保你的内核和工具链兼容性。下面,我就带你一步步把这个“骨架”填充、修剪,最终移植到开发板上运行起来。

2. 搭建构建环境与获取基础材料

工欲善其事,必先利其器。构建根文件系统主要在x86的Linux主机上完成,我们需要一个干净、高效的环境。

2.1 宿主环境准备

我使用的是 Ubuntu 22.04 LTS的虚拟机作为构建主机。为什么用虚拟机?因为整个过程会涉及挂载、chroot等操作,在独立的环境里折腾更安全,不怕把宿主机搞乱。物理机当然也可以,但务必注意操作路径,避免误操作。

首先,更新系统并安装必要的工具:

sudo apt update
sudo apt upgrade -y
sudo apt install -y qemu-user-static binfmt-support tar vim

这里的关键是 qemu-user-static。我们的构建主机是x86架构,而目标板是ARM架构(aarch64)。这个包提供了静态编译的QEMU用户态模拟器,允许我们在x86主机上直接运行ARM架构的程序。没有它,后续的chroot环境根本无法工作。

2.2 下载Ubuntu Base根文件系统

前往Ubuntu官方镜像站:http://cdimage.ubuntu.com/ubuntu-base/releases/ 找到20.04 LTS版本,下载对应ARM64架构的压缩包:ubuntu-base-20.04.5-base-arm64.tar.gz。你也可以用wget直接下载:

wget http://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04.5-base-arm64.tar.gz

我选择20.04而非更新的版本,一方面是出于与内核版本(如5.10)兼容性的考虑,另一方面是这个版本的社区资源和镜像支持非常成熟,踩坑时更容易找到解决方案。

2.3 初始化工作目录

创建一个独立的工作目录,所有操作都在这里进行,保持清晰。

mkdir -p ~/rk3528_rootfs
cd ~/rk3528_rootfs

将下载的Base包解压到这个目录。务必使用sudo并保留文件权限,否则会导致后续问题。

sudo tar -xpf /path/to/ubuntu-base-20.04.5-base-arm64.t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值