尝试使用自定义DTB构建core-image-minimal时出现Makefile错误

时间:2018-05-24 14:03:07

标签: linux makefile linux-kernel yocto imx6

我是Yocto项目的新手,我正在尝试为基于i.MX6QP / Q / DL SABRE Automotive的定制板构建一个简单的核心图像最小图像。现在我只使用meta-freescale图层。

我有一些我想要构建的自定义DTS文件,并包含在Linux内核的fitImage中。

这是我到目前为止所做的:

  1. 我已经使用自定义计算机创建了自定义图层,并在 conf / machine.conf 文件中指定了我要使用的DTB:

    KERNEL_DEVICETREE = " \
        imx6qp-g25-protoc-1280x480.dtb \
        ...
    "
    
  2. 我在 / yocto / poky / meta-custom / recipes-kernel / linux / 中创建了 linux-fslc-imx _%。bbappend 文件,引用了包含git diff的 .patch 文件,如done here。在.patch文件中,我包含了所需的 arch / arm / boot / dts / Makefile 修改和DTS文件。
  3. 不幸的是,在尝试构建core-image-minimal时,DTB构建失败并显示以下消息:

      

    make [3]: *没有规则来制作目标'arch / arm / boot / dts / imx6qp-g25-protoc-1280x480.dtb'。停止。   arch / arm / Makefile:322:目标'imx6qp-g25-protoc-1280x480.dtb'的配方失败   make [2]: [imx6qp-g25-protoc-1280x480.dtb]错误2   Makefile:146:目标'sub-make'的配方失败   make [1]: [sub-make]错误2   Makefile:24:目标'__sub-make'的配方失败   make:* [__sub-make]错误2   错误:oe_runmake失败了   警告:从shell命令退出代码1。

    我已经通过查看源文件夹 linux-fslc-imx / 4.1-2.0.x + gitAUTOINC + 6c1ad49339-r0 / build / source / arch / arm检查了补丁是否已应用/ boot / dts Makefile 是正确的,并且 DTS 文件存在。

2 个答案:

答案 0 :(得分:0)

看起来问题是我没有在内核配方中包含 defconfig 文件,因此CONFIG_SOC_IMX6Q变量未设置为y使我的目标未被检测到在 arch / arm / boot / dts / Makefile 中。包含 defconfig ARCH_SOC_IMX6Q=y解决了我的问题。

答案 1 :(得分:0)

或者是配置文件 imx6q.cfg ,其中包含以下选项:

ARCH_SOC_IMX6Q=y
可以创建

并将其放置在 linux-xxx.bb 配方旁边,并放置在 files 子文件夹中。

在这种情况下,内核提供的任何 defconfig 都将在编译或应用任何补丁之前启用必要的选项。

使用以下示例说明如何在 linux-xxx.bb 配方中附加创建的配置文件:

SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git;protocol=git;nocheckout=1;name=machine;branch=linux-5.4.y; \
           file://imx6q.cfg"