Xserver は外部モニターを検出しますが、ラップトップの内蔵モニターは検出しません

Xserver は外部モニターを検出しますが、ラップトップの内蔵モニターは検出しません

私は Ubuntu 22.04 を搭載した Lenovo Legion 5 を使用しています (Ubuntu 20.04 でも同じ問題が発生し、22.04 にアップグレードすれば問題が解決することを期待していましたが、解決しませんでした)。外部モニター 2 台とラップトップの画面です。

ノームと一緒に。

コンピュータを起動すると、起動が gnome のログインに達するまで (つまり、X サーバーまで) 外部モニターは非アクティブになり、その後、ラップトップ モニターはログイン画面で「進行中のすべてのファイルシステム チェックをキャンセルするには、Ctrl + C を押してください」と表示されたまま停止し、外部モニターが検出されて gnome が表示されます。

Ctrl + Alt + F3 を押してターミナルを起動すると、ラップトップの画面にターミナルが表示され、Ctrl + Alt + F1 で X サーバーに戻ると、ターミナルが外部モニターに表示されます。

私はAMDとNVIDIAのグラフィックカード/GPUを持っています:

sudo lshw -C display 与える

  *-display                 
       description: VGA compatible controller
       product: GA106M [GeForce RTX 3060 Mobile / Max-Q]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
       configuration: driver=nvidia latency=0
       resources: iomemory:fa0-f9f iomemory:fc0-fbf irq:93 memory:d0000000-d0ffffff memory:fa00000000-fbffffffff memory:fc00000000-fc01ffffff ioport:3000(size=128) memory:d1080000-d10fffff
  *-display UNCLAIMED
       description: VGA compatible controller
       product: Cezanne
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 0
       bus info: pci@0000:05:00.0
       version: c6
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi msix vga_controller bus_master cap_list
       configuration: latency=0
       resources: iomemory:fc0-fbf iomemory:fc0-fbf memory:fc10000000-fc1fffffff memory:fc20000000-fc201fffff ioport:1000(size=256) memory:d1500000-d157ffff
  *-graphics
       product: EFI VGA
       physical id: 2
       logical name: /dev/fb0
       capabilities: fb
       configuration: depth=32 resolution=1920,1080


興味深いことに、私がsudo X -configure そうすると

X.Org X Server 1.21.1.3
X Protocol Version 11, Revision 0
Current Operating System: Linux ntb048 5.15.0-37-generic #39-Ubuntu SMP Wed Jun 1 19:16:45 UTC 2022 x86_64
Kernel command line: BOOT_IMAGE=/vmlinuz-5.15.0-37-generic root=/dev/mapper/vgubuntu-root ro quiet splash vt.handoff=7
xorg-server 2:21.1.3-2ubuntu2 (For technical support please see http://www.ubuntu.com/support) 
Current version of pixman: 0.40.0
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Fri Jun 10 18:32:04 2022
List of video drivers:
    amdgpu
    ati
    intel
    nouveau
    qxl
    radeon
    vmware
    modesetting
    fbdev
    vesa
(++) Using config file: "/root/xorg.conf.new"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(II) AMDGPU(0): [KMS] Kernel modesetting enabled.
Number of created screens does not match number of detected devices.
  Configuration failed.
(EE) Server terminated with error (2). Closing log file.

ファイルがありません/etc/X11/xorg.conf。興味深いことに、/etc/X11/xorg.conf次の内容のファイルを作成すると、

Section "ServerLayout"
    Identifier "Layout0"
    Option "AutoAddGPU" "false"
    Screen 0 "IntelScreen"
EndSection

Section "Device"
    Identifier "IntelDevice"
    BusID "PCI:0:2:0"
    Driver "intel" # or maybe "modesetting"?
EndSection

Section "Screen"
    Identifier "IntelScreen"
    Device "IntelDevice"
EndSection

その後、外部モニターは検出されなくなりますが、ラップトップの画面は動作し、xserver によって検出されます。

外部モニターが動作するには NVIDIA ドライバーが必要で、ラップトップ スクリーンが動作するには NVIDIA 以外のドライバーが必要であるような気がしますが、それを実現する方法がわかりません。

また、以下の内容も役に立つかもしれませ/root/xorg.conf.new

Section "ServerLayout"
    Identifier     "X.org Configured"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
    ModulePath   "/usr/lib/xorg/modules"
    FontPath     "/usr/share/fonts/X11/misc"
    FontPath     "/usr/share/fonts/X11/cyrillic"
    FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
    FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
    FontPath     "/usr/share/fonts/X11/Type1"
    FontPath     "/usr/share/fonts/X11/100dpi"
    FontPath     "/usr/share/fonts/X11/75dpi"
    FontPath     "built-ins"
EndSection

Section "Module"
    Load  "glx"
EndSection

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
EndSection

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option      "Protocol" "auto"
    Option      "Device" "/dev/input/mice"
    Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
    Identifier   "Monitor0"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection

Section "Monitor"
    Identifier   "Monitor1"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "Accel"                 # [<bool>]
        #Option     "SWcursor"              # [<bool>]
        #Option     "EnablePageFlip"        # [<bool>]
        #Option     "SubPixelOrder"         # [<str>]
        #Option     "ZaphodHeads"           # <str>
        #Option     "AccelMethod"           # <str>
        #Option     "DRI3"                  # [<bool>]
        #Option     "DRI"                   # <i>
        #Option     "ShadowPrimary"         # [<bool>]
        #Option     "TearFree"              # [<bool>]
        #Option     "DeleteUnusedDP12Displays"  # [<bool>]
        #Option     "VariableRefresh"       # [<bool>]
        #Option     "AsyncFlipSecondaries"  # [<bool>]
    Identifier  "Card0"
    Driver      "amdgpu"
    BusID       "PCI:5:0:0"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "SWcursor"              # [<bool>]
        #Option     "HWcursor"              # [<bool>]
        #Option     "NoAccel"               # [<bool>]
        #Option     "ShadowFB"              # [<bool>]
        #Option     "VideoKey"              # <i>
        #Option     "WrappedFB"             # [<bool>]
        #Option     "GLXVBlank"             # [<bool>]
        #Option     "ZaphodHeads"           # <str>
        #Option     "PageFlip"              # [<bool>]
        #Option     "SwapLimit"             # <i>
        #Option     "AsyncUTSDFS"           # [<bool>]
        #Option     "AccelMethod"           # <str>
        #Option     "DRI"                   # <i>
    Identifier  "Card1"
    Driver      "nouveau"
    BusID       "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
    SubSection "Display"
        Viewport   0 0
        Depth     1
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     4
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     8
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     15
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     16
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

Section "Screen"
    Identifier "Screen1"
    Device     "Card1"
    Monitor    "Monitor1"
    SubSection "Display"
        Viewport   0 0
        Depth     1
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     4
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     8
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     15
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     16
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

また、私が実行すると、sudo xrandr2 つの画面しか検出されないようです。

Screen 0: minimum 8 x 8, current 4000 x 2560, maximum 32767 x 32767
DP-0 connected primary 1440x2560+2560+0 left (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+
   2048x1080     60.00    24.00  
   1920x1080     60.00    59.94    50.00  
   1600x1200     60.00  
   1280x1024     75.02    60.02  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+
   2048x1080     60.00    24.00  
   1920x1080     60.00    59.94    50.00  
   1600x1200     60.00  
   1280x1024     75.02    60.02  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DP-4 disconnected (normal left inverted right x axis y axis)

あらゆる助けに大いに感謝します。

答え1

わかりました。私の Dell 外部モニターは NVIDIA グラフィック カードでのみ動作しますが、ラップトップの内蔵モニターは NVIDIA グラフィック カードなしでのみ動作するようです。

何が問題を解決したのかはわかりません。しかし、次の 3 つのことを行ったところ、問題は解決しました。

まず、私のドライバーはブラックリストに登録されていたようだったamdgpuので、次のようにブラックリストから外す必要がありました。

sudo rm /etc/modprobe.d/blacklist-amdgpu.conf

次に、NVIDIA カードを使用していることを確認する必要がありました。

sudo prime-select on-demand 

次に、nvidia cuda ツールキットもインストールしました。

sudo apt install nvidia-cuda-toolkit 

(理由は分かりませんし、必要だったかどうかも分かりません)。

/root/xorg.conf.new変更されていないように見えますが、 の出力にsudo lshw -C displayはもうありませんUNCLAIMED:

  *-display                 
       description: VGA compatible controller
       product: GA106M [GeForce RTX 3060 Mobile / Max-Q]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       logical name: /dev/fb0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom fb
       configuration: depth=32 driver=nvidia latency=0 mode=1920x1080 visual=truecolor xres=1920 yres=1080
       resources: iomemory:fa0-f9f iomemory:fc0-fbf irq:77 memory:d0000000-d0ffffff memory:fa00000000-fbffffffff memory:fc00000000-fc01ffffff ioport:3000(size=128) memory:d1080000-d10fffff
  *-display
       description: VGA compatible controller
       product: Cezanne
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 0
       bus info: pci@0000:05:00.0
       logical name: /dev/fb0
       version: c6
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi msix vga_controller bus_master cap_list fb
       configuration: depth=32 driver=amdgpu latency=0 resolution=1920,1080
       resources: iomemory:fc0-fbf iomemory:fc0-fbf irq:49 memory:fc10000000-fc1fffffff memory:fc20000000-fc201fffff ioport:1000(size=256) memory:d1500000-d157ffff

他に必要だったかもしれないものは以下のとおりです。

  1. 次の操作を約 50 万回実行します。
sudo apt purge 'nvidia*' 
sudo ubuntu-drivers autoinstall 

実行後に(ではなく)/lib/modprobe.d/nvidia-kms.conf に編集するoptions nvidia-drm modeset=01sudo prime-select nvidia/intel/on-demand

3)

amdgpuドライバがインストールされ、/etc/modulesまたはとして echo radeon > /etc/modules追加 されるようにしますecho amdgpu > /etc/modules

関連する問題:

Ubuntu 20.04 は 2 番目のモニターを認識しません

https://www.dell.com/community/Precision-Mobile-Workstations/Precision-7530-built-in-monitor-not-active-when-external/td-p/7690156

https://www.reddit.com/r/Dell/comments/o6ivru/problem_with_dell_g15_ryzen_edition_when_running/

関連情報