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)文件夹。如果没有,那么改变它