博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux开发の如何静态的将驱动模块编译进内核
阅读量:2443 次
发布时间:2019-05-10

本文共 713 字,大约阅读时间需要 2 分钟。

在解决这个问题之前,我们先搞明白linux究竟是怎样管理源码中上万个文件的。

我们看Linux源码的目录,十分科学,基本上看到目录就可以猜到里面放的什么,那怎么把文件连接起来,靠的就是Kconfig,它可以告知Makefile那些编译那些不编译。

 

第一步:在driver目录下新建一个my_dr/hello目录,主要存放自己编写的内核驱动代码。当执行make menuconfig 时,能够找到自己编写的代码。

目录如图所示:

第二步:编辑hello目录下的Kconfig,Makefile文件如下图:

 

左边为Kconfig文件,右边是Makefile文件,如果变量CONFIG_HELLO为真或假,则判断是否编译hello.c为hello.o,CONFIG_HELLO变量值来自于.config文件的配置。.config文件的配置又来源于通过Kconfig文件的显式选择,在Kconfig文件中config为配置关键词,HELLO为配置项,tristate为三态选择器

第三步:编译my_dr目录下的Kconfig和Makefier

上图是Kconfig,对于这个文件来说,必须要建立一个菜单,对应各个对应的驱动程序,可以方便找到子目录下的Kconfig资源

最后一步:找到driver目录下的Kconfig,在里面添加 “source drivers/my_dr/Kconfig”

                 在当前目录的Makefile中添加             “obj-y             +=my_dr/”

               有时候我们会看到"obj-$(CONFIG_CATOR)  +=gator/"这样的表述,意思是只有配置了CONFIG_CATOR变量gator目录的文件才可以显示的选择。

你可能感兴趣的文章
删除MSSQL危险存储过程的代码(转)
查看>>
Linux学习要点(转)
查看>>
影响mysqld安全的几个选项(转)
查看>>
最新版本Linux Flash 9 Beta开放发布(转)
查看>>
Fedora 显示设备配置工具介绍(转)
查看>>
FREEBSD 升级及优化全攻略(转)
查看>>
手机最新触控技术
查看>>
Kubuntu 项目遭遇困难(转)
查看>>
kubuntu使用日记之 eva的配置使用(转)
查看>>
unix下几个有用的小shell脚本(转)
查看>>
QQ病毒的系列处理办法(转)
查看>>
基于IBM大型主机,Linux开辟意大利旅游新天地(转)
查看>>
一些Linux试题(经典!!)(转)
查看>>
优化MySQL数据库性能的八大“妙手”(转)
查看>>
网上交易中帐号和密码被盗的解决途径(转)
查看>>
Java线程总结(转)
查看>>
Java学习之类的属性(转)
查看>>
linux中crontab命令(转)
查看>>
牛人请进 小弟跪求(转)
查看>>
Linux版本凌乱痛失市场(转)
查看>>