最近在学习linux的驱动,之前做嵌入式实验的时候加载驱动模块都是.o文件,但是现在发现很多驱动模块都是.ko文件,于是上网查了一下两者的区别,现在贴出来,和大家一起分享。
.o文件也就是object文件,.ko文件是kernel object文件,与.o的区别在于其多了一些sections,比如.modinfo。.modinfo section是由kernel source里的modpost工具生成的,包括MODULE_AUTHOR, MODULE_DESCRIPTION, MODULE_LICENSE, device ID table以及模块依赖关系等等。depmod工具根据.modinfo section生成modules.dep, modules.*map等文件,以便modprobe更方便的加载模块。
在2.6内核下编译driver, 首先要确认你的linux系统里有没有kernel tree,检查的方法是看看文件夹/lib/modules/$(uname -r)/build是否指向source code,并进去看看,是否有Makefile, include, scripts等文件夹,在scripts/mod下可以找到前面提到的modpost,这个是生成.ko的关键。如果没有kernel tree,需要重新build一份kernel来建立这个kernel tree。
在2.4内核中,生成的就是.o文件。2.6的kernel对内核模块的管理做了一些扩展,生成的就是.ko文件。
分享到:
相关推荐
### Linux下编译Oracle驱动QOCI的详细步骤与解析 #### 标题解析 - **Linux下编译Oracle驱动QOCI**:此标题表明文章的主要内容是在Linux操作系统中自行编译Oracle驱动程序QOCI的过程。 #### 描述解析 - **在Linux用...
这个错误表明Qt无法找到对应的MySQL驱动,即libqsqlmysql.so,这通常是因为在Linux环境中,只预装了SQLite驱动,而MySQL驱动需要单独编译。下面我们将详细讲解如何在Linux系统中编译Qt的MySQL驱动。 首先,你需要...
Linux 驱动程序编译和应用程序编译 Linux 驱动程序编译是指将驱动程序源代码编译成可加载到 Linux 内核的模块,以便控制和管理硬件设备。编译过程中需要使用交叉编译器 arm-linux-gcc,将驱动程序编译成模块并安装...
1、此Makefile为个人原创,多年来从事Linux驱动开发单独编译驱动的模板Makefile,非常好用; 2、仅供参考
总之,这个压缩包提供的RTL8188FU Linux驱动源码是Linux用户为Realtek RTL8188FU无线网卡芯片安装驱动的关键。通过编译和安装,用户可以确保其在Linux系统上的稳定运行,享受无缝的网络连接体验。对于熟悉Linux内核...
linux ssv6x5x驱动快速编译方法
#### 二、编译Linux驱动模块 **1. Makefile配置** 为了编译驱动模块,首先需要一个Makefile文件,它指定了编译规则和目标。如题目中提到的,可以从书籍或现有项目中找到一个模板Makefile,通常这个Makefile能够...
Linux下驱动编译文件,很简单很实用,是我实战经验的积累
通过以上步骤,你可以在不完整编译Linux内核的情况下,快速地搭建一个用于开发、调试和测试单个驱动程序的环境。这种方法不仅节省了大量的时间,还提高了开发效率。此外,了解如何手动配置内核以及编写Makefile,...
本文将深入探讨嵌入式Linux上的虚拟网卡驱动源代码和如何使用Makefile编译驱动文件。 首先,我们要理解虚拟网卡驱动的工作原理。虚拟网卡驱动程序是软件实现的网络接口,它在操作系统和网络协议栈之间起桥梁作用。...
Linux驱动源码是操作系统与硬件设备之间的重要桥梁,它使得硬件设备能够被操作系统识别和管理。在本案例中,我们关注的是"yt8521"这个特定的硬件设备的Linux驱动程序。"yt8521"可能是某种特定的芯片、控制器或者是...
标题中的“rtl81888eu linux驱动”是指Realtek公司生产的RTL8188EU无线网卡的Linux驱动程序。在Linux操作系统中,硬件设备通常需要特定的驱动程序来实现与操作系统的交互,RTL8188EU驱动就是为Realtek这款无线网卡...
描述中提到,该驱动已经过编译和调试,并且在Linux平台上运行正常。这意味着开发者或社区成员已经完成了适配工作,使得RTL8152能够在各种Linux发行版中无缝运行,为用户提供稳定的网络连接。这对于那些在非Windows...
嵌入式 Linux 驱动开发流程包括 SDK 程序编译、烧写流程分析、在 Linux 下搭建 SDK 编译环境、安装 CMake 工具、安装交叉编译工具、获取官方 SDK 文件等步骤。 4. Linux 内核和驱动程序 Linux 内核和驱动程序是...
总的来说,Linux驱动博通网卡的过程涉及到对硬件设备的理解、Linux内核的交互以及编译原理等多方面知识。熟悉这些步骤有助于解决类似问题,提高系统管理员的技能。在实践中,还应时刻关注Linux内核更新和硬件驱动的...
i.MX6ULL 嵌入式 Linux 驱动开发指南 本资源为 i.MX6ULL 嵌入式 Linux 驱动开发指南,旨在帮助开发者快速掌握 i.MX6ULL 嵌入式 Linux 驱动开发的技术。该指南涵盖了从基本概念到高级开发的方方面面,涵盖了驱动开发...
在嵌入式Linux系统中,触摸屏驱动是设备驱动程序的一部分,它负责与硬件交互,将用户的触摸操作转化为操作系统可理解的输入事件。本资源包含了触摸屏驱动的源代码和Makefile,这对于开发者来说是宝贵的参考资料,...
### 编译Linux内核的方法:详尽指南 #### 核心知识点概览: 1. **编译环境的搭建**:包括安装必要的编译工具、库文件和配置工具。 2. **内核源代码的获取**:通过Ubuntu的源安装或从`kernel.org`下载最新内核版本...
至于压缩包子文件的文件名称列表只包含“PL2303 Linux驱动”,这意味着压缩包里可能包含的是驱动源码、编译好的内核模块、安装脚本或相关文档。用户在使用时,通常需要解压文件,然后根据提供的指南或者Makefile进行...
PL2303 Linux驱动是针对Prolific公司生产的PL2303 USB到串行适配器的驱动程序,用于在Linux操作系统环境下提供设备支持。这个驱动使得Linux用户能够利用USB接口与各种传统串口设备进行通信,例如GPS接收器、调制解调...