为什么在尝试rmmod时我得到“rmmod:delete_module'/ my_module'失败(错误2)”?

时间:2012-08-27 08:16:03

标签: c linux-kernel kernel-module

#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

1 个答案:

答案 0 :(得分:2)

基本上你必须输入内部模块名称而不是文件名。您可以通过键入lsmod找到模块名称。

所以

rmmod <your_module_name>应该有用。