在Linux下,我们常有需要自己来编译安装驱动模块的情况,例如要安装显卡驱动,要安装无线驱动,有的时候某个程序的安装使用与需要安装相应的驱动模块。Debian Linux下的生活本已十分简单,使用apt可以处理一切。单就我们所讨论的驱动安装,一般情况下,源中也会有已编译的相应驱动可用。但是一般来说,驱动模块与所用的内核版本有着较强的依赖关系,如果源中并没有与我们所用的内核版本相匹配的驱动时,就需要我们自己手动来编译安装驱动模块了。在这样的情况,Debian下的驱动模块编译安装工具m-a就有了用武之地了。下面我们简要介绍一下如何使用m-a来手动编译安装驱动模块。

1 安装m-a

# apt-get install module-assistant

2 安装必须的软件

# apt-get install build-essential

这是编译内核和模块所必须的软件包。当然,如果我们不这样显式的安装,我们也可以使用下面的命令来安装:

# m-a prepare

正如其名字所显示的,这会为编译安装驱动模块安装必须的各种软件包,从而可以安装build-essential。

3 安装内核源码与相应的头文件

要编译安装驱动模块,我们首先要安装相应的内核源码与相应的内核头文件。当然,如果我们是自己编译安装的内核,在/usr/src目录下有编译安装内核时所用的源码,那么就可以跳过这一步了。如果不是这样,那么我们就要先安装相应的源码与头文件。

我们可以用下面的命令来确定我们所用的内核版本信息,我们将要安装的内核源码与头文件要与我们正使用的内核版本相匹配:

# uname -a

安装内核源码:

# apt-get install linux-source-`uname -r`

安装相应的头文件:

# apt-get install linux-headers-`uname -r`

4 编译安装驱动模块:

这样以后,我们就可以进入/usr/src目录下来编译安装我们所需要的驱动模块了。在安装之后,我们可以用下面的命令来驱动更新:

# m-a update

如果我们要为显卡安装fglrx驱动模块,我们就可以用下面的命令来自动安装:

# m-a a-i fglrx

这个命令可以完成相应驱动模块的自动编译安装过程。事实上,这个命令是由相应的get,build,install三个命令组成的。如果我们要详细的看到编译安装的过程,我们可以分别调用这三个命令来完成安装的过程:

获取驱动源码:

# m-a get fglrx

这会下载所指定的驱动源码,并且解压到/usr/src/modules目录下。

编译驱动模块:

# m-a build fglrx

经过编译以后就会在/usr/src/目录下生成相应的deb安装包。我们可以用m-a来安装:

# m-a install fglrx

当然,对于这样的deb包,我们也可以使用dpkg来安装:

# dpkg -i fglrx-xxx.deb

5 载入驱动模块

在安装驱动模块以后,我们可以载入驱动模块,可以来确定我们的驱动模块是否成功安装:

# modprobe fglrx

如果成功载入,则说明我们的驱动模块安装成功。否则,就要进行错误检查了。如果安装成功,我们就要编辑系统驱动配置文件,从而可以使得系统在启动的时候可以自动装入驱动模块:

# vim /etc/modules

写入系统启动时要载入的驱动模块即可。

That's all~~Enjoy it~~

Debian下编译安装驱动模块的更多相关文章

  1. debian下编译安装poco

    系统环境: debian版本:Linux localhost.localdomain 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC ...

  2. debian下编译安装redis并加入到systemd启动管理

    原文地址: http://blog.duhbb.com/2022/02/09/compile-and-install-redis-debian-and-add-to-systemd/ 欢迎访问我的个人 ...

  3. ubuntu下编译安装poco

    系统环境: ubuntu版本:Linux jfcai-VirtualBox 4.15.0-29-generic #31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018 ...

  4. linux下编译安装vim7.4并安装clang_complete插件

    linux下编译安装vim7.4并安装clang_complete插件 因为debian里软件仓库中下载安装的vim是不支持python写的插件的(可以打开vim,在命令模式先输入:py测试一下),导 ...

  5. ubuntu14.04下编译安装ambari-2.4.2.0

    ubuntu14.04下编译安装ambari-2.4.2.0 编译前的准备工作 准备工作有: 系统参数 系统依赖(编译环境) 离线安装包 java环境 maven环境 Nodejs环境 git环境 a ...

  6. linux安装软件的几种方法----linux下编译安装软件的一般步骤

    linux安装软件的几种方法: 一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd so ...

  7. 不要着急改代码,先想想--centos 6.8下编译安装tmux

    诸位读者新年好,2017开年第一篇博客,请允许我先问候一下看到这篇博客的诸位.写博客是我2017年定下的目标之一,希望我会坚持下去. 最近打算尝试一下tmux这个神器,于是有了这一篇关于思维方式的Bl ...

  8. centos下编译安装lnmp

    centos下编译安装lnmp 本文以centos为背景在其中编译安装nginx搭建lnmp环境. 编译安装nginx时,需要事先安装 开发包组"Development Tools" ...

  9. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

随机推荐

  1. PHP数组foreach循环如何实现逆序访问?

    PHP数组foreach循环如何实现逆序访问? 一.总结 1.array_reverse($array) :foreach(array_reverse($array) as $key=>$val ...

  2. QT学习记录之环境搭建

    作者:朱金灿 来源:http://blog.csdn.net/clever101 1. 安装qt-win-opensource-4.8.5-vs2008.exe(对应的IDE是VS2008),安装路径 ...

  3. HTML中DOM对象的属性和方法的层级关系是怎样的?(目录即层次)

    HTML中DOM对象的属性和方法的层级关系是怎样的?(目录即层次) 一.总结 一句话总结:目录就是测试题 1.document取得元素(get element)的方式有哪几种? 解答:四种,分别是id ...

  4. Oracle数据库零散知识03

    21,存储过程,简化复杂操作,增加数据独立性,提高安全性,提高性能 与函数创建对比: create or replace function fun_01(v_01 in number) return ...

  5. OpenVZ安装指南,一种操作系统级别的虚拟化技术

    鼎鼎大名的 OpenVZ 谁不知道?在主机行业被使用(滥用)很多年,依然在茁壮发展.作为一种操作系统级别的虚拟化技术,运行 OpenVZ 没有硬性的硬件要求.OpenVZ 能够创建被称为容器(cont ...

  6. CUDA多个流的使用

    CUDA中使用多个流并行执行数据复制和核函数运算可以进一步提高计算性能.以下程序使用2个流执行运算: #include "cuda_runtime.h" #include < ...

  7. Maven软件项目管理工具

    http://my.oschina.net/jgy/blog/125503 拷贝mavne安装文件夹conf以下的settings.xml到用户主文件夹下 改动改文件 <localReposit ...

  8. Opencv 张正友相机标定傻瓜教程

    注: 程序所用的OpenCV版本是 2.4.10 ,3.0以上的版本可能会有不同 先贴一下完整的工程代码: #include "opencv2/core/core.hpp" #in ...

  9. SqlBulkCopy快速插入datatable到数据库中参考代码,以及要注意的问题

    参考代码如下: public class Examination { #region 批量插入一个sheet的专业对应的学科 /// <summary> /// 批量插入一个sheet的专 ...

  10. "Redis客户端连接数一直降不下来"的有关问题解决 good

    [线上问题] "Redis客户端连接数一直降不下来"的问题解决 前段时间,上线了新的 Redis缓存(Cache)服务,准备替换掉 Memcached. 为什么要将 Memcach ...