如何将 buildroot 设置更新到更高版本?

Nic*_*ing 6 buildroot

我继承的一个项目使用了一个非常旧版本的 buildroot,但我想将其更改为使用仅在以后的 buildroot 版本中添加的功能。

是否有一种直接的方法可以更新 buildroot 设置以使用更高版本?

例如,如果我保存一个 defconfig 文件并在以后的 buildroot 版本中导入它,这是否可行,或者是否有实际原因为什么不可行?是否有我需要携带的其他配置文件(例如内核、busybox 等)?谢谢!

Jon*_*ham 5

不。

事实上,情况更糟。

您可以开始使用较新的 Buildroot 版本和旧的默认配置文件,但您需要仔细检查生成的配置,以查看已弃用的软件包以及其版本与您可能添加到 Buildroot 文件系统的任何应用程序软件不兼容的软件包。某些软件包(例如 opencv)的名称会随着时间而改变,因此您需要注意生成的 .config 文件以确保您需要的所有软件包都在那里。

如果您在 Buildroot 中构建工具链或 Linux 内核(通常完成但通常不是很好的做法),那么您需要确保将新配置设置为构建旧版本的内核和编译器。这些可能太旧了,无法在较新版本的 Buildroot 中构建某些包。

如果在升级 Buildroot 的同时升级内核,则需要将旧内核配置文件移植到新内核版本。由于内核配置选项经常更改,您可能需要从开发板的 defconfig 开始,然后使用 make menuconfig 手动添加您需要的配置。

Busybox 的波动性较小,因此您的旧配置有可能会起作用。

如果您的旧 Buildroot 配置使用 postbuild 或 postimage 脚本,您将需要查看它们,但我猜测它们不需要任何更改。

您应该为这项工作分配至少一周的时间,也许更多,具体取决于配置的复杂程度。请记住,如果您因特定 SoC 的补丁而被迫使用较旧的供应商内核,例如,用于 BSC9131 的 Freescale 2.6.33.9 内核,那么如果不进行六到十二次,您想要进行的升级可能是不可能的几个月的工作将供应商的内核补丁移植到更新的内核版本。

干杯。