本文小编为大家详细介绍“如何以modules的方式编译驱动”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何以modules的方式编译驱动”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
成都创新互联是一家集网站建设,兖州企业网站建设,兖州品牌网站建设,网站定制,兖州网站建设报价,网络营销,网络优化,兖州网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
本文档主要讲解在iTOP-i.MX6Q开发板,设备树内核中以 modules 方式编译驱动。
这里以 imx6q(imx6d 和 plus 的类似)的 qt 系统内核编译为例,Ubuntu16 的内核和
qt 通用,android6.0 的配置和 qt 的类似。
文档先介绍和驱动编译相关的几个文件,Kconfig、Makefile。另外.config 文件和
menuconfig 文件,可以参考“iTOP-iMX6-设备树内核-缺省文件文件的配置_V1.X”文档和
“iTOP-iMX6-设备树内核-menuconfig 的使用_V1.X”文档。
这里以 led 驱动为例,驱动源码为“drivers/char/”下的“itop6x_led.c”文件,如下图
所示。
打开“drivers/char/”下的 Makefile 文件,如下图所示,可以看到编译 led 的宏为
“CONFIG_LEDS_CTL”。
上面这个文件不用修改,打开“drivers/char/”下的“Kconfig”文件,搜索
“LEDS_CTL”,如下图所示,将 bool 修改为 tristate。
修改保存。
重新配置缺省文件,参考“iTOP-iMX6-设备树内核-缺省文件文件的配置_V1.X”配置缺
省文件,重新编译内核,如下图所示,可以看到有“itop6x_led.ko”文件生成。
将重新生成的内核烧写到开发板(注意不能烧写光盘中自带的镜像,那个镜像里已经添加
了 led 驱动),新的镜像烧写之后,在控制台查询“/dev/led*”,应该没有这个设备节点。
将“itop6x_led.ko”拷贝到开发板,如下图所示,使用命令“insmod itop6x_led.ko”
加载驱动。
使用命令“ls /dev/led8”,可以看到设备节点生成,如下图所示。
读到这里,这篇“如何以modules的方式编译驱动”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注创新互联行业资讯频道。