Linux驱动程序安装步骤(包括PC上及开发板上)

Linux驱动程序安装步骤(包括PC上及开发板上)

来源:http://blog.csdn.net/hwmt2012/article/details/13016213

分类: LINUX

一.PC机上Ubuntu9.10系统下

  1. 驱动程序源码及Makefile如下:

  2. #——源程序——#

  3. #include <linux/module.h>

  4. #include <linux/init.h>

  5. static int __init hello_init()//“__init”使hello_init()函数放到初始化代码段里

  6. {

  7. printk(“Hello, driver!\n”);

  8. return 0;

  9. }

  10. static int __exit hello_exit()

  11. {

  12. printk(“Goodbye, driver!\n”);

  13. return 0;

  14. }

  15. module_init(hello_init);

  16. module_exit(hello_exit);

#——Makefile——#

KVERS = $(shell uname -r)

Kernel modules

obj-m += hello.o

Specify flags for the module compilation.

#EXTRA_CFLAGS=-g -O0

build: kernel_modules

kernel_modules:

        make -C /lib/modules/$(KVERS)/build M=$(CURDIR) modules

clean:

        make -C /lib/modules/$(KVERS)/build M=$(CURDIR) clean

2.驱动程序编译、安装及结果显示:

a.在第一个终端里  root@book-desktop:~# make    

//生成hello.ko

b.在第二个终端里  root@book-desktop:~# tail -f /var/log/messages 

//查看日志文件内容,-f选项使之不断刷新显示

c.在第一个终端里  root@book-desktop:~# insmod ./hello.ko

//安装驱动

  在第二个终端里自动输出:   

  1. Apr 7 19:26:06 book-desktop kernel: [
    9345.546564] Hello, driver!

d.在第一个终端里  root@book-desktop:~# rmmod hello

//卸载驱动

     在第二个终端里自动输出:

  1. Apr  7 19:26:11 book-desktop kernel: [ 9349.953772] Goodbye, driver!

二、Nano2440开发板下(注:为保持简洁性,终端中前端都以 root@book-desktop:~# 表示)

1.把源程序拷贝到内核相应目录中

  root@book-desktop:~# cp hello.c /work/QQ2440/linux/jason_linux/kernel-2.6.13/drivers/char/

2.打开内核目录

  root@book-desktop:~# cd /work/QQ2440/linux/jason_linux/kernel-2.6.13

3.打开字符设备驱动所在目录下的Kconfig (Kconfig用于配置菜单)

  root@book-desktop:~# vim drivers/char/Kconfig

4.修改Kconfig。添加如下代码。

  1. 配置驱动

   root@book-desktop:~# make menuconfig

   在出现的主菜单中,选择:Load an Alternate Configuration File

                   输入:config_n35     //选择需要的配置文件

   回到主菜单,如下选:

   Device Drivers  —> 

    Character devices —>

[ ]
hello_driver (NEW)

 按“Y”键,选择该驱动,如下图所示

   保存配置,退出。

6.查看配置结果

  root@book-desktop:~# vim .config

  在vim中输入:“/HELLO_DRIVER”,找到配置项,如下图。

8.修改驱动程序所在目录的Makefile

  root@book-desktop:~# vim drivers/char/Makefile

  在Makefile里添加如下代码:

  

  保存退出。

9.编译内核

   root@book-desktop:~# make zImage

10.arch/arm/boot 目录下生成linux 内核映象文件:zImage。

   root@book-desktop:~# cp arch/arm/boot/zImage /mnt/hgfs/Ubuntu_XP_share/

    下载到开发板。

11.打开Windows下超级终端,在菜单栏里选“传送”,下拉菜单里选“捕获文字”。

   复位开发板,系统启动后,在捕获文字里,“停止”。

           用Source Insight打开存在记事本里的开机信息。

           Ctrl + H。

   输入“Hello, driver!”也就是在hello_init()函数里的输出字符串。

   如图所示,可以看到初始化函数里的输出。

三、参考资料

1.《QQ2440V3用户手册》;

  1. 国嵌视频2010中秋版\课程4(嵌入式LINUX内核驱动进阶班)\第6天(字符设备驱动)\国嵌内核驱动进阶班-6-1(LINUX驱动程序介绍).avi

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门在线安装软件40632 人正在系统学习中

Published At
comments powered by Disqus