在Linux上安装驱动,这事情多半是跑CUDA程序的人才会搞的,多年前学CUDA时为这一步骤头疼的很,现如今已经比较熟悉了,今日给出一些记录。
首先,在NVIDIA官方网站上找到驱动下载页面:
https://www.nvidia.cn/Download/Find.aspx?lang=cn
查询到可以使用的驱动版本,如下:
BETA版过新,稳定性尚未可知,选择非beta版本的最新版驱动,即 415.27版本。
下载链接页面:
https://www.nvidia.cn/download/driverResults.aspx/141852/cn
前面忘记交代硬件情况,本机为:
(惠普(HP)暗影精灵II代Pro 精灵绿 15.6英寸游戏笔记本(i7-7700HQ 8G 128GSSD+1T GTX1050Ti 4G独显 IPS FHD)
CPU Core i7-7700HQ(含集成显卡)
独立显卡 NVIDIA GTX1050ti
下面开始正式安装步骤:
Ubuntu系统集成的显卡驱动程序是nouveau,我们需要先将nouveau从Linux内核卸载掉才能安装NVIDIA官方驱动。
将nouveau添加到黑名单blacklist.conf中,(关于blacklist参见 《禁用Linux内核驱动》),linux启动时,就不会加载nouveau.
因为nouveau驱动的影响,ubuntu安装后无法登入桌面,所以在ubuntu系统启动显示登录界面后,需要按ctrl+alt+F1进入tty文本模式进入下面的操作
由于blacklist.conf文件的属性不允许修改。所以需要先修改文件属性。
查看属性
ll /etc/modprobe.d/blacklist.conf
修改属性
sudo chmod 666 /etc/modprobe.d/blacklist.conf
用vi编辑器打开
sudo vi /etc/modprobe.d/blacklist.conf
在文件末尾添加如下几行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
修改并保存文件后,记得把文件属性复原:
sudo chmod 644 /etc/modprobe.d/blacklist.conf
再更新一下内核:
sudo update-initramfs -u
关于update-initramfs命令的用途,参见 《initramfs 简介,一个新的 initial RAM disks 模型》
修改后需要重启系统。
重启系统确认nouveau是已经被屏蔽掉,使用lsmod命令查看:
lsmod | grep nouveau
lsmod命令用于显示已经加载到内核中的模块的状态信息,参见《lsmod命令》
具体过程见下图: