一个简单的 Linux Driver(Debian 2.6.26-2-686 kernel)

一个简单的例子,这里要注意,2.4内核模块与 2.6内核模块的编译的方式是不同的。

#include <linux/module.h> #include <linux/kernel.h> static int hello_init(void) { printk(KERN_EMERG "Hello World enter!/n"); return 0; } static void hello_exit(void) { printk(KERN_EMERG "Hello world exit!/n"); } module_init(hello_init); /* load the module */ module_exit(hello_exit); /* unload the module */

对应的Makefile

obj-m:=hello.o KERNELDIR := /lib/modules/$(shell uname -r)/build PWD:=$(shell pwd) default: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules clean: $(MAKE) -C $(KERNELDIR) M=$(PWD) clean

lsmod查看加载的module

sudo insmod hello.ko

sudo rmmod hello.ko

你可能感兴趣的:(一个简单的 Linux Driver(Debian 2.6.26-2-686 kernel))