gpt4 book ai didi

linux - 如何在不重命名传递给 insmod 的 .ko 的情况下重命名内核模块名称?

转载 作者:IT王子 更新时间:2023-10-29 00:32:16 25 4
gpt4 key购买 nike

我需要重命名一个已经存在的驱动程序的内核模块(用 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 .调用 make 后,您将获得 mynewname.ko

关于linux - 如何在不重命名传递给 insmod 的 .ko 的情况下重命名内核模块名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24417395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com