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.
上面的内容是从drivers/net/Kconfig中摘录出来的。内容看上去不复杂,最重要的就是说明了模块的名称、用途、依赖的模块名、说明等等。只要有了这个说明,我们在shell下输入make menuconfig的时候就可以看到e1000这个选项了,输入y表示编译内核;输入n表示不编译;输入m表示模块编写,这是大家都知道的。
那么,有了这个模块之后,需要编译哪些文件中,我们在drivers/net/Makefile看到了这样的内容,
obj-$(CONFIG_E1000) += e1000/
显然,这段代码只是告诉我们,要想编译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
看了这个文件,其实大家心理就应该有底了。原来这个e1000模块最终生成的文件就是e1000.ko,依赖的文件就是e1000_main.c、e1000_hw.c、e1000_ethtool.c、e1000_param.c这四个文件。只要CONFIG_E1000被设置了,那么这个模块就会被正常编译。我们要做的就是打开这个开关就可以了,剩下kernel会帮我们搞定一切。当然,如果大家想把这个模块拿出来,自己用一个独立的module编译也是可以的。
关于linux驱动的编译部分,其实就这两个配置文件比较重要。大家可以自己实际练习一下,进一步加深印象。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 《蛋仔派对》冒险家闪宝皮肤图鉴
- 《蛋仔派对》红舞裙皮肤图鉴
- 《蛋仔派对》街头小桶皮肤图鉴
- 大原櫻子《Passion》24-96
- 极品四重奏《百年流声2cd》DTS-ES6.1/WAV
- 群星《超级低音终结者-2》UPDTS-WAV分轨
- NS2再爆:8 英寸屏幕、磁性Joycon、解决摇杆磨损
- 《塞尔达》新作存在帧率问题 60/30FPS反复横跳
- 时隔十年!《异形:隔离》续作官宣开发中
- 《魔兽世界》钓鱼路线攻略
- 《生化危机2》mac版发售日期
- 《超级键盘侠》硬核模式怎么开
- 群星.2022-问天录电视剧原声专辑【听见时代】【FLAC分轨】
- 谭嘉仪.2018-LONELY【星梦娱乐】【WAV+CUE】
- 谢金燕.2004-默契【华特】【WAV+CUE】