谈谈N卡驱动的安装
Tofloor
poster avatar
deepinuser17
deepin
2020-09-28 08:18
Author
本帖最后由 deepinuser17 于 2020-10-10 11:35 编辑

论坛里有不少用户遇到了N卡驱动安装的问题。 因为没有安装合适的N卡驱动版本而遇到黑屏,卡顿,锁死等问题。

N卡驱动安装是每个Linux发行版都面临的问题。 所以在安装,使用深度20时遇到同样的问题不奇怪。

用户遇到与N卡相关的问题,很多是因为缺少信息,不熟悉N驱动安装的注意事项而导致的。


N卡驱动分开源和闭源两类

开源N卡驱动的名称是nouveau. 官方网址是: https://nouveau.freedesktop.org/wiki/.

在安装Deepin时,如果不选N卡闭源驱动,初始安装的就是nouveau。 开源的nouveau已经可以比较好的支持很多N卡,但对最近几年上市的N卡支持比较差甚至不支持。
如果使用开源的N卡驱动,机器可以稳定工作,而且对图形性能要求不是很高,选择使用开源的N卡驱动是最佳方案。
  1. $ lsmod | grep nouveau
  2. nouveau                    1953792  12
  3. mxm_wmi                 16384  1 nouveau
  4. wmi                            32768  2 mxm_wmi,nouveau
  5. i2c_algo_bit               16384  2 nvidiafb,nouveau
  6. ttm                              106496  1 nouveau
  7. drm_kms_helper      184320  1 nouveau
  8. drm                             524288  9 drm_kms_helper,ttm,nouveau
  9. video                           49152  2 apple_gmux,nouveau
Copy the Code

闭源N卡驱动

闭源N卡驱动是由厂家NVIDIA提供的。 闭源N卡驱动有多个版本。 每个版本支持的N卡不同。 所以用户需要根据自己机器上的N卡型号,来选择合适的版本。 不然即使闭源N卡驱动安装了,也无法正常使用,甚至出现黑屏。

Deepin20发行版包括了三个版本的闭源N卡驱动, 440.100, 390.138, 340.107.  在安装Deepin20时,如果选择安装闭源N卡驱动,440.100版本将被安装。 如果440.100支持机器上的N卡,安装结束以后,机器显示会正常工作。 如果440.100不支持机器上的N卡,显示会出现问题。

如果机器上的N卡不兼容440.100, 最好的办法是不选择安装闭源N卡驱动,先安装使用开源N卡驱动。 登录机器以后,再安装390版或是340版。

确定N卡的型号有几种方法:
1. 查看机器的硬件配置说明
2. 如果有Windows运行,运行N卡管理器,查看。
3. 如果已经安装了Linux发行版(任何发行版包括深度Deepin), 运行以下命令:

$ lspci | egrep "VGA|3D"

范例:
  1. $ lspci | egrep "VGA|3D"
  2. 01:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 930M] (rev a2)
  3. 这个N卡的型号是 GeForce 930M

确定了N卡型号以后,再查看哪个闭源N卡驱动版支持这个N卡。
点击“SUPPORTED PRODUCTS"标签。 按照型号查看。 如果没有找到该型号,440.100则不支持。 不能用这个版本。

点击“SUPPORTED PRODUCTS"标签。 按照型号查看。 如果没有找到该型号,390.138则不支持。 不能用这个版本。

点击“SUPPORTED PRODUCTS"标签。 按照型号查看。 如果没有找到该型号,340.107则不支持。 不能用这个版本。


安装闭源N卡驱动

确定了应该安装的闭源N卡驱动版本以后,就可以安装正确的版本了。

为了方便安装所指定的闭源N卡驱动版本,我编写了一个简单的shell脚本:deepin_install_nvidia_driver.sh

这个脚本可以用来安装任何440, 390, 340中的任何一个版本,只需要提供版本号就可以了。无论目前机器上是否已经安装了闭源N卡驱动,这个脚本都可以安装指定的版本。如果指定的版本已经安装好,这个脚本不会再重新安装同一版本。

脚本deepin_install_nvidia_driver.sh内容:
#!/bin/bash

# Check if NVIDIA driver version number is provided
if [ ! $1 ]; then
echo -e "Usage: $0 \n"
echo -e "For example:\n"
echo -e "$0 390"
exit 1
fi

nvidia_version=$1

function install_current(){
apt install nvidia-driver xserver-xorg-video-nvidia nvidia-settings nvidia-smi
}

function install_legacy(){
apt install nvidia-legacy-${nvidia_version}xx-driver xserver-xorg-video-nvidia-legacy-${nvidia_version}xx nvidia-settings-legacy-${nvidia_version}xx nvidia-legacy-${nvidia_version}xx-
smi
}

case ${nvidia_version} in
440)
install_current
;;
340|390)
install_legacy
;;
*)
esac


脚本运行方法如下:

1. 从本贴粘贴复制,deepin_install_nvidia_driver.sh
2. 修改许可.
chmod +x deepin_install_nvidia_driver.sh
3. 安装所指定的N卡驱动版本.
sudo ./deepin_install_nvidia_driver.sh  

例如安装390版本:
sudo ./deepin_install_nvidia_driver.sh 390

4. 重启机器


卸载闭源N卡驱动

如果需要从闭源N卡驱动转回到开源N卡驱动,需要卸载安装闭源N卡驱动时所安装的软件包。运行脚本deepin_remove_nvidia_driver.sh可以很方便的完成这个转换。

脚本deepin_remove_nvidia_driver.sh内容:

#!/bin/bash

# This scrīpt removes NVIDIA driver
dpkg -l | grep nvidia | awk '{ print $2 }' | xargs apt -y remove
apt -y autoremove

# Install nouveau
apt -y install xserver-xorg-video-nouveau libdrm-nouveau2


1. 从本贴粘贴复制deepin_remove_nvidia_driver.sh
2. 设置可执行许可:
chmod +x deepin_remove_nvidia_driver.sh
3. 运行脚本卸载闭源N卡驱动,恢复开源N卡驱动\
sudo ./deepin_remove_nvidia_driver.sh
4. 重启机器
Reply Favorite View the author
All Replies
2 / 2
To page
Fredoong
deepin
2020-10-01 18:07
#21
不管显卡型号是什么,Deepin安装器都给安装440.100版本的驱动,这也太傻了点。很多机器都因为装了440驱动而无法关机。
Reply View the author
shunketsu
deepin
2020-10-04 18:45
#22
https://bbs.deepin.org/post/203002
覆盖安装完后问题依旧

可能是内核版本的问题,我的笔记本板载老显卡8400M GS,用5.7内核也是类似报错,重装换5.4内核就搞定了。
Reply View the author
180******16
deepin
2020-10-05 16:54
#23
https://bbs.deepin.org/post/203002
不管显卡型号是什么,Deepin安装器都给安装440.100版本的驱动,这也太傻了点。很多机器都因为装了440驱动而 ...

就是啊,我的960只能装390版本
Reply View the author
kinzerx
deepin
2020-10-05 17:18
#24
感谢楼主,成功给老显卡安装了闭源驱动,终于看到动画了哈哈
Reply View the author
deepinuser17
deepin
2020-10-05 21:00
#25
https://bbs.deepin.org/post/203002
可能是内核版本的问题,我的笔记本板载老显卡8400M GS,用5.7内核也是类似报错,重装换5.4内核就搞定了。 ...

内核5.4是长期维护的版本。除非有遇到5.4无法解决的问题,一般不要轻易用5.7.   内核5.7已经过时,不再被维护。
Reply View the author
舞天逸尘
deepin
2020-10-06 00:53
#26
我对linux一点不懂,就在网上搜索方法,慢慢摸索琢磨,会装N卡了,linux太靠自己琢磨了。不想折腾还是用INTEL+AMD显卡吧
Reply View the author
Fredoong
deepin
2020-10-06 06:56
#27
https://bbs.deepin.org/post/203002
我对linux一点不懂,就在网上搜索方法,慢慢摸索琢磨,会装N卡了,linux太靠自己琢磨了。不想折腾还是用INT ...

建议在论坛写一篇具体教程,把自己总结出的装N卡驱动过程分享给大家。嫌打字麻烦做个视频也可。
Reply View the author
舞天逸尘
deepin
2020-10-06 07:07
#28
本帖最后由 cn2cn1234 于 2020-10-5 23:21 编辑
https://bbs.deepin.org/post/203002
建议在论坛写一篇具体教程,把自己总结出的装N卡驱动过程分享给大家。嫌打字麻烦做个视频也可。 ...

我自己原来总结记录下来的;你可以参考一下。
把下载的N卡驱动放入Downloads文件夹下,为了输入省事把文件名改为01.run

需要在安装驱动之前首先禁止nouveau驱动,在Deepin中运行以下命令:
sudo nano /etc/modprobe.d/blacklist.conf

然后在打开的blacklist.conf文件中添加如下内容:
blacklist nouveau

options nouveau modeset=0

ctrl+o写入
ctrl+x离开

然后执行命令:
sudo update-initramfs -u
一直等到检测结束,退出重启电脑。


重启黑屏  按CTRL+ALT+F2  
输入用户名 密码
然后
cd ~/Downloads
sudo sh ./01.run
然后5个界面 分别为点击
yes  
yes   
install and overwrite existi   
NO   
OK
最后输入
sudo systemctl set-default graphical
sudo shutdown -r now
结束重启

我现在为了怕麻烦已经用A卡了,这是之前的安装记录


Reply View the author
taffy
deepin
2020-10-06 08:46
#29
本帖最后由 taffy 于 2020-10-6 00:54 编辑

(nvidia-settings:27704): GLib-GObject-CRITICAL **: 00:53:31.265: g_value_set_boxed: assertion 'G_VALUE_HOLDS_BOXED (value)' failed

ERROR: Error querying enabled displays on GPU 0 (Missing Extension).


ERROR: Error querying connected displays on GPU 0 (Missing Extension).

终端运行nvidia settings报上面错,请问怎么处理?
Reply View the author
deepinuser17
deepin
2020-10-06 12:30
#30
https://bbs.deepin.org/post/203002
(nvidia-settings:27704): GLib-GObject-CRITICAL **: 00:53:31.265: g_value_set_boxed: assertion 'G_VAL ...

两种可能:

1。 机器有两个显卡。目前使用的显卡是Intel的。
2。 安装的N卡驱动不兼容。

对于第一个问题, 需要手动切换到N卡。 见链接:
https://bbs.deepin.org/post/178542
https://bbs.deepin.org/post/191810

对第二个问题,上传:
  1. dpkg -l | grep nvidia-driver
  2. lspci | egrep "VGA|3D"
Copy the Code

Reply View the author
taffy
deepin
2020-10-06 15:42
#31
https://bbs.deepin.org/post/203002
两种可能:

1。 机器有两个显卡。目前使用的显卡是Intel的。

问题2输出如下,根据上面您给的链接查的是390

00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
01:00.0 3D controller: NVIDIA Corporation GP108M [GeForce MX150] (rev a1)
Reply View the author
taffy
deepin
2020-10-06 16:32
#32
https://bbs.deepin.org/post/203002
两种可能:

1。 机器有两个显卡。目前使用的显卡是Intel的。

根据上面链接2已经解决问题,感谢指导
终端nvidia settings还有下面输出,但感觉不影响使用

(nvidia-settings:3248): GLib-GObject-CRITICAL **: 08:28:00.654: g_value_set_boxed: assertion 'G_VALUE_HOLDS_BOXED (value)' failed
GPU at BusId 0x1 doesn't have a supported video decoder
Reply View the author
WangZhongyun
deepin
2020-10-07 21:29
#33
下载楼主的附件按照方法终于安装上N卡驱动了。虽然重启后用深度显卡管理器查看是集成的Intel驱动,但安装任务栏显卡切换器重启切换成N卡成功了。
Reply View the author
qiuye97
deepin
2020-12-02 03:39
#34

没有看到附件啊,是失效了吗

Reply View the author
deepinuser17
deepin
2020-12-03 19:31
#35

新版的论坛不支持文本附件. 从旧版改到新版本时, 附件没有被迁移过来.



Reply View the author
qq8645
deepin
2021-02-05 17:17
#36
nero28
其实我就想像ubuntu/linuxmint那样,选一下N卡的驱动,点应用.不知道这个要什么时候才能做到. ubuntu/linuxmint上就这一点最吸引我.

我也喜欢mint的显卡管理器,列出所有的显卡驱动,鼠标点点选择合适驱动

Reply View the author
心宿二
deepin
2022-10-08 02:58
#37
renghaoa

Done.                  
Loading new nvidia-legacy-340xx-340.107 DKMS files...
Building for 5.7.7-amd64-desktop
Building initial module for 5.7.7-amd64-desktop
Error! Bad return status for module build on kernel: 5.7.7-amd64-desktop (x86_64)
Consult /var/lib/dkms/nvidia-legacy-340xx/340.107/build/make.log for more information.
dpkg: 处理软件包 nvidia-legacy-340xx-kernel-dkms (--configure)时出错:
已安装 nvidia-legacy-340xx-kernel-dkms 软件包 post-installation 脚本 子进程返回错误状态 10
dpkg: 依赖关系问题使得 nvidia-legacy-340xx-driver 的配置工作不能继续:
nvidia-legacy-340xx-driver 依赖于 nvidia-legacy-340xx-kernel-dkms (= 340.107-4) | nvidia-legacy-340xx-kernel-340.107;然而:
  软件包 nvidia-legacy-340xx-kernel-dkms 尚未配置。
  未安装软件包 nvidia-legacy-340xx-kernel-340.107。
  软件包 nvidia-legacy-340xx-kernel-dkms 提供了 nvidia-legacy-340xx-kernel-340.107,但它尚未被配置。

dpkg: 处理软件包 nvidia-legacy-340xx-driver (--configure)时出错:
依赖关系问题 - 仍未被配置
在处理时有错误发生:
nvidia-legacy-340xx-kernel-dkms
nvidia-legacy-340xx-driver
E: Sub-process /usr/bin/dpkg returned an error code (1)

和你一样的错误,请问解决了吗?

Reply View the author
心宿二
deepin
2022-10-08 02:59
#38

update-initramfs: Generating /boot/initrd.img-5.18.4-amd64-desktop-hwe
cryptsetup: WARNING: The initramfs image may not contain cryptsetup binaries
nor crypto modules. If that's on purpose, you may want to uninstall the
'cryptsetup-initramfs' package in order to disable the cryptsetup initramfs
integration and avoid this warning.
I: The initramfs will attempt to resume from /dev/sda4
I: (UUID=e96f9b03-93de-479e-b646-adef624622a3)
I: Set the RESUME variable to override this.
live-boot: core filesystems devices utils udev blockdev dns.
在处理时有错误发生:
nvidia-legacy-340xx-kernel-dkms
nvidia-legacy-340xx-driver
E: Sub-process /usr/bin/dpkg returned an error code (1)

请教,这个错误是哪里出了问题呢?

Reply View the author
deepinuser17
deepin
2022-10-09 08:55
#39

最新版本是340.108-12. 首先更新系统。然后再安装N卡驱动。

如果390支持机器上的N卡,你也可以试试。

Reply View the author
2 / 2
To page