Skip to main content

reTerminal 的 Buildroot

pir

介绍​

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
  • 步骤 3. 导航到 seeed-linux-buildroot 目录
cd seeed-linux-buildroot

使用 reTerminal 的默认配置进行编译​

输入以下命令开始使用默认的 reTerminal 配置进行编译

make reTerminal_64_defconfig
make

使用您自己的配置为 reTerminal 编译​

输入以下命令来安装编译所需的软件包,以便使用您自己的配置进行编译

sudo apt install libncurses-dev
  • 步骤 5. 输入以下内容以打开 buildroot 配置窗口
make menuconfig

pir

您可以使用此配置窗口并浏览可用选项,根据您的需求自定义镜像。另外,如果您在此窗口中点击保存和退出而不做任何更改,将加载默认的 reTerminal 配置。

查找编译后的镜像​

编译成功后,导航到 seeed-linux-buildroot/output/images,您将找到编译后的镜像文件 sdcard.img

pir

下载已编译的镜像​

如果您想下载使用 Buildroot 已编译好的 reTerminal 系统镜像,可以按照以下步骤进行。

  • 步骤 1. 打开此链接进入 seeed-linux-buildroot GitHub 仓库的Actions页面

  • 步骤 2. 点击最新的 Seeed reTerminal buildroot 工作流

pir

  • 步骤 3. 在Artifacts下,点击 buildroot deploy 开始下载镜像

pir

注意: 下载镜像后,解压镜像以获得 sdcard.img 文件

将镜像烧录到 reTerminal​

现在我们将把镜像烧录到 reTerminal 上 CM4 的 eMMC 中。

按照此 wiki 中的步骤操作,并注意以下步骤:

注意: 当您打开 Raspberry Pi Imager 时,点击 CHOOSE OS,选择 Use custom 并选择下载的 sdcard.img 文件。

pir

reTerminal 首次启动​

将系统镜像烧录到 reTerminal 后,给 reTerminal 通电。在这里您将看到内核日志在 reTerminal LCD 上弹出,最后将打开一个使用 Qt 制作的演示应用程序。

默认系统镜像的启动时间约为 30 秒

pir

分析 Buildroot 镜像​

如前所述,Buildroot 是一个非常强大的工具,它可以依赖第三方库和工具,能够快速构建我们需要的内容。如果您想了解 Buildroot 编译时间、依赖关系、编译消耗的资源大小等,通过代码检查是非常不方便的。但是,Buildroot 提供了可视化分析工具来分析上述内容,我们只需要几个简单的命令就可以使用它们。

首先安装以下软件包

sudo apt install python3-matplotlib python3-numpy

生成依赖关系图​

Buildroot 的工作之一是理解包之间的依赖关系,并确保它们以正确的顺序构建。这些依赖关系有时可能很复杂,对于给定的系统,通常不容易理解为什么某个包被 Buildroot 引入并成功构建。为了帮助理解依赖关系并更好地理解不同组件在嵌入式 Linux 系统中的作用,Buildroot 能够生成依赖关系图(PDF 格式)

  • 步骤 1. 安装以下包
sudo apt install graphviz
  • 步骤 2. 生成依赖关系图
make graph-depends

pir

执行上述命令后,依赖关系图将在 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 硬件和接口使用说明 并参考其中提到的步骤。

资源​

技术支持与产品讨论​

感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...