学习 Linux 设备驱动如何工作,并知道如何使用它们。

对于一个熟悉 Windows 或者 MacOS 的人,想要切换到 Linux,它们都会面临一个艰巨的问题就是怎么安装和配置设备驱动。这是可以理解的,因为 Windows 和 MacOS 都有一套机制把这个过程做得非常的友好。比如说,当你插入一个新的硬件设备, Windows 能够自动检测并会弹出一个窗口询问你是否要继续驱动程序的安装。你也可以从网络上下载驱动程序,仅仅需要双击解压或者是通过设备管理器导入驱动程序即可。

而这在 Linux 操作系统上并非这么简单。***个原因是, Linux 是一个开源的操作系统,所以有 数百种 Linux 发行版的变体。也就是说不可能做一个指南来适应所有的 Linux 发行版。因为每种 Linux 安装驱动程序的过程都有差异。

第二,大多数默认的 Linux 驱动程序也都是开源的,并被集成到了系统中,这使得安装一些并未包含的驱动程序变得非常复杂,即使已经可以检测大多数的硬件设备。第三,不同发行版的许可也有差异。例如,Fedora 禁止事项 禁止包含专有的、受法律保护,或者是违反美国法律的驱动程序。而 Ubuntu 则让用户避免使用受法律保护或闭源的硬件设备。

为了更好的学习 Linux 驱动程序是如何工作的,我建议阅读 《Linux 设备驱动程序》一书中的 设备驱动程序简介。

两种方式来寻找驱动程序

1、 用户界面

如果是一个刚从 Windows 或 MacOS 转过来的 Linux 新手,那你会很高兴知道 Linux 也提供了一个通过向导式的程序来查看驱动程序是否可用的方法。 Ubuntu 提供了一个 附加驱动程序 选项。其它的 Linux 发行版也提供了帮助程序,像 GNOME 的包管理器,你可以使用它来检查驱动程序是否可用。

2、 命令行

如果你通过漂亮的用户界面没有找到驱动程序,那又该怎么办呢?或许你只能通过没有任何图形界面的 shell?甚至你可以使用控制台来展现你的技能。你有两个选择:

通过一个仓库

这和 MacOS 中的 homebrew 命令行很像。通过使用 yum、 dnf、apt-get 等等。你基本可以通过添加仓库,并更新包缓存。

下载、编译,然后自己构建

这通常包括直接从网络,或通过 wget 命令下载源码包,然后运行配置和编译、安装。这超出了本文的范围,但是你可以在网络上找到很多在线指南,如果你选择的是这条路的话。

检查是否已经安装了这个驱动程序

在进一步学习安装 Linux 驱动程序之前,让我们来学习几条命令,用来检测驱动程序是否已经在你的系统上可用。

lspci 命令显示了系统上所有 PCI 总线和设备驱动程序的详细信息。

$ lscpci

或者使用 grep:

$ lscpci|grepSOME_DRIVER_KEYWORD

例如,你可以使用 lspci | grep SAMSUNG 命令,如果你想知道是否安装过三星的驱动。

dmesg 命令显示了所有内核识别的驱动程序。

$dmesg

或配合 grep 使用:

$dmesg|grepSOME_DRIVER_KEYWORD

任何识别到的驱动程序都会显示在结果中。

如果通过 dmesg 或者 lscpi 命令没有识别到任何驱动程序,尝试下这两个命令,看看驱动程序至少是否加载到硬盘。

$/sbin/lsmod

$find/lib/modules

技巧:和 lspci 或 dmesg 一样,通过在上面的命令后面加上 | grep 来过滤结果。

如果一个驱动程序已经被识别到了,但是通过 lscpi 或 dmesg 并没有找到,这意味着驱动程序已经存在于硬盘上,但是并没有加载到内核中,这种情况,你可以通过 modprobe 命令来加载这个模块。

$sudomodprobeMODULE_NAME

使用 sudo 来运行这个命令,因为这个模块要使用 root 权限来安装。

添加仓库并安装

可以通过 yum、dnf 和 apt-get 几种不同的方式来添加一个仓库;一个个介绍完它们并不在本文的范围。简单一点来说,这个示例将会使用 apt-get ,但是这个命令和其它的几个都是很类似的。

1、删除存在的仓库,如果它存在

$sudoapt-getpurge NAME_OF_DRIVER*

其中 NAME_OF_DRIVER 是你的驱动程序的可能的名称。你还可以将模式匹配加到正则表达式中来进一步过滤。

2、将仓库加入到仓库表中,这应该在驱动程序指南中有指定

$sudoadd-apt-repository REPOLIST_OF_DRIVER

其中 REPOLIST_OF_DRIVER 应该从驱动文档中有指定(例如:epel-list)。

3、更新仓库列表

$sudoapt-getupdate

4、安装驱动程序

$sudoapt-getinstall NAME_OF_DRIVER

5、检查安装状态

像上面说的一样,通过 lscpi 命令来检查驱动程序是否已经安装成功。

【编辑推荐】

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0

如何在linux下安装驱动程序,如何在Linux上安装设备驱动程序相关推荐

  1. Linux下USB刻录工具,Ubuntu上安装Etcher-开源USB刻录机工具

    Etcher是一款跨平台的USB镜像文件写入工具,在Windows.macOS和Linux平台上都非常受欢迎的开源具,该软件刚刚发布了一个新的稳定版本. Etcher 功能的概述 在各种beta版本的 ...

  2. Linux 下 离线下载服务部署 CCAA的安装使用

    Linux 下 离线下载服务部署 CCAA的安装使用 我的小站.Github CCAA 是服务器离线下载解决⽅案包,组件包含了Aria2 提供离线下载,ccaa_web⽀撑AriaNg运⾏, Aria ...

  3. linux 下eclipse调试程序,文章2 Linux安装Eclipse阅读及调试程序

    由于安装Eclipse需要Java环境,还需要配置环境,非常复杂,建议安装系统时,选择上Eclipse开发工具 但是安装的Eclipse中没有CDT.首先给Eclipse安装一个CDT. 1.安装CD ...

  4. linux 内网yum,Linux下 内网环境 通过ISO yum安装依赖

    Linux下 内网环境 通过ISO yum安装依赖 上传系统系统镜像 创建镜像挂载点 mkdir iso 将系统镜像挂载到 /iso 挂载点上 [root@localhost home]# mount ...

  5. Linux下JIRA版本5.0.1的安装.破解.汉化

     Linux下JIRA版本5.0.1的安装.破解.汉化 2013-11-10 01:36:27 标签:linux jira 安装 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者 ...

  6. linux下能运行python,(转)Linux下运行python

    原文: http://blog.csdn.net/jackywgw/article/details/48847187 在linux命令行下运行python,可以直接输出hello world jack ...

  7. 如何在安装了Windows操作系统的电脑上安装Linux操作系统

    [原创]如何在安装了Windows操作系统的电脑上安装Linux操作系统 一.不得不知道的一件事 相信中国大多数个人用的电脑在买回来时已经 安装了Windows,并且大家习惯了用Windows,而且有 ...

  8. 嵌入式Linux设备驱动程序:用户空间中的设备驱动程序

    嵌入式Linux设备驱动程序:用户空间中的设备驱动程序 Embedded Linux device drivers: Device drivers in user space Interfacing ...

  9. linux 下查看应用版本信息,Linux下查看版本信息

    Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等. 1.# uname -a   (Linux查看版本当前操作系统内核信息) 2.# cat /proc/vers ...

  10. linux下的zz命令,[zz]Linux下压缩命令

    一.Linux下和windows下的压缩文件的几个说明 在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rar.可是Linux就不同了,它有.gz..tar.gz.tgz. bz ...

最新文章

  1. 查看linux机器是32位还是64位的方法
  2. JavaPairRDD方法中几种存储方式的坑
  3. Apache Rewrite的主要功能
  4. boost::math::quadrature::gauss_kronrod用法的测试程序
  5. html js 如何判断页面是第一次访问还是重复刷新访问,使用JS判断页面是首次被加载还是刷新...
  6. Ubuntu下跑通py-faster-rcnn、详解demo运作流程
  7. android 即时聊天工具 yq,Android 开发即时聊天工具 YQ :(四) 获取好友列表
  8. C#环境下利用VS2017使用MapXtreme7.0.0开发桌面应用实例
  9. cboard centos7安装步骤
  10. python读取xps文件_Python操做PDF-文本和图片提取(使用PyPDF2和PyMuPDF)
  11. YYC优雅草松鼠聚合直播系统·前端视频模块显示空白-解决办法-视频上传处理方法
  12. 浅谈网站建设方案主要内容
  13. 怎么调用计算机cad,CAD电脑版怎么使用教程
  14. vr直播是如何实现的?vr直播都有哪些优势
  15. python eel 多线程_Python的一个轻量级桌面GUI开发第三方库:Eel
  16. 用Photoshop制作2寸照片方法
  17. 我本沉默不显示服务器列表,独家发布辉煌沉默全新我本沉默2003服务端
  18. 映客首推 “直播春晚”:小年夜登场开启线上狂欢
  19. Java中类、抽象类、接口的联系与区别
  20. Neat算法讲解(遗传拓扑神经网络)

热门文章

  1. 计算机网络应用层题库
  2. 蓝天学校计算机教学反思,小学四年级上册《飞向蓝天的恐龙》教学反思
  3. 用一年时间如何能掌握 C++ ?
  4. PVE系统更换大硬盘的扩容方法
  5. 软路由做网站服务器怎么样,为啥我不用双软路由(三)低成本和高体验
  6. 网络安全基础问答24例,白帽黑客必备
  7. 腾讯微云 for Mac v
  8. 昨天与友人聊的二三观点
  9. 英语自然拼读:字母A的常见几种发音
  10. Pointnet网络结构与代码解读