Linux设备驱动程序(1)--简单的helloworld


现在开始学习Linux设备驱动程序。看的书是Linux设备驱动程序(第三版)。


很多时候printk都不能将消息打印到控制台,因为printk是内核的打印函数,他是有优先级的。具体的没有去深入研究,暂时在网上查到。

有一系列的宏定义。

在源代码的include/linux/kernel.h中定义

#define KERN_EMERG    0
#define KERN_ALERT    1

#define KERN_CRIT     2

#define KERN_ERR      3

#define KERN_WARNING  4

#define KERN_NOTICE   5

#define KERN_INFO     6
#define KERN_DEBUG    7


printk("<0>""Hello World Init\n");这是把控制台的级别设置最高。可以打印出来。


/*helloworld.c*/

#include
#include
#include

static int __init hellowordInit(void)
{
printk("<0>""Hello World Init\n");

return 0;
}


static void __exit helloworldExit(void)
{
printk("<0>""Hello wrold exit\n");
}

MODULE_LICENSE("GPL");
module_init(hellowordInit);
module_exit(helloworldExit);


makefile中的内容为简单的一句

obj-m=helloworld.o


采用下述编译方法进行编译   注意网上很多编译的方法是针对2.4内核的。使用2.4内核的编译方法编译2.6内核会出错。

make -C /usr/src/kernels/2.6.18-53.el5-i686/ M=$(pwd) modules 

你可能感兴趣的:(Linux设备驱动程序(1)--简单的helloworld)