一.PC机上Ubuntu9.10系统下

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

  1. #------源程序------#
  2. #include <linux/module.h>
  3. #include <linux/init.h>
  4. static int __init hello_init() //“__init”使hello_init()函数放到初始化代码段里
  5. {
  6. printk("Hello, driver!/n");
  7. return 0;
  8. }
  9. static int __exit hello_exit()
  10. {
  11. printk("Goodbye, driver!/n");
  12. return 0;
  13. }
  14. module_init(hello_init);
  15. 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
//卸载驱动
在第二个终端里自动输出:
    • 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。添加如下代码。
5. 配置驱动
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用户手册》;
2. 国嵌视频2010中秋版/课程4(嵌入式LINUX内核驱动进阶班)/第6天(字符设备驱动)/国嵌内核驱动进阶班-6-1(LINUX驱动程序介绍).avi
http://blog.chinaunix.net/space.php?uid=20746260&do=blog&id=214994

Linux驱动程序安装步骤相关推荐

  1. linux中oracle静默安装失败,oracle 11 Linux 静默安装 步骤及错误解决(更新中)

    oracle 11 Linux 静默安装 步骤及错误解决(更新中) oracle 11 Linux 静默安装 步骤及错误解决(更新中) [待更新] oracle成功安装完成后 显示的页面如下 : 此时 ...

  2. linux安装后硬盘变小,Linux硬盘安装步骤

    Linux硬盘安装步骤 网上找了许多用DVD镜像硬盘安装FC5的文章,可是都不系统,为了全中国的广大菜鸟们,兄弟连Linux云计算架构师 抽了很多时间来写这篇详细的安装文章,希望对初次接触LINUX或 ...

  3. linux mint安装步骤,Linux mint 安装步骤

    ##Linux mint 安装步骤## 家里的笔记本以前一直用Deepin系统,但是Deepin系统的wifi实在是太慢了.还有就是启动软件是有时候总没响应,卡死机. 最近重装系统,选择了mint , ...

  4. Kali Linux 详细安装步骤

    Kali Linux 详细安装步骤 ​ Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统.每一季度更新一次.由Offensive Security Ltd维护和资助 ...

  5. Linux mint 安装步骤

    ##Linux mint 安装步骤## 家里的笔记本以前一直用Deepin系统,但是Deepin系统的wifi实在是太慢了.还有就是启动软件是有时候总没响应,卡死机. 最近重装系统,选择了mint , ...

  6. 磊科linux无线网卡驱动安装步骤,磊科NW336无线网卡驱动程序安装步骤

    对于很多小伙伴来说,他们想要使用电脑设备开设无线网络供其他设备使用,但却没有合适的网卡驱动程序.接下来,为大家介绍一款好用的网卡驱动程序:磊科NW336无线网卡驱动程序,将程序的安装步骤描述如下: 1 ...

  7. cognos安装教程linux,Cognos安装步骤Linux.doc

    Cognos安装步骤Linux Cognos server安装步骤Linux64: 安装配置XMANAGER软件 安装资料库oracle10 , 字符集UTF8 , 创建数据库用户cognos ,给D ...

  8. Linux驱动程序学习步骤

     了解linux驱动程序技巧学习的方法很重要,学习linux操作系统时,你可能会遇到关于驱动方面的问题, 这里将介绍学习linux驱动程序的方法,在这里拿出来和大家分享一下. 1.学会写简单的make ...

  9. linux网络打印机安装步骤,科学网—CentOS6.5上使用cups安装网络打印机 - 王敏玲的博文...

    今天尝试了在centos6.5系统上安装打印机,网上的教程很复杂,下面总结一下自己的安装步骤(附了相应的界面截图): 1. 首先用yum intall cups 服务. 2. 使用netstat 查看 ...

最新文章

  1. 世界半导体集成电路发展史(超细、超全)
  2. Jenkins进阶系列之——01使用email-ext替换Jenkins的默认邮件通知
  3. 随机森林和决策树区别_第六讲 决策树与随机森林
  4. 机器学习需要理解的五个基本概念
  5. Spark SQL之External DataSource外部数据源(二)源代码分析
  6. 《Pytorch - 线性回归模型》
  7. Hibernate中配置C3P0连接池
  8. 列表ls按照升序排列的python内置函数是_Python习题集
  9. 携程元旦出游数据:冰雪运动热度升级 张家口酒店一房难求
  10. python输入一个字母标识符_Python基础入门语法和变量类型(一)
  11. 2019.6.27刷题统计
  12. 【CAD】自定义实体的步骤(转)
  13. nginx location 斜杠_斜杠青年 菲斯塔车主实录
  14. 4600u黑苹果 r5_黑苹果配置 篇四:黑苹果硬件选购指南之m-ATX篇--2019年8月
  15. 互联网寒冬!闭关60天学懂NDK+Flutter,专题解析
  16. 乐优商城遇到的坑(三)之Centos6.5下安装nginx出错
  17. 一些lightbox插件(弹出层)
  18. Ubuntu安装客户端RabbitVCS(svn管理)
  19. 原装安装版WIN10安装详细教程
  20. 向量数据库入坑:使用 Docker 和 Milvus 快速构建本地轻量图片搜索引擎

热门文章

  1. 统信软件根社区斩获CSDN两项大奖
  2. 加密通信(三):CA证书
  3. Django mako 的使用(七)
  4. Python笔记:利用pygame模块实现三原色颜色滚动条效果
  5. 计算机无法启动bios,开机进入bios无法进入系统怎么办_电脑开机就进入bios的解决方法...
  6. 应用程序正常初始化0xc0000135失败的解决办法
  7. 使用java对文件夹中文件后缀进行修改
  8. html背景图片不重叠铺满,css背景图片怎么铺满
  9. 【Git版本控制】Git基础入门和分支管理
  10. Spring核心思想,IoC与DI详解(如果还不明白,放弃java吧)