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

lmx6q开发板android,iTOP-i.MX6Q开发板在内核源码中以modules的方式编译驱动相关推荐

  1. 解析Linux内核源码中数据同步问题丨C++后端开发丨Linux服务器开发丨Linux内核开发丨驱动开发丨嵌入式开发丨内核操作系统

    剖析Linux内核源码数据同步 1.pdflush机制原理 2.超级块同步/inode同步 3.拥塞及强制回写技术 视频讲解如下,点击观看: 解析Linux内核源码中数据同步问题丨C++后端开发丨Li ...

  2. 飞凌嵌入式iMX8MP 开发板试用体验--编译内核源码

    FETMX8MP-C核心板基于NXP i.MX 8M Plus处理器开发设计,该系列处理器专注于机器学习与视觉.高级多媒体以及具有高可靠性的工业自动化.旨在满足智慧城市.工业互联网.智能医疗.智慧交通 ...

  3. Linux移植:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(4.1.15版本内核)

    Linux移植:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(4.1.15版本内核) 文章目录 Linux移植:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(4 ...

  4. android系统源码中添加app源码(源码部署移植)

    涉及到系统定制,需要在系统中加入自己的apk工程,但是上网找了很多资料都是不够全面的,或者看了还是没搞懂,我自己也是一点点摸索过来的,花了不少的时间,也是踩了不少的坑,因此特开一文,帮助大家渡河. 申 ...

  5. quado编辑Android代码步骤,Ubuntu11.10下编译android内核源码

    编译android源码时并不会自动编译android内核,因此需要手动编译这部分代码.编译内核所用的时间比编译android源码要少得多,只需一会就编译完成. 1.确定内核版本 进入存放android ...

  6. 华硕Tinker Board开发板(rk3288处理器)开发 ---- 将Android Studio开发的apk源码放到Android7.1.2源码中进行编译

    备注:此Android Studio项目并没有jni,没有使用动态so库,只是一个简单的项目. 1.将Android studio开发的项目移植到Android7.1.2源码中,我们只需要Androi ...

  7. Android AR开发实践之七:OpenGLES相机预览背景绘制源码详解

    Android AR开发实践之七:OpenGLES相机预览背景绘制源码详解 目录 Android AR开发实践之七:OpenGLES相机预览背景绘制源码详解 一.OpenGL ES渲染管线 1.基本处 ...

  8. Android仿比心1对1直播源码开发,开机自动启动的实现

    在开发仿比心1对1直播源码过程中,常会要求仿比心1对1直播源码在系统开机时可以自动启动.这里,我将实现方法和遇到的一些问题总结于下文. 一. 实现 继承一个BroadcastReceiver用来处理B ...

  9. Linux下imx6dl开发板从镜像的烧写、内核源码编译到第一个驱动运行的详细步骤

    文章目录 前言 一.对开发板烧写镜像 1.镜像烧写 2.串口测试 二.搭建交叉编译环境 1.Ubuntu下搭建交叉编译环境 2.WSL下搭建交叉编译环境 三.编译Linux内核源码 1.Ubuntu下 ...

最新文章

  1. Error in variable_response could not find function “variable_response“
  2. 易创课堂成都站给你寄来一包干货,请注意查收
  3. 可申请试用!GN4系列GPU云服务器重磅来袭
  4. mysql数据库new和old_数据库触发器中new表和old表是什么意思?
  5. JavaScript进阶4-学习笔记
  6. 315. 计算右侧小于当前元素的个数
  7. js原生事件委托的实现
  8. php显示几个字符串,比较php中的两个字符串并显示字符差异
  9. MCGS图库 触摸屏组态图库 触摸屏图库 昆仑通态触摸屏专用CGS
  10. 网站常用JSON嵌套形式
  11. python实现的EDF(earliest deadline first)算法
  12. 分布式存储系统Kudu(一)、核心原理
  13. 2021年全球AFM探针收入大约230.8百万美元,预计2028年达到374.9百万美元
  14. MVC 音乐商店 第 2 部分: 控制器
  15. 广远社团队给大家分享这些年经历的网赚时代
  16. 一个五年程序员的学习状态
  17. 视频发微信文件过大怎么办大于200m视频发送微信?
  18. 【浅墨Unity3D Shader编程】之中的一个 夏威夷篇:游戏场景的创建 amp; 第一个Shader的书写...
  19. 成型滤波器设计matlab,MATLAB+VHDL脉冲成型滤波器的设计 附代码
  20. R语言主成分分析总结

热门文章

  1. 手机连上wifi却上不了网的原因
  2. Builtin function
  3. 移动硬盘如何分区?教您快速解决!
  4. ubuntu 制作squashfs
  5. PyBullet开荒笔记
  6. 企业级应用的概念和特点
  7. 腾讯云+运维,助力运维领域技术发展
  8. 做代理记账工作风险有哪些
  9. 前端基础:什么是ApiPost?它与postman有什么区别?
  10. Spring:一、Spring的发展史-“富二代”公司成就了一个Spring帝国?