一、相关概念

  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. C#多线程(5):资源池限制

    目录 Semaphore.SemaphoreSlim 类 Semaphore 类 示例 示例说明 信号量 SemaphoreSlim类 示例 区别 Semaphore.SemaphoreSlim 类 ...

  2. Rust 登上了开源头条「GitHub 热点速览」

    抱歉!上周因为出月刊工作量比较大,所以「GitHub 热点速递」暂停了一期,必须要给守着更新的读者道个歉,以后每周二的「热点速递」会按时更新,下不为例. 说回本周的热门开源项目,Rust 语言可谓是出 ...

  3. Inertial Explorer Xpress 学习笔记

    KEY WORDS: Coordinate Updates (CUPTs) Zero Velocity Updates (ZUPTs) Google Protocol Buffer (GPB)  是一 ...

  4. 从华为WeAutomate数字机器人论坛,看政企领域的“政务新智理”

    从华为WeAutomate数字机器人论坛,看政企领域的"政务新智理" 从政务治理到"政务新智理",华为WeAutomate在政务领域的思考与实践 华为WeAut ...

  5. Excel去除表格密码保护

    表格受密码保护时,我们修改数据Excel弹出"您试图更改的单元格或图表受保护,因而是只读的.若要修改受保护单元格或图表,请先使用'撤消工作表保护'命令(在'审阅'选项卡的'更改'组中)来取消 ...

  6. RC4算法:流密码算法的经典之作

    一.RC4算法的起源与演变 RC4算法是由著名密码学家Ron Rivest在1987年设计的一种流密码算法,其名字来源于Rivest Cipher 4.RC4算法简单高效,被广泛应用于数据加密和网络安 ...

  7. 技能get-ps抠颜色一样的图

    公司要插个小图片,从网上down下来的图片是不过是jpg的,背景不透明,这时候可以使用ps工具把这种同一颜色的内容扣下来. 操作步骤: 选择-色彩范围,然后用取样器取颜色,再调节拉条选取颜色范围,最后 ...

  8. @Autowired和@Resource整理

    参考,欢迎点击原文:https://www.ixigua.com/6991282608663593508?id=6945836219422999079&logTag=944f6616c791c ...

  9. System.out.print重定向到文件实例

    该代码可以实现让System.out.print输出内容不再打印到控制台,而是输出到指定的文件中 <strong><span style="font-size:24px;& ...

  10. 32_音视频播放器_SDL播放

    目录 一.简介 二.音频重采样 2.1 引入头文件 2.2 定义重采样相关属性 2.3初始化重采样 2.4 重采样 三.SDL播放 四.停止功能 五.处理读完音频包的情况 六.实现调节音量 七.实现静 ...