Hello World驱动开发过程详解

原创 2011年01月24日 19:35:00

hello.c 

/*======================================================================
    A simple kernel module: "hello world"
        
    The initial developer of the original code is Baohua Song
    <author@linuxdriver.cn>. All Rights Reserved.
======================================================================*/
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
  printk(KERN_INFO " Hello World enter/n");
  return 0;
}

static void hello_exit(void)
{
  printk(KERN_INFO " Hello World exit/n ");
}

module_init(hello_init);
module_exit(hello_exit);

MODULE_AUTHOR("Song Baohua");
MODULE_DESCRIPTION("A simple Hello World Module");
MODULE_ALIAS("a simplest module");



1. 编写Makefile

 obj-m := hello.o

 

2. 切换到root用户(若不是root用户则执行不了下面的Makefile), 执行如下命令:make -C /usr/src/linux-headers-2.6.32-21-generic M=$(pwd) modules , 生成hello.ko

      Note:我所使用的系统为Ubuntu系统, 在/usr/src目录下有 linux-headers-2.6.32-21-generic 和 linux-headers-2.6.32-21 两个目录,make -C 指定驱动头文件目录时必须选择 linux-headers-2.6.32-21-generic,否则会出现编译通不过的现象

 

3. insmod hello.ko 加载hello驱动 ,rmmod hello  卸载hello驱动, modinfo可获得模块的信息(模块的作者,模块的说明,模块所支持的参数)   

     

    在执行完insmod hello.ko 后会打印 Hello World 信息,其前提时执行完insmod hello.ko命令后执行dmesg命令,此命令打印系统的开机信息,内容比较多,可以执行 dmesg -c命令,此命令能够清楚缓冲区的内容

  






~                                  

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Linux设备驱动开发入门——Hello world

      近期做的工作主要有两个,一是将dvsdk_4中的video_copy项目移植到自己的板子上,在参考资料极其匮乏的情况下,本人继续发扬艰苦奋斗的作风和打不死的小强精神,终于将Omap3530...

驱动开发之六:驱 动 版 Hello World

我们学习程序设计,都是从“Hello World”开始的,驱动程序也不例外,今天我就写一个驱动版的“Hello World”来热热身,目的希望大家能对驱动程序的基本框架有所了解。 驱动程序分为2...

Qt on Android:图文详解QT开发Andriod入门,Hello World全过程

这是系列文章中的一篇,阅读本文前请先阅读《Windows下Qt 5.2 for Android开发入门》,以便确保开发环境和作者一致。     部分文章被转发/转载却没有注明出处,特此声明:版权...
  • guo8113
  • guo8113
  • 2014年11月20日 20:00
  • 891

“hello world”驱动实现过程(ARM板上)

“helloworld”驱动实现过程(ARM板上) 1、  在/home/sxy/目录下新建hello_1文件夹,在此文件夹下编写hello.c和Makefile文件(假设已经编写好了),make生成...

Linux设备驱动开发之hello, world

Linux内核编译 一文中介绍了Linux 2.6内核的编译与安装工作,今天介绍一下Linux设备驱动开发的hello, world程序。 进行Linux设备驱动开发必须准备好Linux内核编译环境...
  • yongmi
  • yongmi
  • 2013年01月02日 19:31
  • 1519

fl2440开发板hello world模块驱动编写

hello world            许多的编程都是从hello world开始编写,虽然简单但是意义重大。...

驱动程序开发学习(三)hello world

原帖地址:http://borland.mblogger.cn/doublefisher/posts/24513.aspx     驱动开发的例子里是没有所谓的“Hello World”程序...

ois软件开发hello World

  • 2014年05月15日 10:51
  • 73KB
  • 下载

Windows Phone开发学习之五——Hello World详解

这一节讲解在“Windows Phone开发学习之二——建立第一个WP7项目”建立的Hello World程序是怎样按照我们的预定目的运行起来的。 首先,我们要知道的事情是,我们写的任何应用程序...
  • gdddww
  • gdddww
  • 2012年04月15日 12:40
  • 600
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hello World驱动开发过程详解
举报原因:
原因补充:

(最多只允许输入30个字)