【问题标题】:why do I get "rmmod: delete_module '/my_module' failed (errno 2)" while trying to rmmod?为什么我在尝试 rmmod 时会收到“rmmod: delete_module '/my_module' failed (errno 2)”?
【发布时间】:2012-08-27 17:08:27
【问题描述】:
#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

【问题讨论】:

  • insmod /tmp/my_module 工作正常,删除:rmmod /tmp/my_module

标签: c linux-kernel kernel-module


【解决方案1】:

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

所以

rmmod &lt;your_module_name&gt; 应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 2021-11-06
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多