linux内核模块编译-通过Makefile重命名.ko文件名和模块名

linux内核模块编译-通过Makefile重命名.ko文件名和模块名,第1张

假设模块的源文件为hello.c,源码如下:

使用该文件编译内核模块。

正常情况下,Makefile文件内容如下:

执行 make 命令,生成hello.ko文件。

执行 sudo insmod hello.ko 命令,安装该模块。

执行 lsmod 命令,查看安装的模块。就会看到第一行的就是hello模块。

但是,如果想自定义模块名称为 xmodule ,而不是默认的 hello ,如何实现呢?方法如下:

在Makefile中重命名obj-m并将obj-m的依赖关系设置为原始模块(hello)

修改后的Makefile文件内容如下:

将obj-m设置为 xmodule .o,并使 xmodule .o依赖于 hello .o.

执行 make 命令后,生成 xmodule .ko, 而不是 hello .ko,

安装命令: sudo insmod xmodule.ko

查看命令: lsmod ,就会看到被安装名为 xmodule 的模块。

1、先写Makefile编译出***.ko文件

模板如下,保存到命名为Makefile文件里,放到你代码的同级目录下

TARGET=my_proc.ko

LINUXDIR=/lib/modules/$(shell uname -r)/build

PWD=$(shell pwd)

obj-m :=

obj-m += my_proc.o

all: $(TARGET)

$(TARGET): $(OBJS)

make -C $(LINUXDIR) SUBDIRS=$(PWD) modules

clean:

rm -f modules.order Module.symvers $(TARGET) *.mod.c *.o

rm -rf .tmp_versions .mod* Module.markers

2、make

3、root权限下用命令插入模块

insmod my_proc.ko

4、可以用你写的应用程序打开、 *** 作模块了

5、查看模块命令

lsmod

cat /proc/modules

modinfo my_proc.ko

6、root下卸载模块

rmmod


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11857424.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存