dannylsl 发表于 2011-8-5 21:48:47

驱动动态装载后不能卸载 insmod rmmod

虚拟机安装了Ubuntu 10.04
交叉编译环境 为Linux 2.6.36.2
内核编译成功,arm-linux-gcc环境 4.2.2 正常
成功编译 驱动hello.c
hello.c   部分内容
************************
static int h_init(void){
        printk(KERN_INFO "Hello, I am coming !\n");
        return 0;
}

static int h_exit(void){
        printk(KERN_INFO "GoodBye~");
        return 0;
}
************************
make编译成功# ls
Makefile      hello.c         hello.mod.c   hello.o
Module.symvershello.ko      hello.mod.o   modules.order
# insmod hello.ko
# cat /proc/kmsg
<6>Hello, I am coming !
^C
# lsmod
hello 794 0 - Live 0xbf000000
# rmmod hello.ko
rmmod: chdir(/lib/modules): No such file or directory
# insmod的时候装载成功,但是 rmmod的时候 却显示 No such file directory
求解决方法

飞凌-fatfish 发表于 2011-8-6 08:15:22

http://www.cnblogs.com/feisky/archive/2010/05/29/1746888.html
这里有一个参考方法

dannylsl 发表于 2011-8-6 10:29:19

回复 2# 飞凌-fatfish


试过了,虽然 错误提示没有了,但是我再查看lsmod的时候,hello这个模块还是存在,没有真正卸载
查了些资料,用      modprobe -r hello可以卸载# modprobe -r hello.ko
# lsmod
hello 794 0 - Live 0xbf006000
# modprobe -r hello   
modprobe: module 'hello' not found
# lsmod
#
但是里面的提示很奇怪....见上面的代码
不过我查看 cat /proc/kmsg的时候 里面之后insmod的时候插入的信息,没有卸载时的信息"GoodBye"
这里附上hello.c代码#include <linux/module.h>

static int h_init(void){
        printk(KERN_INFO "Hello, I am coming !\n");
        return 0;
}

static int h_exit(void){
        printk(KERN_INFO "GoodBye~");
        return 0;
}
module_init(h_init);
module_exit(h_exit);

MODULE_AUTHOR("Danny Lee<dannylsl@sina.com>");
MODULE_DESCRIPTION("HELLO_WORLD Driver Test");
MODULE_LICENSE("GPL");觉得这卸载可能不太正常...
请问飞凌技术们开发的时候使用insmod和rmmod都没有遇到这样的问题吗?

亦可追寻 发表于 2011-10-14 21:54:20

飞凌-fatfish 发表于 2011-10-15 09:25:00

顶是不能解决问题的。有没有动手试试?

wujiaheng 发表于 2012-6-19 15:02:29

ywmlovecss 发表于 2012-6-19 15:25:07

飞凌-chongzi 发表于 2012-6-19 16:38:20

楼上正解
页: [1]
查看完整版本: 驱动动态装载后不能卸载 insmod rmmod