簡體   English   中英

盡管警告消息“未找到”,但內核模塊已成功刪除

[英]Kernel module is removed successfully although warning message 'not found"

昨天,我在嵌入式Linux系統中安裝了一個非常簡單的內核模塊。 “hello.ko”。 當我將此模塊安裝到我們的系統中時,通常是:

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

但是,當我刪除此內核模塊時, 可以正常刪除它,但沒有找到rmmod注意“ hello.ko”

# 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模塊”嗎?

以下是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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM