Linux内核模块编译 最简单的hello world


驱动源代码

可用,只是MODULE_LICENCE行老报错,加上#也不行,就注释掉了

后注:lincese拼错了,应该是MODULE_LICENSE

//hello world driver for linux 2.6  
#include <linux/kernel.h>  
#include <linux/init.h>  
#include <linux/module.h>  
//MODULE_LICENCE("GPL");  
static int __init hello_init(void)  
{  
    printk(KERN_ALERT "Hello, world! from kernel space....\n");  
    return 0;  
}  
 
static void __exit hello_exit(void)  
{  
    printk(KERN_ALERT "Goodbye, world! Leaving kernel space....\n");  
}  
module_init(hello_init);  
module_exit(hello_exit); 

Makefile文件

obj-m += hello.o
all:
 make -C /lib/modules/`uname -r`/build SUBDIRS=$(PWD) modules
clean:
 make -C /lib/modules/`uname -r`/build SUBDIRS=$(PWD) clean

插入模块

#insmod hello.ko

查看模块插入情况

#lsmod | grep hello

#tail /var/log/messages

移除模块

#rmmod hello

#taile /var/log/messages

相关内容