1、驱动源代码
#include <linux/init.h>
#include <linux/module.h>
//#define HELLO_DEBUG 1 /*1:输出 0:不输出*/
#if HELLO_DEBUG
#define P_DEBUG(fmt,args...) printk("<kernel>:[%s]<Function> [%d]Line: "fmt, __FUNCTION__, __LINE__, ##args)
#else
#define P_DEBUG(fmt,args...)
#endif
static __init int hello_init(void)
{
char *name = "hy";
P_DEBUG( "hello %s\n",name);
return 0;
}
static __exit void hello_exit(void)
{
P_DEBUG( "goodbye world\n");
}
module_init (hello_init);
module_exit (hello_exit);
MODULE_LICENSE("GPL");MODULE_VERSION("v1.0");
MODULE_AUTHOR("xz@vichip.com.cn");
MODULE_DESCRIPTION("Kernel Debug Module");
MODULE_ALIAS("debug module");
2、Makefile
DEBUG=y
ifeq ($(DEBUG),y)
DEBFLAGS = -O -g -DHELLO_DEBUG
else
DEBFLAGS = -O2
endif
EXTRA_CFLAGS += $(DEBFLAGS)
ifeq ($(KERNELRELEASE),)
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
else
obj-m := kernel_debug.o
endif