`
killko
  • 浏览: 105046 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
Group-logo
Servicemix&Fu...
浏览量:0
社区版块
存档分类
最新评论

linux设备驱动整理(2)

阅读更多
"欲利其事,先利其器",整理一下编译linux设备驱动程序的makefile。
all:
 KERNELDIR ?= /lib/modules/$(shell uname -r)/build
 PWD := $(shell pwd)
 $(MAKE) -C $(KERNELDIR) M=$(PWD) modules

clean:
 $(MAKE) -C $(KERNELDIR) M=$(PWD) clean



注意:按规定,makefile文件中,缩进部分一定是一个tab,不能用空格代替。

 /lib/modules/$(shell uname -r)/build 对应的就是当前编译环境的linux源码树。

用uname -r检查编译环境的内核版本是否和目标环境(也就是设备驱动程序要安装的那个操作系统)的内核版本是否一致。如果不一致,则需要安装和目标环境一致的linux源码树。否则会因为编译出来的ko文件的vermagic不同,而无法在目标环境下加载。还有一个方法就是修改内核源码树中的include/linux/utsrelease.h (其中的UTS_RELEASE宏)和include/linux/vermagic.h中的VERMAGIC_STRING,也可以编译出带和目标环境一致的vermagic的ko。

用modinfo MyLinuxDrv.ko可以查到它相应的vermagic。

写好一个MyLinuxDrv.c的设备驱动程序代码,将以上makefile脚本保存在同一目录下的Makefile文件里。

执行make,即可编译出需要的MyLinuxDrv.ko文件。

执行make clean 可清除编译出来的MyLinuxDrv.ko文件和中间目标文件(.o),以便重新编译。
1
2
分享到:
评论

相关推荐

    Linux设备驱动详解第二版

    Linux设备驱动详解【第二版】,作者宋宝华,此版PDF是经过本人整理的文字版PDF,带目录、高清无水印版。 内容简介 《Linux设备驱动开发详解(第《Linux设备驱动开发详解(第2版)》内容全面,实例丰富,操作性强,...

    linux设备驱动+源代码

    Linux设备驱动程序是操作系统与硬件之间的重要桥梁,它允许操作系统管理和控制硬件资源,实现系统对硬件功能的调用。在Linux环境下,驱动程序是开源的,开发者可以通过阅读和修改源代码来理解其工作原理,甚至根据...

    设备管理Linux设备驱动程序和windows磁盘IO

    一、Linux设备驱动程序 1. 设备分类:在Linux中,设备被分为字符设备、块设备和网络设备等。字符设备不进行缓冲处理,数据按字符顺序传输;块设备则允许随机访问,如硬盘,它们通常会缓存数据以提高性能。 2. 驱动...

    Linux查看硬件信息及驱动设备相关整理

    在Linux系统中,掌握如何查看和管理硬件信息以及设备驱动是至关重要的技能,尤其是在系统调试、性能优化或故障排查时。以下是从给定文件中提取的关键知识点,详细介绍了如何使用各种命令来获取Linux系统的硬件信息。...

    精通LINUX设备驱动程序开发.pdf

    不过,根据【标题】和【描述】,我可以提供关于“精通LINUX设备驱动程序开发”的知识点概述。 Linux设备驱动程序开发是嵌入式系统开发和操作系统开发领域的一个重要分支。Linux内核提供了丰富的设备驱动框架和API,...

    linux驱动资料整理

    3. **字符设备驱动**:`cdev`结构体的设置,以及如何通过`cdev_init`和`cdev_add`将设备添加到系统中。 4. **任务let**:使用`tasklet_init`初始化任务let,用于中断处理或其他异步事件。 理解这些概念对于开发...

    sdiolinux驱动流程图整理.pdf

    SD卡驱动流程图整理 SD卡是目前最常用的存储设备之一,其工作原理和驱动过程是开发者需要了解的重要知识点。下面将对SD卡的工作原理、驱动流程图和Linux驱动工作原理进行详细的介绍。 一、SD卡工作原理 SD卡的...

    linux设备驱动中文第三版中+英文版+随书源代码

    《Linux设备驱动开发详解》是Linux系统编程领域的一本经典著作,主要面向对Linux内核和设备驱动感兴趣的开发者。该书分为中文第三版和英文版,提供了完整的源代码,便于读者深入理解和实践。以下是该书涉及的主要...

    linux 设备驱动模型platform driver与driver

    根据源码分析整理的linux platfom driver与device driver的关系,对初学者有较大的帮助

    linux驱动工程师面试题整理

    - **网络设备驱动**:实现网络数据包的发送与接收。 ### 23. 内存申请函数及其区别 - **kmalloc()**:通用内存分配函数。 - **__get_free_page()**:获取空闲页面。 - **mempool_create()**:创建内存池,用于高效...

    linux-2.6设备驱动笔记

    在Linux操作系统中,设备驱动是连接硬件和软件的关键部分,它使得操作系统能够与硬件设备进行...通过这样的笔记整理,有助于开发者更好地理解和掌握Linux设备驱动的开发流程,从而能够编写出高效、可靠的设备驱动程序。

    linux 字符设备驱动简单总结.doc

    linux 字符设备驱动简单总结,包括各个函数的介绍,分享的他认的,然后整理了下

    linux 驱动模型文档中文

    绑定是指设备驱动与硬件设备之间的连接方式。这里可能涉及设备树(Device Tree)或配置文件中的描述,用于告诉内核如何初始化和配置特定的硬件。 4. **Bus**: 总线是硬件设备之间的通信路径,如PCI、USB、ISA等...

    Linux设备驱动程序第三版英文(ldd3).含详细目录,美化

    《Linux设备驱动程序第三版英文版》是一本在Linux社区广泛认可的权威著作,由Jonathan Corbet、Alessandro Rubini和Greg Kroah-Hartman三位知名Linux专家合著。本书是Linux设备驱动开发领域的经典教材,经过多年的...

    linux RTC驱动资料

    2. 设备驱动层:每个特定硬件的RTC驱动实现,如i2c、spi或其他总线上的RTC芯片,需要在rtc-class基础上完成硬件交互。 三、RTC硬件接口 1. I2C接口:许多RTC芯片通过I2C总线连接,驱动需要实现I2C传输协议以与RTC...

    嵌入式Linux驱动开发

    最后,详细阐述了Linux设备驱动开发中涉及的复杂理论,以尽可能通俗易懂的方式讲解。驱动程序有三个主要接口:向下与硬件接口、向上与内核子系统接口。本部分还讨论了设备驱动开发的具体步骤、设备驱动注册、设备...

    Linux内核设备驱动之字符设备驱动笔记整理

    字符设备驱动是Linux内核设备驱动的一部分,主要负责处理那些以字节流方式访问的硬件设备,如串口、并口打印机等。这些设备可以通过在Linux文件系统下的/dev目录创建设备文件来访问。用户通过标准的I/O函数(如open...

    Linux驱动程序编写

    3. **设备模型**:Linux设备模型提供了一种统一的方式来管理和表示系统中的各种设备。理解设备节点、总线、设备和驱动之间的关系是驱动开发的关键。 4. **I/O操作**:包括中断处理、DMA(直接内存访问)、中断驱动...

    Linux内核驱动fsync机制实现图解.docx

    aio是一个比较新的框架,较为复杂,而fasync是另一种实现方式,在《深入Linux设备驱动程序内核机制》中有详细的讲解和实验。 fasync机制是通过内核发送出的SIGIO信号来实现通知机制的,并不是通过休眠唤醒。为了...

    linux驱动开发中文版-4_linux驱动开发_linux_

    在Linux系统中,驱动程序是操作系统与硬件设备之间的桥梁,它们负责管理和控制硬件资源,使得操作系统可以有效地利用硬件的功能。《Linux驱动开发》中文版第四部分深入探讨了Linux内核中的驱动程序设计与实现,这...

Global site tag (gtag.js) - Google Analytics