重大故障警告:
操作不慎可能会导致系统完全无法启动!
即使完全按照教程进行操作,也不一定会成功!
如果失败,你将无法进入图形界面,只能进入Linux控制台(纯文本命令行界面)*进行驱动修复工作!*
*在最坏的情况下,系统会完全没有图像显示,你只能启动到另一个系统进行修复工作,或者必须进行重装!
*
*如果你没有Linux命令行经验,但还是想进行尝试,请立即备份数据,并做好系统无法恢复、必须重装的准备!*
UOS 20 自带的Nvidia闭源驱动是450.51,Nvidia官网最新的Linux驱动是450.66。虽然UOS官方软件源(软件仓库)没有450.66驱动,但我们可以通过添加其他Linux发行版(这里是 Debian sid 不稳定版)的软件源来实现升级到450.66驱动。
升级有什么好处?~~在运行Wine应用的时候,黑窗口出现的频率减少了。此外,游戏性能方面可能也会有些许改善。但总体上差别不大,如果你担心系统损坏,强烈建议你不要升级!~~没有好处,自从官方源把驱动从440.59升级到450.51,两者都差别就不大了。强烈不建议这样安装,除非你想装CUDA。官方源带的是CUDA 9.2,sid源里面有CUDA 10。注意:这里只有显卡驱动安装教程,没有CUDA安装教程。以后可能会写个CUDA安装教程。
此外,你也可以使用buster-backports
源(sid软件包反向移植到debian10),比sid
源更可靠,因为UOS和deepin v20就是基于debian 10,所以陷入依赖地狱的风险更小,甚至可以长期启用。不过我之前试了一下,如果用这个教程安装显卡驱动,那么从buster-backports
源里安装的CUDA 10就不能正常工作,运行CUDA samples时报错说找不到GPU。
deb https://mirrors.aliyun.com/debian buster-backports main contrib non-free
使用buster-backports
源安装的方法见该贴:https://hu60.cn/q.php/bbs.topic.98302.html
sudo apt install -y nvidia-driver nvidia-smi nvidia-settings deepin-nvidia-prime nvidia-vulkan-icd 'vulkan-utils|vulkan-tools' nvidia-driver-libs:i386 libnvidia-ml1:i386 libxnvctrl0:i386 libvulkan1 libvulkan1:i386
此时会提示你输入密码,输入你的UOS开机密码即可。输入时不会显示任何内容,这是正常现象,输完回车即可。
如果提示找不到deepin-nvidia-prime
,换成以下两条命令:
wget https://file.winegame.net/packages/deepin/mgpu/mgpu-prime_0.2.0_amd64.deb
sudo apt install -y nvidia-driver nvidia-smi nvidia-settings nvidia-vulkan-icd 'vulkan-utils|vulkan-tools' nvidia-driver-libs:i386 libnvidia-ml1:i386 libxnvctrl0:i386 libvulkan1 libvulkan1:i386 ./mgpu-prime_0.2.0_amd64.deb
重大故障警告:
在完成教程的第4步之前,不要运行 apt upgrade 命令或其他任何命令对系统进行升级,否则系统肯定会出问题。如果在此期间,系统的自动更新功能检测到可升级内容,不要点击安装!
此外,给高手的提醒:不建议升级 nvidia-settings 这个软件包,因为它的依赖太多,升级后恐怕会陷入依赖包地狱,以后安装UOS官方源的软件会异常困难。不升级 *nvidia-settings 不会影响Nvidia控制面板的正常使用。*
# 添加包含Nvidia 450.66驱动的软件源
echo 'deb http://mirrors.aliyun.com/debian sid main contrib non-free' | sudo tee /etc/apt/sources.list.d/debian-sid.list
# 更新软件包列表
sudo apt update
# 运行完会提示你“有 1492 个软件包可以升级”,不要激动。这不是我们系统的升级包,不要升级,否则系统肯定会出问题!
# 安装新版驱动
sudo apt install nvidia-driver libnvcuvid1 libnvidia-encode1 nvidia-vdpau-driver vdpau-va-driver
# 需要输入y并回车来确认安装。
# 正常情况下应该提示“升级了 42 个软件包”,多十几个少十几个也是正常的。
# 如果看到升级几百个软件包的情况,说明教程已过时,你应该输入n拒绝安装,然后直接执行第4步的清理工作。
# 安装过程中会出现“失败:目录非空”等字样,这是正常现象,无需在意。
# 此外还会弹出“加载了不匹配的 NVIDIA 内核模块”提示框,按回车进行“确定”即可。
# 升级新版驱动的附加组件
sudo apt install nvidia-egl-common nvidia-installer-cleanup nvidia-kernel-common nvidia-legacy-check nvidia-modprobe nvidia-persistenced nvidia-support nvidia-vulkan-common libnvidia-ml1:i386
# 正常情况下应该提示“升级了 8 个软件包”,并且无需输入y进行确认。
# 要求你输入y,并且看到升级几百个软件包的情况,说明教程已过时,你应该输入n拒绝安装,然后直接执行第4步的清理工作。
# 更新启动文件(如果不执行该命令,驱动可能会不生效)
sudo update-initramfs -k all -u
继续在终端中粘贴命令:
# 删除刚加的软件源
sudo rm /etc/apt/sources.list.d/debian-sid.list
# 清理软件源缓存
sudo apt clean
# 清理多余的软件包
sudo apt autoclean
NVIDIA Driver Version: 450.66
如果无法进入图形界面,请进行下面提到的恢复操作。
注意左侧边栏Wine旁边的齿轮按钮正常不会显示,需要把鼠标放上去才会显示。
export LANGUAGE=en
# 确认你已经删除了新版驱动的软件源。
# 提示“rm: cannot remove '/etc/apt/sou*d/deb*sid.list': No such file or directory”是正常的,说明之前已经删了。
sudo rm /etc/apt/sou*d/deb*sid.list
# 更新软件包列表
sudo apt update
# 如果你连的Wifi,出现网络问题,你可能需要使用网线。
# 卸载新版驱动
sudo apt purge -y nvidia*
# 安装旧版驱动
sudo aptitude install -y nvidia-driver nvidia-smi nvidia-settings deepin-nvidia-prime
注意:最后一步使用了aptitude
命令,因为要对一些软件包进行降级,使用apt
命令无法完成。不要输错。
命令完成后重启。