加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

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

发布时间:2021-01-01 13:16:35 所属栏目:Linux 来源:网络整理
导读:我需要重命名已经存在的驱动程序的内核模块(使用lsmod显示的名称),而不更改源文件的名称. 例如 # insmod xxx.komodule loads successfully# lsmodModule Size Used by Tainted: Pxxx 191527 0# 我想将xxx重命名为yyy. 现在我知道更改驱动程序源文件的名称(当

我需要重命名已经存在的驱动程序的内核模块(使用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.但我希望模块成为我的名字.

这是完整的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.

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读