iTOP-i.MX6Q开发板在内核源码中以modules的方式编译驱动

本文档详细介绍如何在iTOP-i.MX6Q开发板上,通过设备树内核以modules方式编译LED驱动。以imx6q的qt系统内核编译为例,涵盖了Kconfig、Makefile的修改,以及.config和menuconfig的使用,最终实现LED驱动的模块加载和设备节点生成。

本文档主要讲解在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”,可以看到设备节点生成,如下图所示。

 

转载于:https://www.cnblogs.com/mingyue77/p/11118784.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值