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

时间:2016-08-18 20:31:20

标签: linux makefile linux-kernel device-tree 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 个答案:

答案 0 :(得分:0)

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

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

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

  4. 这是一个有效的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