我需要重命名已经存在的驱动程序的内核模块(使用lsmod显示的名称),而不更改源文件的名称。
e.g。
# insmod xxx.ko
<<module loads successfully>>
# lsmod
Module Size Used by Tainted: P
xxx 191527 0
#
我想将 xxx 重命名为 yyy 。
现在我知道更改驱动程序源文件的名称(当涉及单个文件时)会更改模块的名称。
但我不想更改源文件的名称。
答案 0 :(得分:4)
在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
。调用make后,您将获得mynewname.ko
。