NVIDIA安装前
需要在安装驱动之前首先禁止nouveau驱动,在Deepin中运行以下命令:
sudo nano /etc/modprobe.d/blacklist.conf
然后在打开的blacklist.conf文件中添加如下内容:
blacklist nouveau
options nouveau modeset=0
然后执行命令:
sudo update-initramfs -u
一直等到检测结束,退出重启电脑,重新启动后验证是否成功,运行以下命令:
lsmod | grep nouveau
注:如果页面没什么反应、无输出什么内容即为成功。
NVIDIA安装过程
1、如果之前在Deepin中安装过NVIDIA驱动或大黄蜂方案,请将其全部删除:
sudo apt remove nvidia* bumblebee*
2、卸载完成后,使用快捷键CTRL+ALT+F3进入init3模式。
3、暂时关闭图形界面:
sudo service lightdm stop
4、给下载好的nvidia驱动文件设置执行权限,以下为下载440.82版本:
sudo chmod a+x /home/用户名/Downloads/NVIDIA-Linux-x86_64-440.82.run
5、驱动安装(根据个人情况选择驱动文件所在目录):
sudo sh /home/用户名/Downloads/NVIDIA-Linux-x86_64-440.82.run
6、安装过程中,开始两个选项选YES,第三个选项选中间那个带over的,最后一步问你是否重启系统,选NO;因为驱动完成了还要配置,不然开机可能黑屏。
以下配置信息是从Deepin论坛一楼主那里复制过来的,亲测前半部分有效,后半部分没有遇到所说的现象,所有没有测试
7、配置xorg
查看显卡的BusID,后面配置要用。
终端输入:lspci | egrep "VGA|3D"
我的2张显卡分别对应的是
00:02:00 intel
01:00:00 nvidia
然后新建一个xorg.conf
sudo vim /etc/X11/xorg.cnf
这里要进行转换一下,00:02:00 --> 0:2:0 01:00:00 --> 1:0:0
配置内容如下
Section "Device"
Identifier "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这个文件来看看问题处在哪里。
如果很幸运重启进入桌面了,终端输入nvidia-smi,显示显存被使用了,恭喜你,NVIDIA驱动安装成功了。
(本人就这么幸运安装成功了,驱动安装到此为止)
也有显存占用一直为0的,下面有解决方案,未经测试,小心配置
配置NVIDIA渲染资源
终端输入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,就可以看到n卡占用不再是0了。而且还有一个很重要的标识
你会发现,你运行的程序的进程都会在这里出现。这才是真正的用上了N卡驱动。