首页 > 系统服务 > 详细

linux简单驱动hello world内核模块

时间:2016-03-21 13:42:16      阅读:255      评论:0      收藏:0      [点我收藏+]

hello.c

#include<linux/module.h>
#include<linux/init.h>
#include<linux/fs.h>
#include<linux/miscdevice.h>

int hello_init(void)
{
//    printk(KERN_EMERG"printk level:%s hello world!\n",KERN_EMERG);
    printk(KERN_ALERT"printk level:%s hello world!\n",KERN_ALERT);
    printk(KERN_CRIT"printk level:%s hello world!\n",KERN_CRIT);
    printk(KERN_ERR"printk level:%s hello world!\n",KERN_ERR);
    printk(KERN_WARNING"printk level:%s hello world!\n",KERN_WARNING);
    printk(KERN_NOTICE"printk level:%s hello world!\n",KERN_NOTICE);
    printk(KERN_INFO"printk level:%s hello world!\n",KERN_INFO);
    printk(KERN_DEBUG"printk level:%s hello world!\n",KERN_DEBUG);
    return 0;
}

void hello_exit(void)
{

    printk(KERN_EMERG"printk level:%s goodbye world!\n",KERN_EMERG);
    printk(KERN_ALERT"printk level:%s goodbye world!\n",KERN_ALERT);
    printk(KERN_CRIT"printk level:%s goodbye world!\n",KERN_CRIT);
    printk(KERN_ERR"printk level:%s goodbye world!\n",KERN_ERR);
    printk(KERN_WARNING"printk level:%s goodbye world!\n",KERN_WARNING);
    printk(KERN_NOTICE"printk level:%s goodbye world!\n",KERN_NOTICE);
    printk(KERN_INFO"printk level:%s goodbye world!\n",KERN_INFO);
    printk(KERN_DEBUG"printk level:%s goodbye world!\n",KERN_DEBUG);
}

module_init(hello_init);
module_exit(hello_exit);

MODULE_LICENSE("GPL");
//MODULE_ALTHOR("YXD");
//MODULE_DESCRIPTION("A simple module");

Makefile1

#Makefile
ifneq ($(KERNELRELEASE),)

obj-m :=hello.o
#KERNELDIR:=/opt/FriendlyARM/mini2440/linux-2.6.32.2

else
PWD:=$(shell pwd)
modules:
    $(MAKE) -C /lib/modules/$(shell uname -r)/build  M=$(PWD) modules

#modules_install:
    
#    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install

clean:
    rm -rf *.o *~core .depend .*.cmd *.ko *.mod.c .tmp_versions
endif


#all:
#    make -C /opt/FriendlyARM/mini2440/linux-2.6.32.2/build SUBDIRS=$(PWD) modules
#clean:
    
#    make -C /opt/FriendlyARM/mini2440/linux-2.6.32.2/build SUBDIRS=$(PWD) clean

Makefile2

 

linux简单驱动hello world内核模块

原文:http://www.cnblogs.com/weiyublog/p/5301270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!