在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
下面开始正式安装步骤:
禁用nouveau驱动
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命令》
具体过程见下图:
=====================================================================
安装驱动之前另一个重要的事情就是确认系统里面没有旧版本的驱动,以免发生冲突,因此需要卸载旧版本的驱动。
命令:
sudo apt-get autoremove --purge nvidia*
===========================================================================
PPA方式安装显卡驱动:
在Linux系统里面安装显卡驱动使用PPA的方式成功率一般比较高,但是安装的版本有限,这里不采用该方法,但是仍给出该方法的具体步骤:
使用如下命令添加Graphic Drivers PPA:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
寻找合适的驱动版本
命令:
ubuntu-drivers devices
安装NVIDIA driver
如上图显示GTX1050ti显卡建议的驱动版本是390
按ctrl+alt+F1进入tty文本模式
关闭(图形)桌面显示管理器LightDM
命令:
sudo service lightdm stop
sudo apt-get install nvidia-390
sudo reboot
安装nvidia driver,如果网速度不好,可能要花比较长的时间
安装完成后重启。
重启系统后,执行下面的命令查看驱动的安装状态显示安装成功
sudo nvidia-smi
sudo nvidia-setting
=====================================================================
下面给出本文的安装方法,根据官网下载的驱动文件安装:
安装NVIDIA driver
进入文本模式:
按ctrl+alt+F1进入tty文本模式
关闭(图形)桌面显示管理器LightDM 。
命令:
sudo service lightdm stop
执行安装文件:
设置驱动文件为可执行,命令:
sudo chmod a+x ./NVIDIA-Linux-x86_64-415.27.run
执行安装:
sudo ./NVIDIA-Linux-x86_64-415.27.run
安装结束,重启:
sudo reboot
重新开机进入系统,执行如下:
nvidia-smi
nvidia-settings
可以发现成功安装。
====================================================================
物理机安装上最新驱动后,在conda中安装tensorflow-gpu最新版本1.20便可以成果,因为conda中编译好的tensorflow-gpu版本需要NVIDIA驱动在396之上。
注明:
本机安装之前已经设置进入系统免密码,该步骤是否有用没有研究过,如果有人想复现该过程强烈建议将Ubuntu系统设置为免密码进入桌面。