今天终于将加载和卸载完成了,之前老是出现问题
模块的定义:
vim hello.c
#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/init.h>
MODULE_LICENSE("GPL");
static int __init lkp_init(void)
{
printk("<1> Hello,world! from the kernel space...\n");
return 0;
}
static void __exit lkp_cleanup(void)
{
printk("<1> Goodbey,World! leaving kernel space ...\n");
}
module_init(lkp_init);
module_exit(lkp_cleanup);
Makefile 的编写:vim Makefile
obj-m:=hello.o
LINUX_KERNEL_PATH=/usr/src/linux-headers-$(shell uname -r)
all:
make -C $(LINUX_KERNEL_PATH) M=$(shell pwd) modules
clean:
make -C $(LINUX_KERNEL_PATH) M=$(shell pwd) clean
注意Makefile中空格和路径的获取
加载时进入超级用户权限 sudo su
再用insmod hello.ko加载
或者用 sudo insmod hello.o加载
查看用 dmesg
卸载用remmod hello.o