• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > linux 驱动之Kconfig文件和Makefile文件实例

linux 驱动之Kconfig文件和Makefile文件实例

作者:lqh 字体:[增加 减小] 来源:互联网

lqh 通过本文主要向大家介绍了kconfig和makefile,linux kconfig,kconfig,kconfig语法,kconfig文件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

linux 驱动之Kconfig文件和Makefile文件实例

在Linux编写驱动的过程中,有两个文件是我们必须要了解和知晓的。这其中,一个是Kconfig文件,另外一个是Makefile文件。如果大家比较熟悉的话,那么肯定对内核编译需要的.config文件不陌生,在.config文件中,我们发现有的模块被编译进了内核,有的只是生成了一个module。这中间,我们如何让内核发现我们编写的模块呢,这就需要在Kconfig中进行说明。至于如何生成模块,那么就需要利用Makefile告诉编译器,怎么编译生成这个模块。模仿其实就是最好的老师,我们可以以内核中经常使用到的网卡e1000模块为例,说明内核中是如何设置和编译的。

    首先,我们可以看一下,在2.6.32.60中关于e1000在Kconfig中是怎么描述的,

config E1000 
 tristate "Intel(R) PRO/1000 Gigabit Ethernet support" 
 depends on PCI 
 ---help--- 
  This driver supports Intel(R) PRO/1000 gigabit ethernet family of 
  adapters. For more information on how to identify your adapter, go 
  to the Adapter & Driver ID Guide at: 
 
  <http://support.intel.com/support/network/adapter/pro100/21397.htm> 
 
  For general information and support, go to the Intel support 
  website at: 
 
  <http://support.intel.com> 
 
  More specific information on configuring the driver is in 
  <file:Documentation/networking/e1000.txt>. 
 
  To compile this driver as a module, choose M here. The module 
  will be called e1000. 
</div>

    上面的内容是从drivers/net/Kconfig中摘录出来的。内容看上去不复杂,最重要的就是说明了模块的名称、用途、依赖的模块名、说明等等。只要有了这个说明,我们在shell下输入make menuconfig的时候就可以看到e1000这个选项了,输入y表示编译内核;输入n表示不编译;输入m表示模块编写,这是大家都知道的。

    那么,有了这个模块之后,需要编译哪些文件中,我们在drivers/net/Makefile看到了这样的内容,

obj-$(CONFIG_E1000) += e1000/ 
</div>

    显然,这段代码只是告诉我们,要想编译e1000,必须要包含e1000这个目录,所以e1000目录下必然还有一个Makefile,果不其然,我们在e1000目录下发现了这个Makefile,内容如下,

obj-$(CONFIG_E1000) += e1000.o 
 
e1000-objs := e1000_main.o e1000_hw.o e1000_ethtool.o e1000_param.o 
</div>

    看了这个文件,其实大家心理就应该有底了。原来这个e1000模块最终生成的文件就是e1000.ko,依赖的文件就是e1000_main.c、e1000_hw.c、e1000_ethtool.c、e1000_param.c这四个文件。只要CONFIG_E1000被设置了,那么这个模块就会被正常编译。我们要做的就是打开这个开关就可以了,剩下kernel会帮我们搞定一切。当然,如果大家想把这个模块拿出来,自己用一个独立的module编译也是可以的。

    关于linux驱动的编译部分,其实就这两个配置文件比较重要。大家可以自己实际练习一下,进一步加深印象。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

</div>

您可能想查找下面的文章:

  • linux 驱动之Kconfig文件和Makefile文件实例

相关文章

  • 如何调试Linux shell脚本
  • Shell脚本中判断变量为数字的3种方法
  • Shell脚本实现检测某ip网络畅通情况(含短信报警功能)
  • hbase shell基础和常用命令详解
  • linux中kvm的安装及快照管理
  • Shell脚本实现的阳历转农历代码分享
  • 学习shell脚本之前的基础知识[图文]
  • 如何测试端口通不通(四种方法)
  • Shell脚本实现检测文件是否被修改过代码分享
  • awk中查看包含某两列字符的用法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 使用iconv批量改变文件编码的shell脚本
    • Shell脚本传参数方法总结
    • 浅谈:linux cron 计划任务常用符号小结
    • linux Shell脚本里面把一个数组传递到awk内部进行处理
    • 一天一个shell命令 文本操作系列-linux dd使用教程
    • Linux Shell脚本系列教程(六):数组和关联数组
    • Shell脚本自动更新hosts实现免翻墙访问google
    • linux系统mysql自动备份并使用ftp上传的方法
    • shell备份文件、重命名文件、删除指定文件的3个脚本分享
    • shell脚本监控mysql主从状态

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有