Xserver detecta mis monitores externos pero no el monitor integrado de mi computadora portátil

Xserver detecta mis monitores externos pero no el monitor integrado de mi computadora portátil

Tengo una lenovo legion 5 con ubuntu 22.04 (tuve el mismo problema con Ubuntu 20.04 y esperaba que la actualización a 22.04 solucionara el problema, pero no fue así). 2 monitores externos y la pantalla del portátil.

Con gnomo.

Cuando inicio mi computadora, los monitores externos están inactivos hasta que el inicio alcanza el inicio de sesión de gnome (es decir, hasta el servidor X), luego el monitor de la computadora portátil permanece bloqueado mientras la pantalla de inicio de sesión dice "Presione Ctrl+c para cancelar todas las comprobaciones del sistema de archivos en curso" y los monitores externos se detectan y muestran gnome.

Si presiono ctrl+alt+F3 para obtener un terminal, aparece en la pantalla de mi computadora portátil, y cuando vuelvo al servidor X con ctrl+alt+F1, aparecen en monitores externos.

Tengo una tarjeta gráfica/gpu amd y nvida:

sudo lshw -C display da

  *-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


Curiosamente, cuando lo hago sudo X -configure obtengo

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.

No tengo un /etc/X11/xorg.confarchivo. Curiosamente si creo un /etc/X11/xorg.confarchivo con el siguiente contenido:

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

Entonces los monitores externos ya no se detectan, pero la pantalla del portátil funciona y el xserver la detecta.

De alguna manera tengo la sensación de que los monitores externos necesitan el controlador nvidia para funcionar y la pantalla del portátil necesita un controlador que no sea nvidia para funcionar, pero no sé cómo hacer que eso suceda.

También puede ser útil el contenido /root/xorg.conf.newde

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

Además, cuando lo hago, sudo xrandrparece que solo detecta 2 pantallas:

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)

Toda ayuda es muy apreciada.

Respuesta1

De acuerdo. Entonces parecía que mis monitores externos Dell solo funcionan con la tarjeta gráfica NVIDIA, pero el monitor de mi computadora portátil incorporado solo funciona SIN la tarjeta gráfica NVIDIA.

No estoy seguro de qué resolvió el problema. Pero hice las siguientes tres cosas y ahora el problema está resuelto.

Primero, parecía que mis amdgpucontroladores estaban en la lista negra, por lo que necesitaba quitarlos de la lista negra de la siguiente manera

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

Luego necesitaba asegurarme de que estaba usando la tarjeta NVIDIA:

sudo prime-select on-demand 

Luego también instalé el kit de herramientas nvidia cuda:

sudo apt install nvidia-cuda-toolkit 

(No sé por qué y no sé si era necesario).

/root/xorg.conf.newparece sin cambios, pero la salida de ya sudo lshw -C displayno tiene 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

Otras cosas que podrían haber sido necesarias incluyen:

  1. haciendo lo siguiente aproximadamente medio millón de veces:
sudo apt purge 'nvidia*' 
sudo ubuntu-drivers autoinstall 

Editar /lib/modprobe.d/nvidia-kms.conf para ser options nvidia-drm modeset=0(en lugar de 1) después de hacerlosudo prime-select nvidia/intel/on-demand

3)

Instalar los controladores amdgpu y agregarlos /etc/modulescomo uno echo radeon > /etc/moduleso echo amdgpu > /etc/modules

Asuntos relacionados:

Ubuntu 20.04 no reconoce el segundo monitor

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/

información relacionada