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