2012-08-27 62 views
1
#include <linux/version.h> 
#include <linux/kernel.h> 
#include <linux/jiffies.h> 
#include <linux/module.h> 
#include <linux/interrupt.h> 
#include <linux/fs.h> 
#include <linux/types.h> 
#include <linux/string.h> 
#include <linux/socket.h> 
#include <linux/errno.h> 
#include <linux/fcntl.h> 
#include <linux/in.h> 
#include <linux/init.h> 
#include <linux/miscdevice.h> 
#include <linux/platform_device.h> 
#include <linux/slab.h> 
#include <asm/system.h> 
#include <asm/uaccess.h> 
#include <asm/io.h> 

#include <linux/mm.h> 
#include <net/checksum.h> 
#include <linux/cdev.h> 

    static int t_open(struct inode *inode, struct file *filp) 
    { 
     return nonseekable_open(inode, filp); 
    } 


    static struct file_operations testmod_fops = { 
     .open = t_open, 
     .owner = THIS_MODULE 
    }; 


    static struct miscdevice testmod_miscdev = { 
     MISC_DYNAMIC_MINOR, 
     "my_module", 
     &testmod_fops, 
    }; 





    static int __init testmod_init(void) 
    { 
     printk("module is on\n"); 
     misc_register(&testmod_miscdev); 

     return 0; 


    }; 

    static void __exit testmod_exit(void) 
    { 
     printk("about exit \n"); 
     misc_deregister(&testmod_miscdev); 
    } 





    module_init(testmod_init); 
    module_exit(testmod_exit); 
    MODULE_LICENSE("GPL"); 
    MODULE_AUTHOR("0x90"); 
    MODULE_DESCRIPTION("my_module"); 

爲什麼我會在這個簡單的例子中得到errno2爲什麼在嘗試rmmod時會得到「rmmod:delete_module'/ my_module'failed(errno 2)」?

+0

insmod/tmp/my_module工作正常,刪除:rmmod/tmp/my_module – 0x90

回答

2

基本上你必須輸入內部模塊名稱而不是文件名。你可以通過輸入lsmod找到模塊名稱。

所以

rmmod <your_module_name>應該工作。

相關問題