Linux之驱动管理
一、相关概念
- 驱动概念
- 驱动与底层硬件直接打交道,充当了硬件与应用软件中间的桥梁。
- 将驱动程序载入内核,应用程序可以通过系统调用接口来访问(驱动)底层的硬件设备。
- 驱动功能
- 对设备初始化和释放
- 把数据从内核传送到硬件和从硬件读取数据
- 读取应用程序传送给设备文件的数据和回送应用程序请求的数据
- 检测和处理设备出现的错误
- Linux 驱动有两种运行方式
- 将驱动编译进 Linux 内核中,当 Linux 内核启动的时就会自动运行驱动程序。
- 将驱动编译成模块(Linux 下模块扩展名为.ko),在Linux 内核启动以后使用相应命令加载驱动模块。
内核模块是Linux内核向外部提供的一个插口
内核模块是具有独立功能的程序,他可以被单独编译,但不能单独运行。他在运行时被链接到内核作为内核的一部分在内核空间运行
内核模块便于驱动、文件系统等的二次开发
二、管理命令
实际使用中,我们一般使用模块化的方式为系统动态装载一些驱动,以下是一些模块化驱动的管理命令。
- 驱动的位置
/lib/modules/kernel_release
# ls -l /lib/modules/3.10.0-1160.el7.x86_64/
总用量 3300
lrwxrwxrwx. 1 root root 39 9月 6 16:10 build -> /usr/src/kernels/3.10.0-1160.el7.x86_64
drwxr-xr-x. 2 root root 6 10月 20 2020 extra
drwxr-xr-x. 12 root root 128 9月 6 16:10 kernel
-rw-r--r--. 1 root root 860326 9月 6 16:12 modules.alias
-rw-r--r--. 1 root root 819744 9月 6 16:12 modules.alias.bin
-rw-r--r--. 1 root root 1333 10月 20 2020 modules.block
-rw-r--r--. 1 root root 7391 10月 20 2020 modules.builtin
-rw-r--r--. 1 root root 9440 9月 6 16:12 modules.builtin.bin
-rw-r--r--. 1 root root 273209 9月 6 16:12 modules.dep
-rw-r--r--. 1 root root 382108 9月 6 16:12 modules.dep.bin
-rw-r--r--. 1 root root 361 9月 6 16:12 modules.devname
-rw-r--r--. 1 root root 140 10月 20 2020 modules.drm
-rw-r--r--. 1 root root 69 10月 20 2020 modules.modesetting
-rw-r--r--. 1 root root 1810 10月 20 2020 modules.networking
-rw-r--r--. 1 root root 97935 10月 20 2020 modules.order
-rw-r--r--. 1 root root 569 9月 6 16:12 modules.softdep
-rw-r--r--. 1 root root 397513 9月 6 16:12 modules.symbols
-rw-r--r--. 1 root root 486211 9月 6 16:12 modules.symbols.bin
lrwxrwxrwx. 1 root root 5 9月 6 16:10 source -> build
drwxr-xr-x. 2 root root 6 10月 20 2020 updates
drwxr-xr-x. 2 root root 95 9月 6 16:10 vdso
drwxr-xr-x. 2 root root 6 10月 20 2020 weak-updates
# lsmod //显示当前加载了的驱动,不光有硬件驱动,还有功能驱动
# modinfo 驱动名 //显示模块信息
# modprobe module name //加载驱动
# modprobe-r module name //卸载驱动
# insmod drv.ko //加载drv驱动
# modprob drv //加载drv驱动
insmod一次只能加载特定的一个设备驱动,且需要驱动的具体地址。
modprobe则可以一次将有依赖关系的驱动全部加载到内核。不加驱动的具体地址,但需要在安装文件系统时是按照make modues_install的方式安装驱动模块的。驱动被安装在/lib/modules/$(uname -r)/...下。
modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。
Linux之驱动管理的更多相关文章
- Linux设备驱动那些事
目的 初步了解 linux 设备驱动框架模型 初步了解设备驱动模型有哪些元素 设备驱动模型元素的说明及解释 设备驱动模型元素的工作原理 设备驱动模型的小例子 对整体有个粗略的了解,设备驱动类型种类太多 ...
- linux设备驱动归纳总结(七):1.时间管理与内核延时【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-100005.html linux设备驱动归纳总结(七):1.时间管理与内核延时 xxxxxxxxxxx ...
- linux设备驱动归纳总结(四):1.进程管理的相关概念【转】
本文转载自;http://blog.chinaunix.net/uid-25014876-id-64866.html linux设备驱动归纳总结(四):1.进程管理的相关概念 xxxxxxxxxxxx ...
- 【Linux开发】linux设备驱动归纳总结(七):1.时间管理与内核延时
linux设备驱动归纳总结(七):1.时间管理与内核延时 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...
- 【Linux开发】linux设备驱动归纳总结(四):1.进程管理的相关概念
linux设备驱动归纳总结(四):1.进程管理的相关概念 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...
- 浅谈Android系统移植、Linux设备驱动
一.Android系统架构 第一层:Linux内核 包括驱动程序,管理内存.进程.电源等资源的程序 第二层:C/C++代码库 包括Linux的.so文件以及嵌入到APK程序中的NDK代码 第三层:An ...
- Linux设备驱动模型之I2C总线
一.I2C子系统总体架构 1.三大组成部分 (1)I2C核心(i2c-core):I2C核心提供了I2C总线驱动(适配器)和设备驱动的注册.注销方法,提供了与具体硬件无关的I2C读写函数. (2)I2 ...
- linux设备驱动概述,王明学learn
linux设备驱动学习-1 本章节主要学习有操作系统的设备驱动和无操作系统设备驱动的区别,以及对操作系统和设备驱动关系的认识. 一.设备驱动的作用 对设备驱动最通俗的解释就是“驱使硬件设备行动” .设 ...
- Smart210学习记录------linux串口驱动
转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=27025492&id=327609 一.核心数据结构 串口驱动有 ...
- linux设备驱动归纳总结(九):1.platform总线的设备和驱动【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-111745.html linux设备驱动归纳总结(九):1.platform总线的设备和驱动 xxxx ...
随机推荐
- NebulaGraph v3.3.0 发布:支持子图过滤、和大量性能优化
NebulaGraph 3.3.0 支持了 GET SUBGRAPH 和 GetNeighbors 的点过滤.引入了大量性能优化,同时,开始对无 tag 顶点的支持默认关闭. 优化 优化了 k-hop ...
- Java 演示线程的死锁问题
1 package bytezero.deadlock; 2 3 /** 4 * 演示线程的死锁问题: 5 * 6 * 1.死锁的理解:不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃 7 ...
- Java 面向对象的特征一: * 封装与隐藏
1 * @ 面向对象的特征一: 2 * 封装与隐藏 3 * 创建一个类的对象以后,我们可以通过"对象.属性"的方式,对 4 * 对象的属性进行赋值,这里,赋值操作要受到属性的数据类 ...
- MVVM --- 实现多层级通知
引言 在实际开发场景中,当ViewModel内的一个属性是一个 ObservableCollection<T> 或者是一个多层级 class 的时候,有可能有的需求需要 Observabl ...
- Zabbix“专家坐诊”第187期问答汇总
问题一 Q:zabbix server 5.0有办法不通过脚本监控SSL证书到期时间么? A:目前还是流行通过脚本方式去获取. Q:如果是通配符证书应该怎么监控? A:通过解析域名获取对应的过期时间的 ...
- IDEA导入项目jar包=来自本地仓库-一直报红线的解决办法
一.问题由来 现在开发的Java项目全部都是再内网进行开发,和互联网是完全物理隔绝的,所以在最开始配置IDEA的时候,项目中需要导入的Jar包 都是从本地仓库中进行导入,在maven的配置文件里面配置 ...
- 计算引擎-Presto
概述 参考 高质量: B站:https://mp.weixin.qq.com/s/9_lSIFSw5o8sFC8foEtA7w https://mp.weixin.qq.com/s/NmTaJjE0U ...
- 网络io与select
我们知道网络IO模型一共有5种,这里我们主要讨论同步IO和select多路复用的情况. 我们先从一个简单的TCP服务器的代码出发,来讨论一下这个是怎么实现的. 一个十分简单的TCP服务器 一个简单的T ...
- Grails的数据库相关开发
1.开发domain和service 在出来的输入框里输入domain的名字,可以包括包名. 这里我输入test.domain.House,点finish 创建了两个groovy文件,一个当然是tes ...
- 记一次由虚假唤醒产生的bug
记一次由虚假唤醒产生的bug 用int a代表产品数量最少0最多10,有两个生产者,三个消费者,用多线程和条件变量模拟生产消费过程: #include <sys/types.h> #inc ...