Linux内核中提供了很多设备的驱动代码,但每个项目中总会需要添加我们自己的驱动,比如我们需要添加红外遥控驱动。我们可以先独立去编写和调试这个驱动,等成熟后应该放到内核目录树中,使用make modules命令统一编译。而且要在配置选项中体现出来,用户可以使用make menuconfig命令去配置编译与否。步骤比较简单,不过可能有些人不清楚,现写出来作为参考。

一:内核配置方法:

一般使用make config 和make menuconfig去配置内核。他们分别使用scripts/Configure和scripts/Menuconfig脚本解释工具去执行脚本。在2.4内核中脚本为各级目录下的Config.in,而在2.6内核中变为Kconfig。在配置完后会生成.config文件,其内容为相应的宏定义。

要让我们的驱动项显示到配置选项上,必须修改相应的Kconfig文件(以2.6内核为例),此文件有一定的语法规则,比较简单,再此不多描述。

二:实例讲解步骤

我们以添加oloir红外驱动为例讲解:

1:先选择一个放置驱动代码的位置:drivers/olo_ir,把代码放到这个目录中。

2:在drivers/olo_ir添加Kconfig文件,内容如下:

menu "OLO ir support"

config OLOIR

tristate "OLO ir support"

---help---

olo ir use gpio as ir input .

If you want olo ir support, you should say Y here and also to the

specific driver for your bus adapter(s) below.

This olo ir support can be built as a module.

endmenu

3:编写makefile,内容很简单:

obj-$(CONFIG_OLOIR) += oloir.o

4:修改上一级Makefile和Kconfig

在Makefile中添加:obj-$(CONFIG_OLOIR) += olo_ir/

在Kconfig中添加 :source "drivers/olo_ir/Kconfig"

5:在arch/arm的Kconfig中添加

source "drivers/olo_ir/Kconfig"

这个位置按照你的平台的架构而定。

linux 怎么往内核加驱动,向Linux内核添加驱动相关推荐

  1. Linux文件被自动加属性保护,Linux下如何对文件进行权限保护以防止文件被人改动...

    在Linux系统操作中,为了防止文件被人改动,可以将文件进行权限保护,那么具体要如何做呢?下面小编就给大家介绍下Linux下对文件进行权限保护的方法,一起来学习下吧. 在管理Linux系统的过程中,对 ...

  2. linux切换用户无法加载变量,Linux 中用户切换:su 和 su- 的使用 环境变量详解

    大部分Linux发行版的默认帐户是普通用户,而更改系统文件或者执行某些命令,须要root身份才能进行,这就须要从当前用户切换到root用户,Linux中切换用户的命令是su或su -,下面就su命令和 ...

  3. linux日志文件怎么加时间,修改linux系统日志保存天数

    一.环境介绍 linux系统中/var/log/目录日志默认保存四周并不生成系统日志(syslog.log),当用户有规定保存多少天时才去进行修改.系统日志路径/var/log/目录下 二.修改方法 ...

  4. linux下开机自动加载驱动模块,linux驱动模块开机自动加载,以及应用程序开机自启动...

    这两个功能的实现都是通过设置启动脚本来实现的.启动脚本的一般存放路径是 /etc/init.d/rcS  (rcS即脚本文件),自启动应用程序一般放置于 /etc/rc.d/init.d 目录下. 我 ...

  5. linux path环境变量加一个目录,linux – PYTHONPATH环境变量……之后如何创建每个子目录?...

    这不是PYTHONPATH的作用方式; PYTHONPATH将其搜索路径与shell PATH区别对待.假设我这样做: $mkdir /home/jsmith/python $cd /home/jsm ...

  6. uboot加载linux内核加载那些内容,几个地址参数及uboot加载启动内核过程的理解

    关于uBoot和Linux内核中几个地址参数及uboot加载启动内核过程的理解 uboot一般使用mkimage工具先制作一个启动映象文件来引导识别内核的,uboot源代码的tools/目录下有mki ...

  7. uboot加载linux内核加载那些内容,uBoot和Linux内核中涉及到的几个地址参数的理解...

    uBoot和Linux内核中涉及到的几个地址参数的理解 ************************************************* arch/arm/Makefile //内核 ...

  8. 连接oracle的驱动包,连接oracle数据库驱动包

    JDBC与JAVA数据库编程 一.JDBC的概念 1. JDBC (Java DataBase Connectivity) Java数据库连接 a) 主要提供java数据库应用程序的API支持 2.  ...

  9. linux英伟达显卡内核不匹配,硬核观察|Linus 破例在 Linux 5.11 内核中允许英伟达显卡驱动加塞...

    Linus 破例在 Linux 5.11 内核中允许英伟达显卡驱动加塞 据 cnbeta 报道,曾因闭源驱动对英伟达爆粗口的 Linus Torvalds,刚刚宣布了 Linux 5.11 内核版本的 ...

最新文章

  1. Android笔记(adb命令--reboot loader)
  2. ad域帐号登录提示无法处理请求_微软Windows Server之AD域控制器迁移测试方案
  3. linux新手程序,linux新手需要掌握的入门级命令
  4. 也来盘点一些最近的非Transformer工作
  5. Kubernetes排错:用容器的元数据提供新思路
  6. SAP CRM Product ACE check调试
  7. 目录同步 linux,Linux系统目录实时同步
  8. spring ldap_Spring 3,Spring Web Services 2和LDAP安全
  9. DS3400 RDAC for RedHat5.3安装文档-sunleii@DC
  10. java map存储格式_java HashMap HashSet的存储方式
  11. 2015-11-30 20:59:08之自力更生
  12. Windows server 2008R2 如何成功离线安装.net 4.7.2
  13. 环信webIM即时通讯学习笔记
  14. 如何分组取最新的数据
  15. python mkl 锐龙 cpu_Matlab 升级适配 AMD 锐龙,满血性能轻松提升 60%
  16. 高德地图(实时获取定位)
  17. 电脑神器推荐 地表最强播放器 (文末附下载资源)
  18. kubectl命令使用滚动更新和回滚
  19. Python就业都有哪些岗位?
  20. 提问的艺术:如何通过提示词让 ChatGPT 更准确地理解你的问题?

热门文章

  1. 简单php文件编写语法
  2. 【Computer Organization笔记28】总复习
  3. 全球域名商解析新增量18强:万网易名位居三甲
  4. k8s安装sqlite3_使用sqlite3步骤
  5. 常用的JS与XML结合用法 简单示例
  6. Java中equals()和“==”区别
  7. 2019-06-15
  8. 转载:图解SSL/TLS协议
  9. Arcgis server——arcgis server manager忘记密码
  10. JVM的7种垃圾收集器