Linux kernel 如何通过makefile将驱动程序即.ko文件安装或复制到特定位置?

Linux kernel 如何通过makefile将驱动程序即.ko文件安装或复制到特定位置?,linux-kernel,makefile,driver,Linux Kernel,Makefile,Driver,这是我的生成文件: ifneq ($(KERNELRELEASE),) obj-m := dmcdus_dd.o else KDIR := /usr/src/linux-headers-3.13.0-24-generic/ all: $(MAKE) INSTALL_MOD_DIR=kernel/drivers/input/touchscreen -C $(KDIR) M=$$PWD modules_install endif clean: r

这是我的生成文件:

ifneq ($(KERNELRELEASE),)
    obj-m := dmcdus_dd.o
else
    KDIR := /usr/src/linux-headers-3.13.0-24-generic/

    all:
        $(MAKE) INSTALL_MOD_DIR=kernel/drivers/input/touchscreen -C $(KDIR) M=$$PWD modules_install
endif

clean: 
    rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions sample Module.symvers
我已经指定了我需要的路径,在那里我必须使用INSTALL\u MOD\u DIR移动我的dmcdus\u dd.ko文件,并通过modules\u INSTALL安装它。当我在控制台中键入“make”时,我在控制台中得到以下结果:

make INSTALL_MOD_DIR=kernel/drivers/input/touchscreen -C /usr/src/linux-headers-3.5.0-49-generic/ M=$PWD modules_install
make[1]: Entering directory `/usr/src/linux-headers-3.5.0-49-generic'
DEPMOD  3.5.0-49-generic
make[1]: Leaving directory `/usr/src/linux-headers-3.5.0-49-generic'

但是当我转到位置“/lib/modules/3.5.0-49-generic/kernel/drivers/input/touchscreen”时,我在该目录中没有看到dmcdus.ko文件。。。如何将驱动程序复制到该位置?

下面的makefile足以让您构建和安装模块

obj-m := dmcdus_dd.o
KDIR := /usr/src/linux-headers-3.13.0-24-generic/

all:
    make -C $(KDIR) M=$$PWD modules
    make -C $(KDIR) M=$$PWD modules_install

clean:
    make -C $(KDIR) M=$$PWD clean
如果指定INSTALL_MOD_DIR,则模块将移动到该目录

makeINSTALL\u MOD\u DIR=kernel/drivers/input/touchscreen-C$(KDIR)M=$$PWD modules\u INSTALL


在第一次安装之前,您需要使用
make-C$(KDIR)M=$(PWD)模块制作模块
。 如果您想在makefile中稍作更改,请按以下方式编写:

ifneq ($(KERNELRELEASE),)
        obj-m := dmcdus_dd.o
else
        KDIR := /usr/src/linux-headers-3.13.0-24-generic/

all:
        make -C $(KDIR) M=$(PWD) modules #I've changed makefile here
        $(MAKE) INSTALL_MOD_DIR=kernel/drivers/input/touchscreen -C $(KDIR) M=$$PWD modules_install
endif
clean: 
        rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions sample Module.symvers
  • 并确保您有权将文件复制到目标(/input/touchscreen)文件夹。如果没有,那么改变它

您在/usr/src/linux-headers-3.5.0-49-generic/extra中找到了吗?