【发布时间】:2017-09-09 07:57:36
【问题描述】:
昨天我在我的嵌入式 Linux 系统中安装了一个非常简单的内核模块。 “你好.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 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");
【问题讨论】:
标签: c linux unix kernel kernel-module