【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.o
modules-objs:= HelloWorld.o
KDIR:= /usr/src/linux-headers-2.6.31-14-generic/
PWD:= $(shell pwd)
default:
make -C $(KDIR) M=$(PWD) modules
clean:
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 modules
make[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.ko
make[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!