一、相关概念

  1. 驱动概念
  • 驱动与底层硬件直接打交道,充当了硬件与应用软件中间的桥梁。
  • 将驱动程序载入内核,应用程序可以通过系统调用接口来访问(驱动)底层的硬件设备。
  1. 驱动功能
  • 对设备初始化和释放
  • 把数据从内核传送到硬件和从硬件读取数据
  • 读取应用程序传送给设备文件的数据和回送应用程序请求的数据
  • 检测和处理设备出现的错误
  1. Linux 驱动有两种运行方式
  • 将驱动编译进 Linux 内核中,当 Linux 内核启动的时就会自动运行驱动程序。
  • 将驱动编译成模块(Linux 下模块扩展名为.ko),在Linux 内核启动以后使用相应命令加载驱动模块。

    内核模块是Linux内核向外部提供的一个插口

    内核模块是具有独立功能的程序,他可以被单独编译,但不能单独运行。他在运行时被链接到内核作为内核的一部分在内核空间运行

    内核模块便于驱动、文件系统等的二次开发

二、管理命令

实际使用中,我们一般使用模块化的方式为系统动态装载一些驱动,以下是一些模块化驱动的管理命令。

  1. 驱动的位置

/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之驱动管理的更多相关文章

  1. Linux设备驱动那些事

    目的 初步了解 linux 设备驱动框架模型 初步了解设备驱动模型有哪些元素 设备驱动模型元素的说明及解释 设备驱动模型元素的工作原理 设备驱动模型的小例子 对整体有个粗略的了解,设备驱动类型种类太多 ...

  2. linux设备驱动归纳总结(七):1.时间管理与内核延时【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-100005.html linux设备驱动归纳总结(七):1.时间管理与内核延时 xxxxxxxxxxx ...

  3. linux设备驱动归纳总结(四):1.进程管理的相关概念【转】

    本文转载自;http://blog.chinaunix.net/uid-25014876-id-64866.html linux设备驱动归纳总结(四):1.进程管理的相关概念 xxxxxxxxxxxx ...

  4. 【Linux开发】linux设备驱动归纳总结(七):1.时间管理与内核延时

    linux设备驱动归纳总结(七):1.时间管理与内核延时 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  5. 【Linux开发】linux设备驱动归纳总结(四):1.进程管理的相关概念

    linux设备驱动归纳总结(四):1.进程管理的相关概念 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  6. 浅谈Android系统移植、Linux设备驱动

    一.Android系统架构 第一层:Linux内核 包括驱动程序,管理内存.进程.电源等资源的程序 第二层:C/C++代码库 包括Linux的.so文件以及嵌入到APK程序中的NDK代码 第三层:An ...

  7. Linux设备驱动模型之I2C总线

    一.I2C子系统总体架构 1.三大组成部分 (1)I2C核心(i2c-core):I2C核心提供了I2C总线驱动(适配器)和设备驱动的注册.注销方法,提供了与具体硬件无关的I2C读写函数. (2)I2 ...

  8. linux设备驱动概述,王明学learn

    linux设备驱动学习-1 本章节主要学习有操作系统的设备驱动和无操作系统设备驱动的区别,以及对操作系统和设备驱动关系的认识. 一.设备驱动的作用 对设备驱动最通俗的解释就是“驱使硬件设备行动” .设 ...

  9. Smart210学习记录------linux串口驱动

    转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=27025492&id=327609 一.核心数据结构 串口驱动有 ...

  10. linux设备驱动归纳总结(九):1.platform总线的设备和驱动【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-111745.html linux设备驱动归纳总结(九):1.platform总线的设备和驱动 xxxx ...

随机推荐

  1. 十五: InnoDB的存储结构

    InnoDB的存储结构 1.数据库的存储结构:页 索引结构给我们提供了高效的索引方式,不过索引|信息以及数据记录都是保存在文件上的,确切说是存储在页结构中.另一方面,索引是在存储引擎中实现的,MySQ ...

  2. Spring整合mybatis使用xml配置事务

    自己准备开始教授Java相关的技术,Spring框架是必须让学生学习的框架之一.里面有一个事务相关的 配置,以前刚学习Spring框架的时候有接触过,只是过了很多年,很多东西都已经淡忘.再来回忆一下 ...

  3. 基于python的定时PC定时录音机实现

    一 概念基础 这次用python实现一个定时录音机的功能,可以让你的i电脑秒变定时录音机. 这里用到了wave库,time库等.熟悉该源码,即可了解这些库的用法.   二 源码解析 1.录音函数,该函 ...

  4. Android 获取设备的CPU型号和设备型号

    原文: Android 获取设备的CPU型号和设备型号-Stars-One的杂货小窝 之前整的项目的总结信息,可能不太全,凑合着用吧,代码在最下面一节 CPU型号数据 华为: ro.mediatek. ...

  5. day08-2-Thymeleaf

    服务器渲染技术-Thymeleaf 1.基本介绍 官方在线文档:Read online 文档下载:Thymeleaf 3.1 PDF, EPUB, MOBI Thymeleaf 是什么 Thymele ...

  6. java线程池知识整理

    参考,欢迎点击原文:https://www.jianshu.com/p/246021d04310(java多线程那点事) https://blog.csdn.net/fanrenxiang/artic ...

  7. 像使用stl一样使用线段树 ——AtCoder Library(转载https://zhuanlan.zhihu.com/p/459579152)

    地址:https://zhuanlan.zhihu.com/p/459579152 我这里翻译一下官方的文档. 首先需要满足几个性质. (注意 ∗ 是个操作,不是单纯的一个乘号) 1)操作满足结合律 ...

  8. 如何让AR物体更真实?

    在增强现实中,除了虚拟物体本身的模型材质等因素,影响物体真实性的主要是光照.反射.阴影.接下来3DCAT实时渲染云平台将带您从这三个方面探索如何让AR物体更真实! AR光估测 要让一个虚拟物体很好的融 ...

  9. Web Audio API 第2章 完美的播放时机控制

    Web Audio API 第2章 完美的播放时机控制 相较于 标签, Web Audio API 拥有低延迟精确定时模型. 低延时对于游戏或交互式应用来说非常重要,因为交互操作时要快速响应给用户的听 ...

  10. C# SM2 解密 对接兴业银行业务

    下载地址