我有一个 Linux 内核分支的 Yocto 配方,我需要更改我需要支持的不同机器的 defconfig。 其中一台机器使用树内 defconfig,其他机器将需要树外 defconfig(最终需要设备树)。这类似于这个未回答的问题。
我遇到的问题是,根据我的文件结构,当我制作特定于机器的
SRC_URI
时,bitbake 无法找到 defconfig。
recipe-folder
|-files
| |-machineA
| | |-machineA.patch
| |-machineB
| | |-defconfig
| | |-machineB.patch
|-linux-recipe_0.1.bb
如果我尝试为 machineB 构建,我会这样做:
SRC_URI += "file://defconfig"
Yocto 能够找到 defconfig 并构建,请参阅这个问题。
但是,如果我希望配方支持机器A和B:
KBUILD_DEFCONFIG:machineA = "machineA_intree_defconfig"
SRC_URI:machineA += "file://machineA.patch"
SRC_URI:machineB += "file://defconfig file://machineB.patch"
并尝试构建 machineB Yocto 找不到 defconfig 文件。
即使我添加以下行:
FILESEXTRAPATHS:prepend:machineA := "${THISDIR}/files/machineA:"
FILESEXTRAPATHS:prepend:machineB := "${THISDIR}/files/machineB:"
Yocto 仍然找不到文件。
如何让
SRC_URI
在每台机器上工作?
你应该尝试这样的事情:
SRC_URI:machineA += "file://machineA/machineA.patch"
SRC_URI:machineB += "file://machineB/defconfig \
file://machineB/machineB.patch"
您在 URL 中指定的文件名可以是文件的绝对路径或相对路径。
更多详情可以在这里找到: