如何重命名内核模块名称而不重命名.ko传递给insmod?

时间:2014-06-25 19:54:02

标签: linux module kernel kernel-module

我需要重命名已经存在的驱动程序的内核模块(使用lsmod显示的名称),而不更改源文件的名称。

e.g。

# insmod xxx.ko
<<module loads successfully>>
# lsmod
Module                  Size  Used by    Tainted: P
xxx                   191527  0
#
  • 我想将 xxx 重命名为 yyy

  • 现在我知道更改驱动程序源文件的名称(当涉及单个文件时)会更改模块的名称。

  • 但我不想更改源文件的名称。

1 个答案:

答案 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