我需要重命名已有驱动程序的内核模块(使用lsmod显示的名称),而不更改源文件的名称。
例如
# insmod xxx.ko <<module loads successfully>> # lsmod Module Size Used by Tainted: P xxx 191527 0 #
我想把xxx重命名为yyy 。
现在我知道更改驱动程序源文件的名称(当涉及单个文件时)会更改模块的名称。
但我不想更改源文件的名称。
在Makefile中重命名obj-m
,并将obj-m
依赖关系设置为原始模块。
例如,我有文件hello.c
包含我所有的源代码。 但是我希望模块是我的新mynewname
。
这里是整个Makefile这样做:
obj-m := mynewname.o mynewname-objs := hello.o KERNELDIR ?= /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules clean: $(MAKE) -C $(KERNELDIR) M=$(PWD) clean
我将obj-m
设置为mynewname.o
,并使mynewname.o
依赖于hello.o
。 调用后,你会得到mynewname.ko
。