我继承的项目使用了很老的buildroot版本,但是我想将其更改为使用仅在以后的buildroot版本中添加的功能。

有没有直接的方法可以将buildroot安装程序更新为使用更高版本?

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

最佳答案

不。

实际上,更糟糕的是。

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

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

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

Busybox的波动性较小,因此您的旧配置有可能正常工作。

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

根据配置的复杂性,您应该为这项工作分配至少一周的时间,也许更多。请记住,如果由于特定SoC的补丁程序而不得不使用较旧的供应商内核,例如BSC9131的Freescale 2.6.33.9内核,那么不进行六到十二次升级就可能无法进行升级。几个月的工作,将供应商的内核补丁移植到了较新的内核版本。

干杯。

关于buildroot - 如何将buildroot安装程序更新为更高版本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17470232/

10-15 20:14