我有一个关于在 Yocto 中添加新机器的问题。
我正在尝试在 Yocto 中添加一个新层和一台新机器。该机器基于 Atmels SAMA5D27-SOM1-EK-SD 评估板。我想为这块板启用另一个 UART。
我克隆了该板的内核源代码(linux-at91)并添加了另一个基于 at91sama5d27-som1-ek-sd.dts 文件的 DTS 文件。我进行了更改以启用 UART0。然后我将这个新的 DTS 文件添加到 linux-at91/arch/arm/boot/dts 的 Makefile 中。我做了一个补丁来保存这些更改。
我正在使用 meta-atmel 层,并按照此处概述的说明为该板构建图像。
我已经定义了另一个层,它将充当定义我的自定义机器的新 Yocto 层。我在 recipes-kernel 中添加了一些 .bbappend 文件来添加补丁(它向 linux at91 内核源代码添加了一个新的 dts 文件)并将我们的自定义机器添加为兼容机器。我的理解是,我们可以继续使用 meta-atmel 层中的定义,但在同一路径中的 meta-axon 层中添加 .bbappend 文件,这将应用我们想要的更改。
我对 recipes-bsp 目录做了同样的事情。在 meta-axon 层,recipes-bsp 中的所有 .bbappend 文件仅将我们的自定义机器添加到兼容机器列表中。但是,当我继续构建时,我收到此错误:
NOTE: Resolving any missing task queue dependencies
ERROR: Nothing PROVIDES 'at91bootstrap-sam-ba'
at91bootstrap-sam-ba was skipped: incompatible with machine axon-ft3-sp-machine (not in COMPATIBLE_MACHINE)
我很困惑,因为在 meta-atmel 中定义 at91bootstrap-sam-ba 的配方文件没有提到任何兼容的机器,所以我想从 meta-atmel 层使用它而不需要更改它。(已编辑)