linux开发の如何静态的将驱动模块编译进内核

在解决这个问题之前,我们先搞明白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目录的文件才可以显示的选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值