这是我的makefile:
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_MOD_DIR&移动我的dmcdus_dd.ko文件。通过modules_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文件...如何将我的驱动程序复制到该位置?
答案 0 :(得分:1)
首先安装之前,您需要使用make -C $(KDIR) M=$(PWD) modules
制作模块。
如果你想在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
答案 1 :(得分:0)
下面的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,则模块将移动到该目录
make INSTALL_MOD_DIR = kernel / drivers / input / touchscreen -C $(KDIR)M = $$ PWD modules_install