-
卸载Nvidia残余文件
如果系统是新装的,还没有安装过任何nvidia的东西,可以跳过这一步直接到后面。如果电脑已经安装过nvidia的驱动了,推荐清理一下已经存在的nvidia文件
apt remove *cuda*
apt remove *nvidia*
/usr/bin/nvidia-uninstall
dpkg -l | grep ^rc | cut -d' ' -f3 | xargs dpkg --purge
还可以用locate命令定位一下nvidia文件,比如用命令locate nvidia
(先用命令updatedb
更新一下数据库)。不过可能找到各种地方的路径,推荐可以手动删除/usr
下面的文件,其他地方我也不敢乱删呀。这一步我觉得可以不做,把上面的做好了应该就ok了。
-
禁用Nouveau的驱动
在/etc/modprobe.d/blacklist.conf
最后添加如下代码:
(用来禁用nouveau第三方驱动,之后也不需要改回来)
blacklist nouveau
options nouveau modeset=0
然后执行
update-initramfs -u
重启后,执行以下代码,若没有显示则禁用成功
lsmod | grep nouveau
如果遇到这个问题 (perl: warning: Falling back to a fallback locale (“en_US.UTF-8”))[]
apt install locales-all
-
检测NVIDIA显卡型号:如果已知自己显卡型号,可以跳过
命令行有三种方法
apt install ubuntu-drivers-common
ubuntu-drivers devices
lshw -numeric -C display //最好用sudo
lspci -vnn | grep VGA
也可以用软件AIDA64,这个软件可以看电脑的所有配置信息。
然后下载官方驱动(我比较喜欢最新的版本)。推荐下载英文版的驱动,防止中文乱码。例如
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/410.93/NVIDIA-Linux-x86_64-410.93.run
-
关闭secure boot:
到电脑的BIOS里关闭“安全启动”的选项。如果不关的话,在后面安装驱动的时候会问你要不要注册key巴拉巴拉之类的,反正我看不懂也没有成功过。
-
关闭图形界面:
如果系统已经有图形界面(比如ubuntu desctop),最好关闭一下图形界面。关闭之前要先切换到命令行界面,使用快捷键Ctrl
+Alt
+F1
(F1
不行的话,就换成F2
、F3
…)。然后sudo权限运行命令
service gdm3 stop
service lightdm stop
PS:也可以先不运行这个命令,等后面安装驱动的时候报错了(如下图),再执行上面那个命令。
-
安装驱动
启动驱动安装程序(.run)的方法有两种,我更喜欢第二种
chmod +x NVIDIA-Linux-x86_64-410.93.run
./NVIDIA-Linux-x86_64-410.93.run
bash NVIDIA-Linux-x86_64-410.93.run
启动安装程序,可以加参数(安装驱动前可能需要先安装gcc和make)。不过我一般都不加任何参数,如果想要加的话,可以加一个--no-x-check
我在各种教程里面参数有:
--no-opengl-files
:表示只安装驱动文件,不安装OpenGL文件。这个参数不可省略,否则会- 导致登陆界面死循环,英语一般称为”login loop”或者”stuck in login”。然而我并没有用
--no-x-check
:表示安装驱动时不检查X服务。如果没有这个参数,可能会出现“X-Server needs to be disabled before installing the drivers”的错误。然而我也没有用
--no-nouveau-check
:表示安装驱动时不检查nouveau,非必需。
-Z, --disable-nouveau
:禁用nouveau。此参数非必需,因为之前已经手动禁用了nouveau。
-A
:查看更多高级选项。
安装过程中遇到的选择如下:
也有教程说最后一张图片的问题应该选no。还是选no吧。暂时找不到新的图片来更新了
上面第3张图正常情况下都是可以选择“是否安装32位库”,我一般都选yes,感觉人畜无害:)
-
禁用内核更新:
我理解的安装显卡驱动的过程,会将你安装的显卡驱动跟当前使用的内核进行绑定。如果后续更新内核并重启系统,之前安装的显卡驱动就会识别不到导致无法进入图形界面,需要通过到命令行界面or以save mode启动系统,然后重装显卡驱动
所以为了省事,我都直接禁止更新内核:
apt-mark hold linux-image-generic linux-headers-generic
-
若遇到关于kernal的Error,应该是驱动版本和系统内核版本不匹配(图后面有机会补上吧)。
方法一:下载更新版本(or更旧,一般都是更新吧)的驱动。推荐这个,因为我都成功了。
方法二:更改内核的版本。具体应该切换到什么版本的内核,可以参考其他已经成功安装了显卡驱动的电脑的内核版本。查看当前使用的内核 uname -r
,查看grub版本 grub-install -V
,切换内核可以参考这个博客
-
如果系统原本就有图形界面,并且执行了第3步,并且安装完驱动重启后图形界面不能自动打开,可以自己打开图形界面
service gdm3 start
service lightdm start
或者设置默认进入的是命令行界面而不是图形界面
systemctl get-default
systemctl set-default graphical.target
如果报错Failed to stop lightdm.service: Unit lightdm.service not loaded
,可能 需要重装一下lightdm
apt install lightdm