[Share Experiences] Deepin V23安装最新英伟达驱动(版本535.54)
Tofloor
poster avatar
川顺页
deepin
2023-06-17 22:21
Author

折腾背景

  • 自带的闭源驱动有时候动画有撕裂感
  • 加上安装pytorch的时候,提示找不到英伟达驱动,感觉可能deepin内置的驱动可能阉割了开发功能,所以决定安装英伟达官方提供的驱动。

教程

  1. 去官方论坛发布页面,最上面的置顶帖,帖子内容如下:
Current releases
Current production branch release: 535.54.03 (x86_64 13)
Current new feature branch release: 530.41.03 (x86_64 157)
Current beta release: 535.43.02 (x86_64 36)
  • 可以看到目前最新版是535.43.02,不过这个是beta版,也就是测试版,不是正式版,所以你去官网驱动下载页面是搜不到的,要去论坛。
  1. 点进去535的链接,进入详细页面
Release highlights since 535.43.02:

Fixed a bug that caused modesets to fail in some Wayland configurations.

Fixed a bug that caused head-mounted displays (HMDs) to display black after a modeset.

Fixed a bug that prevented SLI Mosaic controls from being displayed in the nvidia-settings control panel when using GSP Firmware.

Fixed a bug that could cause image corruption when unbinding Vulkan
sparse textures.

[README 34 | Linux x86_64 27 | Solaris 3 | FreeBSD x86_64 1 | Kernel driver source 7]
  • 点击Linux x86_64这个下载就行了。
  1. 更新前先把已经安装好的闭源驱动给卸载了。
sudo apt purge nvidia-driver nvidia-kernel-dkms nvidia-*
sudo apt autoremove
  1. 观察一下英伟达的驱动,目前还是在运行中。
lsmod | grep nvidia

# 输出
nvidia_drm             65536  4
drm_kms_helper        204800  1 nvidia_drm
nvidia_modeset       1245184  3 nvidia_drm
nvidia              56487936  92 nvidia_modeset
drm                   647168  8 drm_kms_helper,nvidia,nvidia_drm
video                  61440  2 asus_wmi,nvidia_modeset
  • 所以重启一下,才能完成生效。
sudo reboot now
  1. 观察开源驱动是否起来了,因为你卸载闭源驱动后,linux内核会自动启动开源驱动来代替,如果没输出就是没用开源驱动,否则说明开源驱动已经安装起来了
$ lsmod | grep nouveau   
nouveau              2121728  0
  • 但是我待会还要装闭源驱动,不需要这个开源驱动(开源驱动性能也不咋地)
  • 所以我需要屏蔽这个开源驱动,输入下面的命令完成这个事情。
sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf > /dev/null <
  • 更新一下内核信息,让内核下次启动的时候自动屏蔽开源英伟达驱动。
sudo update-initramfs -u
  • 再次重启一下(可能重启会比较慢,因为他读不到驱动了,最慢可能需要2-3分钟才能关机)。
sudo reboot now
  • 最后再验证一下开源英伟达驱动是否正确屏蔽了(没输出任何信息就说明成功屏蔽)
lsmod | grep nouveau
  1. 安装英伟达论坛下载的最新驱动(需要提前安装好gcc/g++, dkms环境)。
  • 安装环境
sudo apt install gcc g++ dkms
  • 初步安装
chmod +x NVIDIA-Linux-x86_64-535.54.03.run
sudo ./NVIDIA-Linux-x86_64-535.54.03.run
  • 此时提示报错:
ERROR: You appear to be running an X server; please exit X before installing.  For further details, please  
         see the section INSTALLING THE NVIDIA DRIVER in the README available on the Linux driver download    
         page at www.nvidia.com.
  • 报错原因大概是已经运行了一个xorg环境了,没办法安装驱动。
  • 解决办法1
  • 按下Ctrl + Alt + F3(F2/F3/F4/F5都可以)进入tty(一个终端环境),然后输入你的账号名/密码进行登陆。
  • 然后运行下面的命令关闭桌面相关服务(可以用tab案填充输入,防止输错了)。
sudo systemctl stop lightdm.service
  • 再进入对应目录安装英伟达驱动,一路回车即可。
sudo ./NVIDIA-Linux-x86_64-535.54.03.run
  • 解决办法2(推荐)
  • 查看帮助选项,可以看出有一个高级设置-A
sudo ./NVIDIA-Linux-x86_64-535.54.03.run --help

# 输出
.....
 -A, --advanced-options
      Print usage information for the common commandline options as well as the advanced options, and then exit.
  • 查看高级设置,可以看到这选项可以跳过x server检查
sudo ./NVIDIA-Linux-x86_64-535.54.03.run -A

# 输出
......
  --no-x-check
      Do not abort the installation if nvidia-installer detects that an X server is running.  Only under very rare circumstances should this option be used.
......
  • 所以,利用--no-x-check来安装驱动,一路回车即可。
sudo ./NVIDIA-Linux-x86_64-535.54.03.run --no-x-check
  1. 验证驱动是否ok
  • 用自带的nvidia-smi查看英伟达驱动信息。
nvidia-smi

# 输出结果如下:
Sat Jun 17 13:55:14 2023       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.54.03              Driver Version: 535.54.03    CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 40xx        Off | 00000000:01:00.0  On |                  N/A |
|  0%   34C    P5              22W / xxx W |    793MiB / xxxx MiB |     25%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      3524      G   /usr/lib/xorg/Xorg                          351MiB |
|    0   N/A  N/A      5677      G   /usr/bin/deepin-kwin_x11                     97MiB |
|    0   N/A  N/A      5830      G   /opt/freedownloadmanager/fdm                 37MiB |
|    0   N/A  N/A      6227      G   /proc/self/exe                              148MiB |
|    0   N/A  N/A      6916      G   /usr/bin/deepin-deepinid-client               7MiB |
|    0   N/A  N/A      7075      G   dmanHelper                                    7MiB |
|    0   N/A  N/A      7288      G   ...ures=SpareRendererForSitePerProcess      108MiB |
+---------------------------------------------------------------------------------------+
  • 观察pytorch是否正确识别英伟达驱动(我已经安装cuda 11.8,以及pytorch_cu118),这个是可选项。
python3 -c "import torch; print('GPU is OK?', torch.cuda.is_available())"
  • 输出结果为:GPU is OK? True,说明没有问题。

收尾工作(强迫症专属)

安装驱动过程中出现dkms警告。
  • 查看dkms驱动加载状态,可以看到中间的英伟达的dkms是built而不是installed,这个表示已经构建了但是没有安装
dkms status

# 输出结果
deepin-anything/0.0, 6.1.11-amd64-desktop-hwe, x86_64: installed 
nvidia/535.54.03, 6.1.11-amd64-desktop-hwe, x86_64: built 
r8125/9.011.01, 6.1.11-amd64-desktop-hwe, x86_64:installed
  • 观察驱动安装日志
cat /var/log/nvidia-installer.log
  • 截取的一部分输出,大概意思是内核里面已经有构建好了,不需要装dkms了
ERROR: Failed to run `/usr/sbin/dkms install --no-depmod -m nvidia -v 535.54.03 -k 6.1.11-amd64-desktop-hwe`: 
nvidia.ko:
Running module version sanity check.
Module version 535.54.03 for nvidia.ko
exactly matches what is already found in kernel 6.1.11-amd64-desktop-hwe.
DKMS will not replace this module.
You may override by specifying --force.
  • 不过我比较强迫症,决定还是强制安装一下,按他的说法就是加一个--force就行了。
sudo /usr/sbin/dkms install --no-depmod -m nvidia -v 535.54.03 -k 6.1.11-amd64-desktop-hwe --force
  • 最后再看一下dkms状态,ok,完美。
dkms status                                                               
# 输出结果              
deepin-anything/0.0, 6.1.11-amd64-desktop-hwe, x86_64: installed
nvidia/535.54.03, 6.1.11-amd64-desktop-hwe, x86_64: installed (original_module exists)
r8125/9.011.01, 6.1.11-amd64-desktop-hwe, x86_64: installed
Reply Favorite View the author
All Replies
1 / 2
To page
阿尼樱奈奈
Moderator
2023-06-17 22:32
#1

like

Reply View the author
nero28
deepin
2023-06-17 22:49
#2

看著很爽,很方便操作的樣子

Reply View the author
青稚
deepin
2023-06-17 22:57
#3

可以直接sudo service lightdm stop

安装好驱动后,不需要重启,只需要sudo service lightdm start

如果可以用包管理安装nvidia显卡驱动,我还是喜欢包管理装。

Reply View the author
川顺页
deepin
2023-06-17 23:18
#4
青稚

可以直接sudo service lightdm stop

安装好驱动后,不需要重启,只需要sudo service lightdm start

如果可以用包管理安装nvidia显卡驱动,我还是喜欢包管理装。

确实,包管理升级方便。
😄 我也喜欢apt直接装,如果没有bug的话。

Reply View the author
好聚好散
deepin
2023-06-17 23:36
#5
青稚

可以直接sudo service lightdm stop

安装好驱动后,不需要重启,只需要sudo service lightdm start

如果可以用包管理安装nvidia显卡驱动,我还是喜欢包管理装。

同意,通过包管理,来管理包,包管理的好,好管理包

Reply View the author
好聚好散
deepin
2023-06-17 23:48
#6

很赞的教程,讲的很详细,收藏备用了

Reply View the author
方老四
deepin
2023-06-18 00:54
#7

linux系统选择英伟达显卡就是错误的搭配,因为官方就没有提供开源驱动,后面够你折腾的。

Reply View the author
川顺页
deepin
2023-06-18 01:58
#8
方老四

linux系统选择英伟达显卡就是错误的搭配,因为官方就没有提供开源驱动,后面够你折腾的。

confused 不用N卡?那AI炼丹都和你无缘了。

Reply View the author
jiutian123
deepin
2023-06-19 04:21
#9
川顺页

confused 不用N卡?那AI炼丹都和你无缘了。

怎么炼丹?国内的文字生成图片 炼出来的看着怪怪的的

Reply View the author
gshun
deepin
2023-06-21 06:15
#10
It has been deleted!
想用deepin玩游戏
deepin
2023-06-28 03:58
#11

这条 sudo ./NVIDIA-Linux-x86_64-535.54.03.run --no-x-check输出:找不到命令,拖动安装包进去就看路径,我是这样解决的:sudo '/data/home/Game/NVIDIA-Linux-x86_64-535.54.03.run/NVIDIA-Linux-x86_64-535.54.03.run' --no-x-check

Game是账户名

Reply View the author
川顺页
deepin
2023-06-28 17:31
#12
想用deepin玩游戏

这条 sudo ./NVIDIA-Linux-x86_64-535.54.03.run --no-x-check输出:找不到命令,拖动安装包进去就看路径,我是这样解决的:sudo '/data/home/Game/NVIDIA-Linux-x86_64-535.54.03.run/NVIDIA-Linux-x86_64-535.54.03.run' --no-x-check

Game是账户名

😂 我是相对路径,你用绝对路径。没啥太大区别。

Reply View the author
把一切操作变成GUI
deepin
Backbone of ecological co-construction group
2023-06-30 22:16
#13

我卸载完英伟达驱动 然后重启,现在连系统都登不进去了。。。。。

Reply View the author
川顺页
deepin
2023-06-30 23:52
#14
把一切操作变成GUI

我卸载完英伟达驱动 然后重启,现在连系统都登不进去了。。。。。

doubt

Reply View the author
把一切操作变成GUI
deepin
Backbone of ecological co-construction group
2023-07-01 23:38
#15
青稚

可以直接sudo service lightdm stop

安装好驱动后,不需要重启,只需要sudo service lightdm start

如果可以用包管理安装nvidia显卡驱动,我还是喜欢包管理装。

还有包管理的安装方法吗?

Reply View the author
把一切操作变成GUI
deepin
Backbone of ecological co-construction group
2023-07-01 23:44
#16
川顺页

doubt

你怎么没说慎用

sudo apt autoremove

sob

Reply View the author
把一切操作变成GUI
deepin
Backbone of ecological co-construction group
2023-07-01 23:50
#17
方老四

linux系统选择英伟达显卡就是错误的搭配,因为官方就没有提供开源驱动,后面够你折腾的。

官方闭源的驱动为什么不好?

Reply View the author
青稚
deepin
2023-07-02 00:33
#18
把一切操作变成GUI

还有包管理的安装方法吗?

deepin不推荐包管理,源里面的n卡驱动旧。

不适配新内核。

Reply View the author
186******30
deepin
2023-09-06 18:10
#19

搞定了~~~温度终于下去了 改grub,装boostchanger,改性能模式啥的都没用,还是这个给力 tail

Reply View the author
fozei
deepin
2024-04-24 11:27
#20

我按照博主说明,成功安装了闭源驱动(中间过程略有不同),向神帖致敬!

很想开个帖子,说明一下我的情况,意兴阑珊tail

Reply View the author
1 / 2
To page