笔记本双显卡安装NVIDIA闭源驱动
Tofloor
poster avatar
stone
deepin
2020-04-17 04:11
Author
本帖最后由 l17es 于 2020-4-20 16:57 编辑

笔记本双显卡安装NVIDIA闭源驱动

前言
DEEPIN V20的开源驱动足够流畅,如果没有硬性需求,不推荐安装闭源驱动,如果你爱折腾,那请往下看

更新:
坛子里有大神提供NVIDIA-PRIME方案了,我这边前4步是安装最新闭源驱动,后面的请参考
https://bbs.deepin.org/post/191741注:前4步按照我这边安装可以跳过 sudo apt install nvidia nvidia-smi nvidia-settings

安装教程

1. 下载驱动
确认显卡型号 使用命令
  1. lspci | egrep "VGA|3D"
Copy the Code


红框部分就是你的显卡型号,然后去NVIDIA官方下载对应的驱动
GeForce xx series 是台式机显卡驱动
GeForce xx series (Notebooks) 是笔记本驱动
别下错咯。
比如我这台机器是GTX1060,我就按照下图这样设置

下载下来的文件是NVIDIA-Linux-x86_64-xxx.xx.run格式的


2.禁用NVIDIA开源驱动nouveau
新建一个黑名单让系统启动的时候不去加载开源驱动
  1. sudo vim /etc/modprobe.d/blacklist-nouveau.conf
Copy the Code
写入以下内容:
  1. blacklist nouveau
  2.   options nouveau modeset=0
Copy the Code
按ESC键,输入 :wq 保存
然后重启
重新进入系统之后输入以下代码检查是否禁用成功
  1. lsmod | grep nouveau
Copy the Code
如果没有输出内容,证明禁用成功了。

3.安装NVIDIA闭源驱动
按CTRL+ALT+F3进入TTY命令行模式,帐号密码是你登陆系统的帐号和密码。
进入之后先检查之前时候安装过闭源驱动和大黄蜂方案,如果有最好卸载掉。
  1. nvidia-smi
Copy the Code
没输出内容证明没有安装过闭源驱动
  1. sudo apt remove --purge nvidia* bumblebee*
Copy the Code
安装过闭源驱动用上述方法无法卸载的,尝试
  1. nvidia-uninstall
Copy the Code
确认卸载完成之后,下面开始安装
先给安装包赋予运行权限
  1. sudo chmod +x ~/Download/NVIDIA-Linux-x86_64-440.82.run
Copy the Code
接着 切换到 运行级别3 来运行驱动安装程序(不切换好像安装不了,进安装界面就直接error)
  1. sudo init 3
Copy the Code
运行驱动安装程序
  1. sudo sh ~/Download/NVIDIA-Linux-x86_64-440.82.run
Copy the Code
安装里的选项里,只有yes和no的 选yes ,有3个选项的选择中间那个over 的,最后进度条走完那个弹窗的2个选项 选 No,到这一步就算安装完成了,不过不要重启还需要配置,这时候重启可能会黑屏

4.配置启动脚本
新建一个display_setup.sh
  1. sudo vim /etc/lightdm/display_setup.sh
Copy the Code
内容如下
  1. #!/bin/sh
  2. xrandr --setprovideroutputsource modesetting NVIDIA-0
  3. xrandr --auto
Copy the Code
然后赋予权限
  1. sudo chmod +x /etc/lightdm/display_setup.sh
Copy the Code
然后在lightdm里配置启用这个脚本
  1. sudo vim /etc/lightdm/lightdm.conf
Copy the Code
找到 display-setup-script这一行,去掉前面的注释,将display_setup.sh这个目录填进去
  1. display-setup-script=/etc/lightdm/display_setup.sh
Copy the Code
做完这些操作就可以重启了。
如果发现重启之后无法进入桌面,按CTRL+ALT+F3进入TTY命令行模式,可以试试排错,一般来说不能进入桌面,应该是lightdm.service出了问题,可以用
  1. systemctl status lightdm.service
Copy the Code
来查看lightdm的状态。
还可以尝试看看日志来确认错误,一般出错的可能在ligthdm和xorg连接上,可以查看x-0.log这个文件来看看问题处在哪里。

第5步参考的是arch 官方 wiki 可能在 deepin 里无用(我自己的可以用 配置是gtx1066),所以,安装完了驱动之后,请按照
https://bbs.deepin.org/post/191741
这个帖子sudo apt install nvidia-driver nvidia-smi nvidia-settings 之后步骤进行配置 nvidia-prime
大致步骤是配置debian的unstable源 更新xserver-xorg到1.20.6-1以上,然后安装nvidia-prime即可,使用Nvidia驱动来运行程序命令 prime-run xxx

5. 配置NVIDIA渲染资源
这一步 适用 v20 以前的版本,可以有效解决滚动撕裂和拖动撕裂,但无法解决控制面板滚动左边条目上出现的白线问题
可以进入桌面了之后,安装步骤算完成了。但是你用nvidia-smi的时候会发现nvidia的显存占用一直是0。那说明根本没起作用,接下来我们来配置一下
  1. Section "ServerLayout"
  2.     Identifier     "Default Layout"
  3.     Screen         "nvidia" 0 0
  4.     Inactive        "intel"
  5. EndSection

  6. Section "Device"
  7.     Identifier     "intel"
  8.     Driver         "modesetting"
  9.     BusID        "PCI:0:2:0"
  10. EndSection

  11. Section "Screen"
  12.         Identifier        "intel"
  13.         Device        "intel"
  14.         DefaultDepth        24
  15. EndSection}

  16. Section "Device"
  17.     Identifier     "nvidia"
  18.     Driver         "nvidia"
  19.     BusID          "PCI:1:0:0"
  20. EndSection

  21. Section "Screen"
  22.     Identifier     "nvidia"
  23.     Device         "nvidia"
  24.     Option        "AllowEmptyInitialConfiguration"
  25.     DefaultDepth    24
  26. EndSection
Copy the Code
然后加一个内核启动参数
  1. sudo vim /boot/grub/grub.cfg
Copy the Code
找到 'Deepin 20 Beta GNU/Linux' 下面的 linux  /boot/vmlinuz-5.3.0-3-amd64 这一行, 在最末尾加上nvidia-drm.modeset=1,按ESC输入:wq保存,然后更新启动
  1. sudo update-grub
Copy the Code

配置完成之后重启,再试试nvidia-smi,就可以看到n卡占用不再是0了。而且还有一个很重要的标识

你会发现,你运行的程序的进程都会在这里出现。这才是真正的用上了N卡驱动。

参考资料:
http://us.download.nvidia.com/XFree86/Linux-x86/375.26/README/randr14.html



关于ARCH 的 NVIDIA-PRIME 方案


从源码来看只有2行代码,不知道是不是真的起了作用?
涉及到2个文件

/usr/share/X11/xorg.conf.d/20-nvidia-prime.conf 内容如下
  1. Section "ServerLayout"
  2.     Identifier "layout"
  3.     Option "AllowNVIDIAGPUScreens"
  4. EndSection
Copy the Code


/usr/bin/prime-run 内容如下
  1. #!/bin/bash
  2. __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia "$@"
Copy the Code
也就是说所谓的prime-run 只是新建了一个prime-run的脚本 ,让我不由得怀疑是不是真的有作用?有没有大佬过来分析分析









Reply Favorite View the author
All Replies
1 / 2
To page
jianguo922
deepin
2020-04-17 04:35
#1
谢谢分享
Reply View the author
xxxie1993
deepin
2020-04-17 06:12
#2
非常详细,感谢分享
Reply View the author
deepinuser17
deepin
2020-04-17 07:13
#3
感谢分享
Reply View the author
leezn
deepin
2020-04-17 19:49
#4
感谢分享,这个一直用的都是N卡吧?
Reply View the author
stone
deepin
2020-04-17 19:53
#5
https://bbs.deepin.org/post/191810
感谢分享,这个一直用的都是N卡吧?

恩,根据ARCH官方的说法是一直用N卡渲染然后复制祯到I卡输出
Reply View the author
funtoo
deepin
2020-04-17 20:05
#6
懒得多解释了,原生PRIME是创建了一个虚拟显示器,所以在这种情况下,用nvidia-smi看到只有一个xorg进程是在独显下运行的。只有用prime-run这种命令明确运行的程序才会调用独显渲染。
第一种方式就是所有进程都在独显下运行,功耗比PRIME高得多。
Reply View the author
stone
deepin
2020-04-17 23:44
#7
https://bbs.deepin.org/post/191810
懒得多解释了,原生PRIME是创建了一个虚拟显示器,所以在这种情况下,用nvidia-smi看到只有一个xorg进程是 ...

哦这样啊,谢谢解惑
Reply View the author
stone
deepin
2020-04-18 01:59
#8
昨天还好好的,今天就开始掉祯了, 心塞
查看 日志 发现 randr 初始化失败,找了下没看到解决方案。
而且我发现个问题,装了闭源之后,功耗好像高很多,开机时间一长,风扇就呼呼的转。所以我打算切换回开源驱动。
Reply View the author
mr_cypress
deepin
2020-04-18 04:34
#9
https://bbs.deepin.org/post/191810
昨天还好好的,今天就开始掉祯了, 心塞
查看 日志 发现 randr 初始化失败,找了下没看到解决 ...

我在按照你这个配置。。。
Reply View the author
mr_cypress
deepin
2020-04-18 04:35
#10
https://bbs.deepin.org/post/191810
昨天还好好的,今天就开始掉祯了, 心塞
查看 日志 发现 randr 初始化失败,找了下没看到解决 ...

原本使用的Linux Mint,自带NVIDIA驱动,不过好像应该是用的大黄蜂。自己卸载安装的官网驱动,就用了一天,连tty,安全模式都进不去了。
Reply View the author
stone
deepin
2020-04-18 05:34
#11
https://bbs.deepin.org/post/191810
原本使用的Linux Mint,自带NVIDIA驱动,不过好像应该是用的大黄蜂。自己卸载安装的官网驱动,就用了一天 ...

哈哈哈, 不可能连系统都进不去,只是说会有点掉祯。其他还好的,我又看了下这个掉祯估计跟我刚才手贱删除了内核启动参数的nvidia-drm.modeset=1 ,这个必须得加。你进不去系统估计是xorg.conf没配置好。我把教程改一下。
Reply View the author
xxxie1993
deepin
2020-04-19 00:14
#12
第5步渲染的配置文件,第17行后面多了},去掉大括号后,开机黑屏。
Reply View the author
xxxie1993
deepin
2020-04-19 00:21
#13
日志文件您帮忙看一下,tty不会复制,拍照了
Reply View the author
xxxie1993
deepin
2020-04-19 00:23
#14
这个报错不知道是啥,折腾的好累
Reply View the author
stone
deepin
2020-04-19 01:16
#15
https://bbs.deepin.org/post/191810
这个报错不知道是啥,折腾的好累

哈哈哈, 生命在于折腾。
这样吧,先进系统,你把xorg.conf删掉,看看能不能进入系统,可以的话,用我前言提到的那个方案去装,这种手动配置出错的几率太大了。
sudo rm -rf /etc/X11/xorg.conf
Reply View the author
stone
deepin
2020-04-19 01:17
#16
https://bbs.deepin.org/post/191810
第5步渲染的配置文件,第17行后面多了},去掉大括号后,开机黑屏。

大括号内的是要修改的,别把大括号也写进去了。
Reply View the author
mr_cypress
deepin
2020-04-20 20:27
#17
https://bbs.deepin.org/post/191810
哈哈哈, 不可能连系统都进不去,只是说会有点掉祯。其他还好的,我又看了下这个掉祯估计跟我刚才手贱删 ...

我添加了,无法进入。从recovery模式下将驱动删除了,现在可以进入系统了,只不过浪费了那么多的时间,无用。
Reply View the author
stone
deepin
2020-04-21 00:33
#18
https://bbs.deepin.org/post/191810
我添加了,无法进入。从recovery模式下将驱动删除了,现在可以进入系统了,只不过浪费了那么多的时间,无 ...

抱歉给你带来困扰
Reply View the author
Hello
deepin
2020-06-14 07:26
#19
大佬还在吗?在哪里加啥啊
Reply View the author
stone
deepin
2020-06-14 17:16
#20
Reply View the author
1 / 2
To page