驱动动态装载后不能卸载 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
求解决方法 http://www.cnblogs.com/feisky/archive/2010/05/29/1746888.html
这里有一个参考方法 回复 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都没有遇到这样的问题吗? 顶是不能解决问题的。有没有动手试试? 楼上正解
页:
[1]