如何在 Lenovo LEGION 5 Pro (Nvidia RTX 3050) 上配置多个显示器

如何在 Lenovo LEGION 5 Pro (Nvidia RTX 3050) 上配置多个显示器

我已在配备 Nvidia RTX 3050 的新 Lenovo LEGION 5i Pro 上安装了 Debian 11 (bullseye)。

安装后英伟达驱动程序

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

但问题是进程的 CPU 使用率很高Xorg(30-40%)。

答案1

具有独立独立显卡和集成显卡的笔记本电脑会尽力平衡,以提高电池寿命。检查nvidia-settingsBIOS 设置,看看是否有一个选项可以指定您要使用的选项。

答案2

我已经通过设置暂时解决了我的问题图形设备模式为离散图形代替动态图形在 BIOS 中,然后我能够同时使用两个显示器(内置和外部),而Xorg无需任何额外的配置而导致 CPU 使用率过高。此方法仅使用专用 GPU,而不使用动态模式。

Xorg我发现了另一个解决方案,在使用时没有任何高 CPU 使用率动态图形BIOS 中的模式,所以我使用了两个 GPU。

我按照 Debian 维基上的说明进行操作: 使用 NVIDIA GPU 作为主 GPU

  1. 我按照这些安装了 Nvidia 驱动程序指示
# 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-nonfree
  1. 我已经x11-xserver-utils安装了:
$ sudo apt-get install x11-xserver-utils
  1. /etc/X11/xorg.conf创建一个包含以下内容的配置文件:
Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "<BusID for NVIDIA device here>" # e.g. PCI:1:0:0
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
    BusID "<BusID for Intel device here>" # e.g. PCI:0:2:0
    #Option "AccelMethod" "none"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

您可以使用以下命令获取总线 ID lspci

$ 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)

在文件中使用这些 ID,如下所示xorg.conf

  • 00:02.0->PCI:0:2:0
  • 00:02.0->PCI:0:2:0
  1. 创建一个~/.xsessionrc包含以下内容的文件:
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

如果运行第一个命令时出现任何错误,请使用此命令获取正确的名称,它可能不是NVIDIA-0

$ xrandr --listproviders
  1. 制作~/.xsessionrc可执行文件:
$ chmod +x ~/.xsessionrc
  1. 重新启动,然后您应该能够使用两台显示器并使用“显示器”设置页面配置它们

相关内容