【Linux操作系统】Linux内核插入卸载模块

时间:2021-04-26 15:47:19
  • 打开终端
  • 输入:mkdir moduleTest,创建一个放置文件的文件夹
  • 进入文件夹,cd moduleTest
  • 创建文件:nano hello.c,文件内容如下:
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void){
    printk(KERN_ALERT"Hello, xiaoming\n");
    return 0;
}

static void hello_exit(void){
    printk(KERN_ALERT"Goodbye, xiaoming\n");
}

module_init(hello_init);
module_exit(hello_exit);
  • 创建Makefile文件:nano Makefile,代码如下:
obj-m := hello.o
KERNELBUILD :=/usr/src/linux-headers-3.11.0-12-generic
default:
    make -C $(KERNELBUILD) M=$(shell pwd) modules
clean:
    rm -rf *.o  *.ko *.mod.c .*.cmd .tmp_versions *.order *.symvers

里面的路径因Linux版本而异,可以自己去对应路径查看一下

  • 编译,输入 make,编译过程:
    【Linux操作系统】Linux内核插入卸载模块

  • 插入模块:sudo insmod hello.ko

  • 删除模块:sudo rmmod hello.ko

  • 查看结果:dmesg | grep “xiaoming”
    【Linux操作系统】Linux内核插入卸载模块
    dmesg查看系统内核模块信息