深入讲解剖析Linux设备驱动
创始人
2024-06-17 17:21:11
0

这里将介绍Linux设备驱动问题的解决方法,新手 Fedora 7 下编译 Linux设备驱动 3ed scull模块 收藏 Linux的基础操作,旨在让读者对Linux有个初步的认识。内容涉及文件管理、磁盘管理、用户与组群管理、man帮助、软件包管理、文件压缩和打印机管理。

Linux设备驱动 Device Driver(ldd) 是本内核开发入门书籍.其中scull是第一个例子模块.所以学习scull是很重要的.由于内核开发变动较快.所以ldd书中的一些例子已经不能在现有开发环境中编译了.本文说明如何在fedora7平台修改scull程序,使他能够顺利编译.
Fedora Linux设备驱动 安装时没有内核开发的部分.所以我们先要安装内核开发相关包.

1在Fedoar Linux设备驱动官方站点的ftp中下载和你自己内核版本相同的源代码和devel包比如我通过uname -r命令看到我的内核版本是2.6.22.1-41.fc7于是就下载kernel-devel-2.6.22.1-41.fc7  kernel-2.6.21-1.3194.fc7.src.rpm 然后安装这两个包.kernel-devel可以直接安装.如果要装src的话还要rpmbuild一下.把补丁打进去.具体方法网上有很多关于内核编译的文章.

2.下载ldd第三版的源代码
http://examples.oreilly.com/linuxdrive3/examples.tar.gz 接着把它解压缩 tar zxvf examples.tar.gz进入scull目录我们可以看到有main.c文件打开他.删除include中的linux/config.h 由于在2.6.19版本以后config.h文件被取消了.所以以后有config.h的地方都会报错
接下来再make,还是有错.发现是if (! capable (CAP_SYS_ADMIN))这里.CAP_SYS_ADMIN找不到.在网上查一下,发现这个宏是定义在linux/capability.h中的于是加#include 再编译还是不通过.原因还是有宏没有定义.不过这次是在access.c中.根据未定义的宏查找.发现他们在inux/capability.h和sched.h.两个文件中在access.c中加入#include

#include 改正了这些以后make回车下面是输出
make -C /lib/modules/2.6.22.1-41.fc7/build M=/home/hide1713/Desktop/kernel/examples/scull LDDINC=/home/hide1713/Desktop/kernel/examples/scull/../include modules
make[1]: Entering directory `/usr/src/kernels/2.6.22.1-41.fc7-i686'
CC [M]  /home/hide1713/Desktop/kernel/examples/scull/access.o
LD [M]  /home/hide1713/Desktop/kernel/examples/scull/scull.o
Building modules, stage 2.
MODPOST 1 modules
CC      /home/hide1713/Desktop/kernel/examples/scull/scull.mod.o
LD [M]  /home/hide1713/Desktop/kernel/examples/scull/scull.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.22.1-41.fc7-i686'

Linux设备驱动这样就是编译好了.我们用chmod +x scull_load scull_unload 把这俩个脚本变为可执行./scull_load/sbin/lsmod 怎么样.顺利装入内核了吧.上面的内容是我凭记忆写的.如果和实际情况有出入请还是按照上面的方法.先差是哪个定义引起的.再把对应的头文件加入就行了 。以上是对Linux设备驱动介绍。

【编辑推荐】

  1. Linux设备驱动程序--与硬件通信
  2. 阐述Linux设备文件管理硬件设备
  3. Linux设备管理指令setleds
  4. 简介qemu通过nfs启动Linux的方法
  5. 对于Linux chmod命令的阐述

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...