linux 怎么往内核加驱动,向Linux内核添加驱动
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内核添加驱动相关推荐
- Linux文件被自动加属性保护,Linux下如何对文件进行权限保护以防止文件被人改动...
在Linux系统操作中,为了防止文件被人改动,可以将文件进行权限保护,那么具体要如何做呢?下面小编就给大家介绍下Linux下对文件进行权限保护的方法,一起来学习下吧. 在管理Linux系统的过程中,对 ...
- linux切换用户无法加载变量,Linux 中用户切换:su 和 su- 的使用 环境变量详解
大部分Linux发行版的默认帐户是普通用户,而更改系统文件或者执行某些命令,须要root身份才能进行,这就须要从当前用户切换到root用户,Linux中切换用户的命令是su或su -,下面就su命令和 ...
- linux日志文件怎么加时间,修改linux系统日志保存天数
一.环境介绍 linux系统中/var/log/目录日志默认保存四周并不生成系统日志(syslog.log),当用户有规定保存多少天时才去进行修改.系统日志路径/var/log/目录下 二.修改方法 ...
- linux下开机自动加载驱动模块,linux驱动模块开机自动加载,以及应用程序开机自启动...
这两个功能的实现都是通过设置启动脚本来实现的.启动脚本的一般存放路径是 /etc/init.d/rcS (rcS即脚本文件),自启动应用程序一般放置于 /etc/rc.d/init.d 目录下. 我 ...
- linux path环境变量加一个目录,linux – PYTHONPATH环境变量……之后如何创建每个子目录?...
这不是PYTHONPATH的作用方式; PYTHONPATH将其搜索路径与shell PATH区别对待.假设我这样做: $mkdir /home/jsmith/python $cd /home/jsm ...
- uboot加载linux内核加载那些内容,几个地址参数及uboot加载启动内核过程的理解
关于uBoot和Linux内核中几个地址参数及uboot加载启动内核过程的理解 uboot一般使用mkimage工具先制作一个启动映象文件来引导识别内核的,uboot源代码的tools/目录下有mki ...
- uboot加载linux内核加载那些内容,uBoot和Linux内核中涉及到的几个地址参数的理解...
uBoot和Linux内核中涉及到的几个地址参数的理解 ************************************************* arch/arm/Makefile //内核 ...
- 连接oracle的驱动包,连接oracle数据库驱动包
JDBC与JAVA数据库编程 一.JDBC的概念 1. JDBC (Java DataBase Connectivity) Java数据库连接 a) 主要提供java数据库应用程序的API支持 2. ...
- linux英伟达显卡内核不匹配,硬核观察|Linus 破例在 Linux 5.11 内核中允许英伟达显卡驱动加塞...
Linus 破例在 Linux 5.11 内核中允许英伟达显卡驱动加塞 据 cnbeta 报道,曾因闭源驱动对英伟达爆粗口的 Linus Torvalds,刚刚宣布了 Linux 5.11 内核版本的 ...
最新文章
- Android笔记(adb命令--reboot loader)
- ad域帐号登录提示无法处理请求_微软Windows Server之AD域控制器迁移测试方案
- linux新手程序,linux新手需要掌握的入门级命令
- 也来盘点一些最近的非Transformer工作
- Kubernetes排错:用容器的元数据提供新思路
- SAP CRM Product ACE check调试
- 目录同步 linux,Linux系统目录实时同步
- spring ldap_Spring 3,Spring Web Services 2和LDAP安全
- DS3400 RDAC for RedHat5.3安装文档-sunleii@DC
- java map存储格式_java HashMap HashSet的存储方式
- 2015-11-30 20:59:08之自力更生
- Windows server 2008R2 如何成功离线安装.net 4.7.2
- 环信webIM即时通讯学习笔记
- 如何分组取最新的数据
- python mkl 锐龙 cpu_Matlab 升级适配 AMD 锐龙,满血性能轻松提升 60%
- 高德地图(实时获取定位)
- 电脑神器推荐 地表最强播放器 (文末附下载资源)
- kubectl命令使用滚动更新和回滚
- Python就业都有哪些岗位?
- 提问的艺术:如何通过提示词让 ChatGPT 更准确地理解你的问题?