我已经安装了Debian 11 (斗牛眼)在一个新的联想军团5i Pro与Nvidia RTX 3050。
安装Nvidia司机之后:
sudo apt-get install nvidia-driver firmware-misc-nonfree我使用HDMI端口连接了一个外部监视器,但是它没有被识别,它没有显示在显示设置中。
我试着搜索这个问题,发现某个地方有人用xrandr解决了类似的问题。
~$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x4a cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 7 associated providers: 0 name:modesetting
Provider 1: id: 0x2af cap: 0x2, Sink Output crtcs: 4 outputs: 6 associated providers: 0 name:NVIDIA-G0这个命令修复了问题,但老实说,我不知道它做了什么:
xrandr --setprovideroutputsource 1 0但问题是,在重新启动后,这些更改并没有持续,而且我有很多滞后,Xorg使用了大约30-40%的CPU,如使用top所示。因此,我已经卸载了驱动程序,并重新启动。
接下来,我尝试使用/etc/X11/xorg.conf创建一个nvidia-xconfig文件,该文件创建了一个包含以下内容的文件:
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 460.32.03
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
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 "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection好的是,外部监视器被识别出来了,我开始使用它,它在显示设置中显示,但是我不能使用内置显示器,如果我尝试使用没有外部显示器的笔记本电脑,我会得到一个空白的屏幕,我必须删除/etc/X11/xorg.conf文件并重新启动才能使用内置的显示器。
如何将我的系统配置为能够同时使用内置和外部显示?
更新:
$ nvidia-xconfig --query-gpu-info
Number of GPUs: 1
GPU #0:
Name : GeForce RTX 3050 Laptop GPU
UUID : GPU-5f21a5b3-2add-7b3d-aa6b-1cfe5dd7085e
PCI BusID : PCI:1:0:0
Number of Display Devices: 1
Display Device 0 (TV-4):
EDID Name : LG Electronics 24MP56
Minimum HorizSync : 30.000 kHz
Maximum HorizSync : 83.000 kHz
Minimum VertRefresh : 56 Hz
Maximum VertRefresh : 61 Hz
Maximum PixelClock : 150.000 MHz
Maximum Width : 1920 pixels
Maximum Height : 1080 pixels
Preferred Width : 1920 pixels
Preferred Height : 1080 pixels
Preferred VertRefresh : 60 Hz
Physical Width : 510 mm
Physical Height : 290 mm使用xrandr列出监视器:
$ xrandr --listmonitors
Monitors: 1
0: +*eDP-1 1920/345x1200/215+0+0 eDP-1在使用这个命令xrandr --setprovideroutputsource 1 0之后,我得到了以下输出:
$ xrandr --listmonitors
Monitors: 2
0: +*eDP-1 2560/345x1600/215+0+0 eDP-1
1: +HDMI-1-0 1920/510x1080/290+2560+0 HDMI-1-0但问题是Xorg进程的CPU使用率很高(30-40%).
发布于 2021-12-20 18:26:06
带有独立的专用显卡和集成显卡的笔记本电脑将尝试平衡,这是用来提高电池寿命。检查nvidia-settings和bios设置,看看是否有一个选项可以指定您想要使用的。
发布于 2021-12-22 08:24:13
通过将Graphic设备模式设置为Discrete图形,而不是BIOS中的Dynamic图形,我临时解决了问题,然后我能够同时使用这两种显示器(内置和外部),而不需要Xorg的任何高CPU使用率,也不需要任何额外的配置。这种方法只使用专用GPU,而不使用动态模式。
我已经找到了另一个解决方案,在BIOS中使用Xorg图形模式时,<#>Dynamic并没有使用任何高CPU使用率,所以我使用了这两个GPU。
我遵循了Debian的wiki:使用NVIDIA GPU作为主GPU的说明
# Add "contrib" and "non-free" components to /etc/apt/sources.list, example:
# deb http://deb.debian.org/debian/ bullseye main contrib non-free
$ sudo apt-get update
$ sudo apt-get install nvidia-driver firmware-misc-nonfreex11-xserver-utils:$ sudo apt-get install x11-xserver-utils/etc/X11/xorg.conf上创建一个配置文件,其内容如下:Section "ServerLayout"
Identifier "layout"
Screen 0 "nvidia"
Inactive "intel"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "" # e.g. PCI:1:0:0
EndSection
Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration"
EndSection
Section "Device"
Identifier "intel"
Driver "modesetting"
BusID "" # e.g. PCI:0:2:0
#Option "AccelMethod" "none"
EndSection
Section "Screen"
Identifier "intel"
Device "intel"
EndSection您可以使用lspci命令获得总线ID:
$ lspci | grep -E "VGA|3D"
00:02.0 VGA compatible controller: Intel Corporation Device 9a60 (rev 01)
01:00.0 VGA compatible controller: NVIDIA Corporation Device 25e2 (rev a1)在xorg.conf文件中使用以下in:
00:02.0 -> PCI:0:2:000:02.0 -> PCI:0:2:0~/.xsessionrc文件:xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto如果您在运行第一个命令时遇到任何错误,请使用此命令获得正确的名称,它可能不是NVIDIA-0:
$ xrandr --listproviders~/.xsessionrc可执行:$ chmod +x ~/.xsessionrchttps://unix.stackexchange.com/questions/682966
复制相似问题