输入以下命令
lspci |grep -i vga
返回的是一个十六进制数字代码,如图所示,我的是249d。如果返回的是显卡具体型号,可以直接看下载显卡驱动部分。
在The PCI ID Repository里根据十六进制数字代码找到对应的显卡型号。
可以看到显卡型号为GeForce RTX 3070。
① 之前没有安装过显卡驱动,输入命令
nvidia-smi
是下图这个样子的。
② 之前装过显卡驱动,输入命令nvidia-smi
,表格内红框即为显卡型号。
但是我的显卡名称太长,这个窗口显示不完整,目前不知道这种情况下怎么看完整的,欢迎大家告知。
在Download Drivers | NVIDIA 搜索显卡型号对应的显卡驱动。
因为我的ubuntu使用的是笔记本的显卡,因此我选择的是notebooks版。(后来我搜索了3070不带notebooks的版本,发现是同一个显卡驱动。)
下载下来是一个.run文件,我的是NVIDIA-Linux-x86_64-460.67.run,放在ubuntu16.04的Home文件夹下待用。
在开机时进入BIOS界面,设置secure boot为disable。
(因电脑而异,我的电脑是华硕,开机按F2,进入BIOS,再按F7,进入高级模式,选择security–secure boot–disable,按F10保存并退出。)
若没装过任何显卡驱动,可以跳过这一步。
① 旧版NVIDIA驱动程序是通过apt-get安装的,输入以下命令卸载旧版显卡驱动:
sudo apt-get remove --purge nvidia*
② 旧版NVIDIA驱动程序是通过.run文件(eg.NVIDIA-Linux-x86_64-384.59.run)安装的,输入以下命令卸载旧版显卡驱动:
sudo chmod +x *.run //获取.run文件的修改权限
sudo ./NVIDIA-Linux-x86_64-384.59.run --uninstall
打开终端,输入
sudo gedit /etc/modprobe.d/blacklist.conf
执行后打开的是一个文档,为了禁用nouveau第三方驱动,在文档最后加入blacklist nouveau
,之后也无需修改回来,如下图:
sudo update-initramfs -u
输入reboot
重启,让nouveau禁用生效。
重启后,输入以下命令验证nouveau禁用是否成功。
lsmod | grep nouveau
执行该命令后,没有任何信息返回说明禁用成功,如下图所示。
① 方法1:
Ctrl+Alt+F1即可进入命令行界面,之后输入ubuntu的用户名和密码登录。
② 方法2:
用telinit命令更改为运行级别3,进入命令行界面之后,输入ubuntu的用户名和密码登录。
sudo telinit 3
如下图所示。
sudo service lightdm stop
我的显卡驱动文件是NVIDIA-Linux-x86_64-460.67.run,执行以下命令给.run文件赋予执行权限。
sudo chmod a+x NVIDIA-Linux-x86_64-460.67.run
[sudo] 计算机名称 ◆ ◆ ◆ ◆ 处,输入ubuntu系统的密码。
执行以下命令:
sudo ./NVIDIA-Linux-x86_64-460.67.run –no-opengl-files –no-x-check –no-nouveau-check
其中,
–no-opengl-files 只安装驱动文件,不安装OpenGL文件(该参数必须写上,防止循环登录loop login);
–no-x-check 安装驱动时不检查X服务;
–no-nouveau-check 安装驱动时不检查nouveau。
如图所示:
白色为选中,红色为不选,回车为选择该选项。
① 选continue installation。
② 选 NO。
③ 看别人说32位问题的关键字是Install 32-Bit compatibility libraries? 选择 NO。我的直接出现下图情况,只有OK可以选。
④ 选YES。(图中未调到YES拍了照)
⑤ 安装完毕提示。
安装完毕后,自动跳转命令行界面,在屏幕最底部,输入以下命令即可打开ubuntu系统登录界面,如下图所示。
sudo service lightdm restart
打开终端,执行nvidia-smi
检验显卡驱动是否安装完成。
出现上图的表格,说明显卡驱动安装完成。