云网牛站
所在位置:首页 > 初入Linux圈 > 在Deepin V20系统中给笔记本双显卡安装NVIDIA闭源驱动

在Deepin V20系统中给笔记本双显卡安装NVIDIA闭源驱动

2020-04-17 10:40:14作者:l17es稿源:深度站

本文所使用的操作系统是深度Deepin V20,我们将在笔记本双显卡下安装NVIDIA闭源驱动,总共5个步骤。其实Deepin V20开源驱动已经能流畅的运行系统了,能满足基本的需求,如果不是硬件需求,建议不要安装闭源驱动,因为会带来不稳定的风险。

 

在Deepin V20系统中安装NVIDIA闭源驱动的5个步骤

可先参考在Deepin系统中安装英伟达NVIDIA显卡驱动的方法

步骤1、下载驱动

确认显卡型号,使用命令:

lspci | egrep "VGA|3D"

在Deepin V20系统中给笔记本双显卡安装NVIDIA闭源驱动

注:红框部分就是你的显卡型号,然后去NVIDIA官方下载对应的驱动,地址是:https://www.geforce.cn/drivers。

其中GeForce xx series是台式机显卡驱动,GeForce xx series (Notebooks)是笔记本驱动,请注意分辨并正确下载。

比如我这台机器是GTX1060,我就按照下图这样设置:

在Deepin V20系统中给笔记本双显卡安装NVIDIA闭源驱动

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

步骤2、禁用NVIDIA开源驱动nouveau

新建一个黑名单让系统启动的时候不去加载开源驱动:

sudo vim /etc/modprobe.d/blacklist-nouveau.conf

写入以下内容:

blacklist nouveau

 options nouveau modeset=0

按ESC键,输入 :wq 保存,然后重启。

重新进入系统之后输入以下代码检查是否禁用成功:

lsmod | grep nouveau

如果没有输出内容,证明禁用成功了。

步骤3.安装NVIDIA闭源驱动

按CTRL+ALT+F3进入TTY命令行模式,帐号密码是你登陆系统的帐号和密码。

进入之后先检查之前时候安装过闭源驱动和大黄蜂方案,如果有最好卸载掉:

nvidia-smi

没输出内容证明没有安装过闭源驱动:

sudo apt remove --purge nvidia* bumblebee*

安装过闭源驱动用上述方法无法卸载的,尝试:

nvidia-uninstall

确认卸载完成之后,下面开始安装。

先给安装包赋予运行权限:

sudo chmod +x ~/Download/NVIDIA-Linux-x86_64-440.82.run

接着切换到运行级别3来运行驱动安装程序(不切换好像安装不了,进安装界面就直接error):

sudo init 3

运行驱动安装程序:

sudo sh ~/Download/NVIDIA-Linux-x86_64-440.82.run

安装里的选项里,只有yes和no的,请选yes,有3个选项的选择中间那个over 的,最后进度条走完那个弹窗的2个选项,选No,到这一步就算安装完成了,不过不要重启还需要配置,这时候重启可能会黑屏。

步骤4、配置xorg

查看显卡的BusID,后面配置要用:

lspci | egrep "VGA|3D"

在Deepin V20系统中给笔记本双显卡安装NVIDIA闭源驱动

如图所示,我的2张显卡分别对应的是:

00:02:00 intel

01:00:00 nvidia

参考:在deepin stable系统中配置Intel+Nvidia双显卡的方法

然后新建一个xorg.conf:

sudo vim /etc/X11/xorg.cnf

这里要进行转换一下,00:02:00 --> 0:2:0  01:00:00 --> 1:0:0。

配置内容如下:

Section "Device"

 Indentifier "nvidia"

 Driver "nvidia"

 BusID "PCI:1:0:0"

 Option "AllowEmptyInitialConfiguration"

EndSection

Section "Device"

 Identifier "intel"

 Driver "modesetting"

 BusID "PCI:0:2:0"

EndSection

再接着新建一个display_setup.sh:

sudo vim /etc/lightdm/display_setup.sh

内容如下:

#!/bin/sh

xrandr --setprovideroutputsource modesetting NVIDIA-0

xrandr --auto

然后赋予权限:

sudo chmod +x /etc/lightdm/display_setup.sh

然后在lightdm里配置启用这个脚本:

sudo vim /etc/lightdm/lightdm.conf

找到 display-setup-script这一行,去掉前面的注释,将display_setup.sh这个目录填进去:

display-setup-script=/etc/lightdm/display_setup.sh

做完这些操作就可以重启了。

如果发现重启之后无法进入桌面,按CTRL+ALT+F3进入TTY命令行模式,可以试试排错,一般来说不能进入桌面,应该是lightdm.service出了问题,可以用:

systemctl status lightdm.service

来查看lightdm的状态。

还可以尝试看看日志来确认错误,一般出错的可能在ligthdm和xorg连接上,可以查看x-0.log这个文件来看看问题处在哪里。

步骤5、配置NVIDIA渲染资源

这一步适用Deepin V20以前的版本,可以有效解决滚动撕裂和拖动撕裂,但无法解决控制面板滚动左边条目上出现的白线问题。

可以进入桌面了之后,安装步骤算完成了。但是你用nvidia-smi的时候会发现nvidia的显存占用一直是0。那说明根本没起作用,接下来我们来配置一下。

运行:

nvidia-xconfig

会备份之前的xorg.conf为xorg.conf.backup,生成一个新的xorg.conf,按照以下格式来修改xorg.conf文件,需要修改或新增的地方我用 {} 标注出来,其他地方能不动最好别动:

# nvidia-xconfig: X configuration file generated by nvidia-xconfig

# nvidia-xconfig:  version 440.82

Section "ServerLayout"

 Identifier     "Default Layout"

 Screen         "{nvidia}" 0 0 //修改,原先应该是Default Screen

 InputDevice    "Keyboard0" "CoreKeyboard"

 InputDevice    "Mouse0" "CorePointer"

 Inactive        "intel"

EndSection

Section "InputDevice"

 # generated from default

 Identifier     "Keyboard0"

 Driver         "kbd"

EndSection

Section "InputDevice"

 # generated from default

 Identifier     "Mouse0"

 Driver         "mouse"

 Option         "Protocol" "auto"

 Option         "Device" "/dev/psaux"

 Option         "Emulate3Buttons" "no"

 Option         "ZAxisMapping" "4 5"

EndSection

Section "Device"

 Identifier     "intel"

 Driver         "{modesetting}" //修改,原先应该是nvidia

 {BusID        "PCI:0:2:0"} //新增

EndSection

{Section "Screen" //新增

 Identifier        "intel"  //新增

 Device        "intel"  //新增

 DefaultDepth        24 //新增,这行内容来自下面nvidia生成的,必须跟下面那个Screen的DefaultDepth一致

EndSection}

Section "Device"

 Identifier     "nvidia"

 Driver         "nvidia"

 {BusID          "PCI:1:0:0"} //新增,生成之后不包括这个参数,这行下面的Option 移到 Screen里去了

EndSection

Section "Screen"

 Identifier     "{nvidia}" //修改,原先的值为Default Screen

 Device         "nvidia"

{Option        "AllowEmptyInitialConfiguration"} //新增,这行原先属于上面那个Section "Device" Identifier "nvidia" 的,不过官方文档说的是加上这里

    DefaultDepth    24 //这个下面还有一个SubSection,官方文档没有我给删除了

EndSection

主要修改的是2个Device和2个Screen,每个显卡对应1个Device 1个Screen,然后在内容最上面那条的Screen引用n卡的Screen。

然后加一个内核启动参数:

sudo vim /boot/grub/grub.cfg

找到 'Deepin 20 Beta GNU/Linux' 下面的 linux  /boot/vmlinuz-5.3.0-3-amd64 这一行, 在最末尾加上nvidia-drm.modeset=1,按ESC输入:wq保存

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

在Deepin V20系统中给笔记本双显卡安装NVIDIA闭源驱动

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

到了这一步,意味着在Deepin V20系统中安装NVIDIA闭源驱动全部完成了。

 

相关主题

在Deepin 15.10系统中安装NVIDIA显卡驱动后设置屏幕亮度的方法

子频道
精选文章
热门文章