reTerminal 的 Buildroot
介绍
Buildroot 是一个易于使用的工具,它简化并自动化了为嵌入式系统构建完整 Linux 系统的过程,使用交叉编译。
为了实现这一目标,Buildroot 能够为您的目标生成交叉编译工具链、根文件系统、Linux 内核镜像和引导加载程序。Buildroot 可以独立地用于这些选项的任何组合(例如,您可以使用现有的交叉编译工具链,仅使用 Buildroot 构建您的根文件系统)。
它具有简单的结构,易于理解和扩展。它仅依赖于众所周知的 Makefile 语言。Buildroot 是一个开源项目,许多开发者每天都在为其贡献代码。
通过遵循下面的指南,您将能够使用 Buildroot 构建自己的 reTerminal 系统镜像。让我们开始吧!
编译 Buildroot 源代码
在本地机器上手动编译
现在我们将继续使用 Buildroot 手动编译 reTerminal 的系统镜像。
注意: 本指南是在安装了 Ubuntu 20.04 的主机 PC 上测试后编写的。但是,它也适用于其他 Linux 系统。
- 步骤 1. 通过安装以下软件包(git、gcc 和 make)在主机 PC 上准备开发环境
sudo apt update
sudo apt install git
sudo apt install build-essential
注意: 如果您已经安装了上述软件包,可以跳过此步骤。
- 步骤 2. 克隆以下 GitHub 仓库
git clone --depth=1 https://github.com/Seeed-Studio/seeed-linux-buildroot.git -b master
- Step 3. Navigate to the seeed-linux-buildroot directory
cd seeed-linux-buildroot
使用 reTerminal 的默认配置进行编译
输入以下命令开始使用默认的 reTerminal 配置进行编译
make reTerminal_64_defconfig
make
使用您自己的配置为 reTerminal 编译
输入以下命令来安装编译所需的软件包,以便使用您自己的配置进行编译
sudo apt install libncurses-dev
- Step 5. Type the following to open the buildroot configuration window
make menuconfig
您可以使用此配置窗口并浏览可用选项,根据您的需求自定义镜像。另外,如果您在此窗口中点击保存和退出而不做任何更改,将加载默认的 reTerminal 配置。
查找编译后的镜像
编译成功后,导航到 seeed-linux-buildroot/output/images
,您将找到编译后的镜像文件 sdcard.img
下载已编译的镜像
如果您想下载使用 Buildroot 已编译好的 reTerminal 系统镜像,可以按照以下步骤进行。
-
步骤 1. 打开此链接进入 seeed-linux-buildroot GitHub 仓库的Actions页面
-
步骤 2. 点击最新的 Seeed reTerminal buildroot 工作流
- 步骤 3. 在Artifacts下,点击 buildroot deploy 开始下载镜像
注意: 下载镜像后,解压镜像以获得 sdcard.img 文件
将镜像烧录到 reTerminal
现在我们将把镜像烧录到 reTerminal 上 CM4 的 eMMC 中。
按照此 wiki 中的步骤操作,并注意以下步骤:
注意: 当您打开 Raspberry Pi Imager 时,点击 CHOOSE OS,选择 Use custom 并选择下载的 sdcard.img 文件。
reTerminal 首次启动
将系统镜像烧录到 reTerminal 后,给 reTerminal 通电。在这里您将看到内核日志在 reTerminal LCD 上弹出,最后将打开一个使用 Qt 制作的演示应用程序。
默认系统镜像的启动时间约为 30 秒
分析 Buildroot 镜像
如前所述,Buildroot 是一个非常强大的工具,它可以依赖第三方库和工具,能够快速构建我们需要的内容。如果您想了解 Buildroot 编译时间、依赖关系、编译消耗的资源大小等,通过代码检查是非常不方便的。但是,Buildroot 提供了可视化分析工具来分析上述内容,我们只需要几个简单的命令就可以使用它们。
首先安装以下软件包
sudo apt install python3-matplotlib python3-numpy
生成依赖关系图
Buildroot 的工作之一是理解包之间的依赖关系,并确保它们以正确的顺序构建。这些依赖关系有时可能很复杂,对于给定的系统,通常不容易理解为什么某个包被 Buildroot 引入并成功构建。为了帮助理解依赖关系并更好地理解不同组件在嵌入式 Linux 系统中的作用,Buildroot 能够生成依赖关系图(PDF 格式)
- 步骤 1. 安装以下包
sudo apt install graphviz
- Step 2. Generate dependency diagrams
make graph-depends
执行上述命令后,依赖关系图将在 seeed-linux-buildroot > output > graphs
目录下生成:
- graph-depends.pdf
- graph-depends.dot
注意: 点击上图可查看放大版本
生成编译资源消耗大小分析
Buildroot 可以生成编译过程中资源消耗大小的分析。
输入以下命令
make graph-size
执行上述命令后,可视化分析文件将在 seeed-linux-buildroot > output > graphs
目录下生成:
- graph-size.pdf
- file-size-stats.csv
- package-size-stats.csv
注意: 点击上图可查看放大版本
测试 Buildroot 镜像
要使用 reTerminal 测试上述 Buildroot 镜像,您可以访问 reTerminal 硬件和接口使用说明 并参考其中提到的步骤。
资源
- [网页] Buildroot 文档
- [GitHub] seeed-linux-buildroot
技术支持与产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。