【Linux裝置驅動程式(第三版)】----HelloWorld
HelloWorld.c
#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){printk(KERN_ALERT "Hello, World!\n");return 0;}static void hello_exit(void){printk(KERN_ALERT "Goodbye,world!\n");}module_init(hello_init);module_exit(hello_exit);
Makefile
obj-m:= HelloWorld.omodules-objs:= HelloWorld.oKDIR:= /usr/src/linux-headers-2.6.31-14-generic/PWD:= $(shell pwd)default:make -C $(KDIR) M=$(PWD) modulesclean:rm -rf *.ko *.mod.c *.mod.o *.o *.markers *.symvers *.order
make
make -C /usr/src/linux-headers-2.6.31-14-generic/ M=/home/wangzhzh/Module/HelloWorld modulesmake[1]: Entering directory `/usr/src/linux-headers-2.6.31-14-generic' CC [M] /home/wangzhzh/Module/HelloWorld/HelloWorld.o Building modules, stage 2. MODPOST 1 modules CC /home/wangzhzh/Module/HelloWorld/HelloWorld.mod.o LD [M] /home/wangzhzh/Module/HelloWorld/HelloWorld.komake[1]: Leaving directory `/usr/src/linux-headers-2.6.31-14-generic'
裝載模組
insmod HelloWorld.ko
卸載模組
rmmod HelloWorld
查看Log
dmesg[84263.420542] Hello, World![84272.598899] Goodbye,world!