我需要重命名已经存在的驱动程序的内核模块(使用lsmod显示的名称),而不更改源文件的名称.
例如
# insmod xxx.ko
<
>我想将xxx重命名为yyy.
>现在我知道更改驱动程序源文件的名称(当涉及单个文件时)会更改模块的名称.
>但我不想更改源文件的名称.
最佳答案
在Makefile中重命名obj-m并将obj-m的依赖关系设置为原始模块.
例如,我有包含所有源代码的文件hello.c.但我希望模块成为我的名字.
这是完整的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.调用make后你会得到mynewname.ko.