如何使用 DKMS 构建设备树覆盖?

How to build device-tree overlays using DKMS?

我正在尝试使用 DKMS 为 运行 内核 (4.4) 构建设备树覆盖。我天真的 Makefile 如下:

PWD := $(shell pwd)

dtbo-y += my-awsome-overlay.dtbo
targets += $(dtbo-y)

all:
        make -C /lib/modules/${kernelver}/build M=$(PWD) dtbs

clean:
        make -C /lib/modules/${kernelver}/build M=$(PWD) clean

但是,我收到以下错误:

make[1]: Entering directory '/usr/src/linux-headers-4.4.13-v7+'
/bin/sh: 1: cannot create arch/arm/boot/dts/overlays/modules.order: Permission denied

我该如何解决?不用root权限应该可以吧?

使用 DKMS 构建 dt 覆盖的标准 Makefile 会是什么样子?

编辑: 我想我已经解决了问题,见下文。但是,仍然欢迎有条件的回答。

  1. my-awsome-overlay.dtbo改为my-awsome.dtbo。假设dts文件名为my-awsome-overlay.dts.

  2. 添加always := $(dtbo-y).

  3. 在没有目标的情况下调用 make(删除 dtbs)。

这是一个有效的 Makefile:

PWD := $(shell pwd)

dtbo-y += my-awsome.dtbo

targets += $(dtbo-y)    
always  := $(dtbo-y)

all:
        make -C /lib/modules/${kernelver}/build M=$(PWD)

clean:
        make -C /lib/modules/${kernelver}/build M=$(PWD) clean