在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~~

最新文章

  1. css3、html5学习笔记
  2. Eclipse配置tomcat后,启动tomcat,访问tomcat报404错误
  3. Asp.Net MVC中使用ACE模板之Jqgrid
  4. Spring Security3学习实例
  5. Python命令 (if __name__=="__main__":)
  6. python get方法
  7. [原创]java WEB学习笔记80:Hibernate学习之路--- hibernate配置文件:JDBC 连接属性,C3P0 数据库连接池属性等
  8. linux crontab 实现每秒执行(转)
  9. cmd修改系统时间
  10. Tab 防刷新
  11. asp.net请求流程
  12. 为什么memset不能将数组元素初始化为1?
  13. syslinux 3.84 2009-12-18 ebios copyright (c) 1994-2009 H. Peter Anvin et al
  14. 解决hexo神烦的DTraceProviderBindings MODULE_NOT_FOUND
  15. Dynamics 365设置错误通知首选项的方法
  16. 安装lnmp1.5,搬迁Laravel项目到服务器笔记
  17. angularjs-select2的使用
  18. okvis代码解读11
  19. 【uoj126】 NOI2013—快餐店
  20. [设计模式]适配器模式Adapter

热门文章

  1. xp2p系统的10点技术创新和经验总结
  2. SPOJ4491. Primes in GCD Table(gcd(a,b)=d素数,(1<=a<=n,1<=b<=m))加强版
  3. 【codeforces 752F】Santa Clauses and a Soccer Championship
  4. 深入理解AngularJs-scope(二)
  5. XMPP之ios即时通讯客户端开发-创建工程添加XMPPFramework及其他框架(三)
  6. hadoop 3.x 集群/单个节点的启动与停止
  7. C# 控制台使用 UAC 权限
  8. Qt自定义密码框,先显示后隐藏(继承以后改写slot即可,即与哪个相近就改写哪个)good
  9. 聊聊PROFINET与PROFIBUS
  10. IE8支持function.bind()方法