分享自己debian系统的nvidia显卡驱动安装及双显卡快速切换方案(debian10系统,ubuntu系统的兄弟可参考)

游戏讨论
回复
wsmfz893
帖子: 12
注册时间: 2007-03-12 13:48

分享自己debian系统的nvidia显卡驱动安装及双显卡快速切换方案(debian10系统,ubuntu系统的兄弟可参考)

#1

帖子 wsmfz893 » 2019-12-10 13:33

==================================================================================
感谢“东北小狐狸”大神的帖子(https://www.cnblogs.com/hellxz/p/7865790.html),参考他的帖子结合自己的电脑更改。
==================================================================================
==================================================================================
个人debian10系统,cinnamon桌面,lightdm显示管理器
ubuntu用户不要完全照搬此方法,系统不同。可做参考,根据自己系统情况更改。

个人认为此方法不同于Bumblebee,此方法是电脑强制使用nvidia驱动,所以我在后面添加了简单的双显卡切换脚本。

思路:1.安装nvidia驱动;2.配置xorg.conf以加载nvidia驱动;3.配置桌面管理器(DM)以加载nvidia驱动。4.利用脚本快速切换集显和独显。

1.安装lshw,可以用lshw -c display查看显卡信息(非必须)

2.安装nvidia-detect,可以用nvidia-detect查看显卡信息(非必须)

3.安装nvidia-driver
#apt-get install nvidia-driver 重启电脑,此时正常的情况是可以进入桌面的,并且开源nvidia驱动“nouveau”已经被之前的安装程序添加了禁用blacklist,此时N卡驱动并没有被DM(desktop manager)加载,还是在使用集成显卡,NVIDIA X SERVER SETTING控制中心也还没法打开,现在我们通过配置xorg.conf及dm以启用驱动。

4.用lspci查看显卡busid,我的是:
08:00.0 Network controller: Intel Corporation Wireless 7260 (rev 73)
09:00.0 3D controller: NVIDIA Corporation GK208M [GeForce GT 740M] (rev a1)
我的nvidia显卡显示:09:00.0,说明我的N卡BusID为:9:0:0

强烈建议进行以下操作时先备份文件
#cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bkp


5.在/etc/X11/下创建空白xorg.conf(debian10默认不使用xorg.conf启动图形界面,所以我里面没有xorg.conf,若ubuntu的兄弟默认有此文件,操作可能要变动),写入以下内容(不用加其他内容):
Section "Module"
Load "modesetting"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
BusID "9:0:0" ##这里根据自己的BusID更改
VendorName "NVIDIA Corporation"
EndSection

##此内容告诉xorg使用nvidia驱动,并通过BusID指定N卡使用此驱动(而不是集成显卡使用此驱动,个人理解)。

6.告知桌面管理器DM加载nvidia驱动,而不是加载集成显卡驱动(脚本文件内容是按照“东北小狐狸”大神的帖子写的)。
6.1创建脚本
# vim /usr/local/bin/nvidia_switch.sh
添加内容,其中96为dpi,普通屏幕无需修改,高分辨率的请自行参考资料
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
xrandr --dpi 96
保存并退出,授予执行权限
# chmod +x /usr/local/bin/nvidia_switch.sh
6.2根据DM的类型对配置文件进行修改(我的是lightdm)
LightDM
  打开/etc/lightdm/lightdm.conf,搜索display-setup-script=,去掉注释符号“#”,修改内容为如下:
display-setup-script=/usr/local/bin/nvidia_switch.sh
  保存后,重启lightdm
# systemctl restart lightdm.service
  界面会自动重启,重启之后驱动已经加载完毕

如果启动黑屏,则切换到控制台,将之前备份的xorg.conf恢复以及将lightdm.conf里修改的那些注释掉,再重启电脑会使用原先的集成显卡驱动启动。

7.检查驱动是否加载:
$ glxinfo | grep rendering
direct rendering: Yes

并且可以打开NVIDIA X SERVER SETTING控制中心。
此时已成功安装驱动并使用nvidia官方闭源驱动。

独显和集显双显卡的本本,快速切换显卡脚本:
利用脚本可快速切换使用哪个显卡。
准备工作:先备份几个文件
到/etc/lightdm目录下,将添加display-setup-script=/usr/local/bin/nvidia_switch.sh内容的lightdm.conf复制一份为lightdm.conf.nvidia,另外再复制一份为lightdm.conf.intel并将其中display-setup-script=/usr/local/bin/nvidia_switch.sh这一行注释掉。
到/etc/X11目录下,将修改好的使用nvidia驱动的xorg.conf文件拷贝一份保存为xorg.conf.nvidia,因为debian10默认不需要xorg.conf来驱动集成显卡,所以不需要再建立xorg.conf.intel,切换集成显卡的时候直接删除xorg.conf即可(Ubuntu用户按照自己情况来)

建立脚本文件:
1.切换为nvidia显卡脚本:
创建文件:
#vim use-nvidia.sh
内容如下:
cd /etc/X11/
rm -f xorg.conf
cp xorg.conf.nvidia xorg.conf
cd /etc/lightdm/
rm -f lightdm.conf
cp lightdm.conf.nvidia lightdm.conf
systemctl restart lightdm.service
保存后添加可执行权限#chmod +x use-nvidia.sh

使用root权限运行 ./use-nvidia.sh可以切换N卡运行,可以看到dolphin使用N卡运行:
nvidia.png
2.切换为intel集成显卡脚本文件:
创建文件:
#vim use-intel.sh
内容如下:
cd /etc/X11/
rm -f xorg.conf ##如果系统本来就使用xorg.conf的用户,这行需相应更改,debian10默认不需要这个文件来使用集成显卡,所以我直接简单删除。
cd /etc/lightdm/
rm -f lightdm.conf
cp lightdm.conf.intel lightdm.conf
systemctl restart lightdm.service
保存后添加可执行权限#chmod +x use-intel.sh

使用用root权限运行 ./use-intel.sh切换intel显卡,可以看到dolphin使用集成显卡运行:
intel.png
以后只要使用 ./use-nvidia.sh 和./use-intel.sh即可快速切换本本使用哪个显卡。
回复