如何使用DKMS构建设备树叠加层?

3

我正在尝试为运行的内核(4.4)使用DKMS构建设备树覆盖。 我天真的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个回答

1
  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

很棒能够看到覆盖层的 dkms.conf。 - ensonic
1
@ensonic 请看这里:https://github.com/taudac/taudac-driver-dkms/blob/overlay/dkms.conf - sergej
我认为这只能在Rasp Pi内核上运行,是吗?我也很想解决这个问题,使其适用于标准(或Debian)内核。不过,还是感谢您提供的提示,让我有了一个开始! - Jarrad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接