CentOS 与 Ubuntu 下安装 NVIDIA 驱动
2017-02-20 更新:旧文搬运,略加修缮,觉得还实用,所以保留下来。
2013-08-29 更新:Ubuntu 下安装方法,详见最下。
NVIDIA 驱动安装的重点在于关闭系统本身默认运行的 nouveau 模块。
首先上参考文章吧。文章一还有文章二。两篇文章的方法略有不同,我综合了一下。
去 Nvidia 官网下载对应的显卡驱动,我下载的驱动文件名为:NVIDIA-Linux-x86_64-310.32.run。
这部分操作大量使用 root 权限,所以最好还是使用 root 身份来进行。
第一步需要关闭 X Windows,运行:init 3
。
如果现在运行驱动安装程序 sh NVIDIA-Linux-x86_64-310.32.run
,有可能会提示你:
ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding.
意思就是 nouveau 这个模块正在运行中,该模块与NVIDIA驱动不兼容,必须要被禁用才可以进行。为了禁用这个模块,大费周折,找了不少资料文章,总算试验出有效的方法。
过程中也看见一些传说,说是某些 Linux 发行版本禁用该模块也不算麻烦,但是 CentOS 似乎并不在那个阵营里。
更新:添加 blacklist 或许没有什么影响,可以选择跳过这部分,直接到修改 /etc/grub.conf
文件部分。
编辑 /etc/modprobe.d/blacklist.conf
,在某处(但是不要选在注释里)加上 blacklist nouveau
。
然后下面一步我估计可以选做:
1 | * 备份 the initramfs file |
如果你运行了上面的两句命令,那请记好你曾经备份过 initramfs 这个文件。如果以后出错,可以还原试试。
在 CentOS 里似乎必须还需要下面这一步。因为我单独试了上面两步后并没有效果。
编辑 /etc/grub.conf
文件,禁止 nouveau KMS 的使用。
在这个文件里找到现在所在的系统项目,应该形如:
1 | title CentOS (2.6.32-279.el6.x86_64) |
在 kernel 行的最后加上 nouveau.modeset=0
。加上后的文件应该如下:
1 | title CentOS (2.6.32-279.el6.x86_64) |
保存退出后重新启动,再进入文本模式。使用下面的命令来查看一下 nouveau 是否有被加载:
1 | lsmod | grep nouveau |
如果结果为空,那应该是成功了,可以接下去进行驱动的安装。驱动的安装倒是很简单,我就不打算写一遍了。详细的可以参考这一篇文章。
更新 Ubuntu 下安装方法:
在 Ubuntu 下安装驱动的方法步骤还是与在 CentOS 中差不多。
在引导中加入 nouveau.modeset=0
禁用 nouveau(加不加blacklist关系不大),然后在 CLI 环境下安装驱动。
Ubuntu 的引导文件位置与 CentOS 并不一样,具体在哪里我也忘了,请自行搜索解决吧。
禁用 nouveau 后,需要进入 CLI 环境,但是使用 init 3
命令并不能关闭 X Window,会导致安装无法继续进行。
解决办法是使用 Ctrl+Alt+F1 切换到文字界面下,然后将 dm 服务停止就可以关闭 X Window。Ubuntu 的默认 dm 是 lightdm,其他还有 kdm、gdm 等,请根据自己的情况来选择。
运行命令 sudo service lightdm stop
来停止X Window。接下来就可以按流程安装驱动了。