gpt4 book ai didi

c - 尽管出现警告消息 'not found",但已成功删除内核模块

转载 作者:太空狗 更新时间:2023-10-29 12:41:12 24 4
gpt4 key购买 nike

昨天我在我的嵌入式 Linux 系统中安装了一个非常简单的内核模块。 “你好.ko”。当我将此模块安装到我们的系统时,通常是:

#insmod hello.ko
Initing kernel module
#
#lsmod
hello 638 0 - Live 0xf628f000

但是当我删除这个内核模块时,它可以正常删除但是rmmod notice 'hello.ko' not found

# rmmod hello
Cleaning kernel module
rmmod: module 'hello' not found
#lsmod <------------------- already be removed
#
# uname -a
# Linux SWITCH 2.6.32 #8 Thu Jun 23 20:34:48 KST 2016 ppc GNU/Linux

这很奇怪。任何人都可以为我解释为什么“hello.ko”被删除但有日志“rmmod module not found”吗?

以下是hello.ko的源码

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/config.h>
#include <linux/version.h>
#include <linux/types.h>
#include <linux/string.h>
int init_module(void)
{
printk (KERN_EMERG "Initing kernel module\n");
return 0;
}
void cleanup_module(void)
{
printk (KERN_EMERG "Cleaning kernel module\n");
}

MODULE_DESCRIPTION ("Kernel function replacement module");
MODULE_AUTHOR ("DASAN Networks Inc.");
MODULE_LICENSE ("GPL");

最佳答案

在我看来,你需要添加一些东西 __init__exit 宏以及 module_initmodule_exit 宏,尝试:

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/version.h>
#include <linux/types.h>
#include <linux/string.h>
static int __init init_example(void)
{
printk (KERN_EMERG "Initing kernel module\n");
return 0;
}
static void __exit cleanup_example(void)
{
printk (KERN_EMERG "Cleaning kernel module\n");
}

module_init(init_example);
module_exit(cleanup_example);
MODULE_DESCRIPTION ("Kernel function replacement module");
MODULE_AUTHOR ("DASAN Networks Inc.");
MODULE_LICENSE ("GPL");

关于c - 尽管出现警告消息 'not found",但已成功删除内核模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43388127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com