第一步:编写源文件
第 二步:编写Makefile文件
Makefile
obj-m := modules.o #modules是要生成的模块名
modules-objs:= mymod.o #生成这个模块名所需要的目标文件 注:需要时写
KDIR := /lib/modules/`uname -r`/build
PWD := $(shell pwd)
default:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -rf *.o .* .cmd *.ko *.mod.c .tmp_versions
第 三步:编译模块
在终端进入源文件目录输入make
第四步:加载/卸载我们的模块
从上面的编译中我可以看到。已经有一个modules.ko生成了。这就是我们的模块了。现在我们就可以来加载了。
首先在终端输入:sudo insmod modules.ko
在终端输入:dmesg | tail -12 这是查看内核输出信息的意思。tail -12 显示最后12条;
卸载模块试试看。
在终端输入:sudo rmmod modules
在终端输入:dmesg | tail -3
第五步:加载模块时传递参数
在终端输入:sudo insmod module_name.ko nbr=4
在终端输入:dmesg | tail -6
最后我们还可以通过modinfo来查看我们的模块信息。如下
在终端输入:sudo modinfo modules.ko
详细内容请看:http://www.linuxidc.com/Linux/2011-02/32165.htm