如何将树外包添加到buildroot?

How to add an out-of-tree package to buildroot?

我正在使用 buildroot 为 Raspberry Pi 构建自定义文件系统。到目前为止一切正常,但我无法添加树外包。我正在尝试添加 WiringPi,因为 WiringPi 已在 buildroot 中标记为旧版,因此不再包含在内。

我的外部文件夹结构:

./Config.in
./external.desc
./external.mk
./package
./package/Confige
./package/custom_wiringpi
./package/custom_wiringpi/custom_wiringpi.mk
./package/custom_wiringpi/Confige

custom_wiringpi/Confige:

config BR2_PACKAGE_CUSTOM_WIRINGPI
        bool "custom_wiringpi"
        help
          https://github.com/WiringPi/WiringPi

这似乎可行,因为我可以在 menuconfig 中 select wiringpi。但它没有得到构建。 我的 custom_wiringpi.mk:

CUSTOM_WIRINGPI_VERSION = 20210904
CUSTOM_WIRINGPI_SOURCE = 7f8fe26e4f775abfced43c07657a353f03ddb2d0.zip
CUSTOM_WIRINGPI_SITE = https://github.com/WiringPi/WiringPi/archive/

define CUSTOM_WIRINGPI_BUILD_CMDS
        sh build
endef

我希望这至少能下载源代码并解压缩,但 make 完全忽略了这一点。 我的 external.mk:

include $(sort $(wildcard $(BR2_EXTERNAL_ROOTFS_PATH)/package/*/*.mk))

如何让 buildroot 实际执行我定义的构建步骤?


我知道有人在 SO 上提出了类似的问题,但是 none 涵盖了我的问题。

BR2_EXTERNAL_ROOTFS_PATH 很可能在您的 external.mk 中是错误的。 BR2_EXTERNAL__PATH 必须与 external.desc 中定义的 BR2_EXTERNAL 的名称匹配。你能分享你的 external.desc 吗?

请参阅 https://buildroot.org/downloads/manual/manual.html#outside-br-custom or also the training slides https://bootlin.com/doc/training/buildroot/buildroot-slides.pdf 从幻灯片 250 开始的文档。

我忘了在我的 custom_wiringpi.mk 中包含这一行:

$(eval $(generic-package))

现在 Make 的行为符合预期。