在linux中添加一个模块驱动,并手动加载和卸载

本文介绍了如何在Linux系统中添加一个模块驱动,包括如何使用'obj-m += hello.o'进行配置,通过'insmod hello.ko'加载模块,用'lsmod'查看已加载模块,以及使用'rmmod hello'卸载模块。在编译过程中可能遇到的错误及解决方法也进行了简要提及。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考《linux设备驱动程序》第三版,写一个简单的hello.c文件,然后放到linux源码目录下
的/drivers/char/目录下,并修改该目录下的Makefile文件,在适当的位置添加一项:

“obj-m   += hello.o”保存即可。


然后在内核源码的顶层目录下执行:make M=drivers/char/ modules,然后会看到在drivers/char/
目录下,会生成hell0.ko文件,这就是模块文件,把该文件copy到SD卡中。在real6410开发板中的
/mnt/目录下,找到sd卡的挂载文件sdcard,然后找到hello.ko文件,直接用命令 insmod 
hello.ko,即可在看到终端上显示的打印消息,手动加载起来后可以使用命令lsmod查看当前挂在起

来的模块,最后使用rmmod hello(没有.ko)即可卸载模块。

# insmod hello.ko //加载hello.ko模块

# lsmod //查看当前加载模块

# rmmod hello //卸载模块,没有.ko

在编译模块时,可能会遇到“*****没有规则可以创建目标“....”****”的错误,只要先执行一

下make distclean,然后再上面的方法编译模块就好了。
这种编译成模块的方法有点投机取巧的感觉,接下来要在drivers/目录下自己建一个文件夹,并自
己写Makefile来编译添加驱动,这样能更好的理解系统的编译的流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值