Buildroot:仅安装和构建工具链

Posted

技术标签:

【中文标题】Buildroot:仅安装和构建工具链【英文标题】:Buildroot: install and build the toolchain only 【发布时间】:2017-11-15 05:04:33 【问题描述】:

我只想为我的 Buildroot 项目安装和构建工具链。 make help 建议命令 make <options> toolchain 应该可以工作;但是,运行该命令只会返回 Nothing to be done for 'toolchain'. 并且永远不会创建 output/host

【问题讨论】:

【参考方案1】:

您首先必须配置 Buildroot 以指示它您想要生成的工具链。请参阅 Buildroot 用户手册中的 Buildroot quick start。

如果你刚刚下载了 Buildroot,生成工具链的步骤是:

    运行make menuconfigTarget options 中选择您的硬件平台和 ABI 在Toolchain 中配置您想要的工具链类型 退出保存 运行make toolchain

工具链位于output/host/

【讨论】:

Buildroot 在运行配置之前尝试执行“制作工具链”时确实应该报错,所以我提交了patchwork.ozlabs.org/patch/776011 仅供参考,Arnout 修复了此问题,现在未配置的 Buildroot 将在您运行“make toolchain”时打印错误,而不是旧的误导性消息。修复将在下一个 Buildroot 版本 2017.08 中进行。 (仅供参考,更改在提交中git.buildroot.net/buildroot/commit/…)【参考方案2】:

Buildroot manual 中记录了一种仅构建工具链的最新方法,该方法可在 Buildroot 内部和外部使用。

虽然 Luca 的答案中的 make toolchain 确实构建了工具链,但它还将其他主机依赖项放入 output/host/,与下面的 make sdk 相比,获得干净的工具链稍微困难一些,它会在output/images/:

6.1.3。使用 Buildroot 构建外部工具链

Buildroot 内部工具链选项可用于创建外部工具链。以下是构建内部工具链并将其打包以供 Buildroot 本身(或其他项目)重用的一系列步骤。

创建一个新的 Buildroot 配置,包含以下详细信息:

为您的目标 CPU 架构选择适当的目标选项Toolchain 菜单中,Toolchain type 保留默认的 Buildroot toolchain,并根据需要配置您的工具链 在系统配置菜单中,选择作为初始化系统,选择作为/ bin/shTarget packages 菜单中,禁用 BusyBox文件系统图像 菜单中,禁用 tar 根文件系统

然后,我们可以触发构建,并要求 Buildroot 生成一个 SDK。这将为我们方便地生成一个包含我们的工具链的 tarball:

make sdk

这会在 $(O)/images 中生成 SDK 压缩包,名称类似于 arm-buildroot-linux-uclibcgnueabi_sdk-buildroot.tar.gz。保存此 tarball,因为它现在是您可以在其他 Buildroot 项目中作为外部工具链重复使用的工具链。

【讨论】:

以上是关于Buildroot:仅安装和构建工具链的主要内容,如果未能解决你的问题,请参考以下文章

buildroot 构建交叉编译工具链

Buildroot构建指南——工具链

buildroot 介绍

buildroot 不考虑配置更改

在 Yocto 树中使用预构建的工具链

如何在 buildroot 中重建 rootfs