0

I have a lenovo legion 5 with ubuntu 22.04 (I had the same issue with Ubuntu 20.04 and hoped that upgrading to 22.04 would solve the issue but it didn't). 2 external monitors and and the screen of the laptop.

With gnome.

When I boot my computer, the external monitors are inactive until the booting reaches the login of gnome (i.e. until X server) then the laptop monitor stays stuck as the login screen saying "Press ctrl+c to cancel all filesystem checks in progress" and the external monitors are detected and show gnome.

If I press ctrl+alt+F3 to get a terminal, it appear on my laptop screen, and when I get back to X server with ctrl+alt+F1 those appear on external monitors.

I have an amd and an nvida graphics card/gpu:

sudo lshw -C display gives

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

Interestingly, when I do sudo X -configure I get

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.

I do not have a /etc/X11/xorg.conf file. Interestingly if I create an /etc/X11/xorg.conf file with the following contents:

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

Then the external monitors are not detected anymore, but the laptop screen works and is detected by the xserver.

I somehow have the feeling that the external monitors need the nvidia driver to work and the laptop screen need non-nvidia driver to work, but I don't know how to make that happen.

Also maybe useful the contents of /root/xorg.conf.new are

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

Also when I do sudo xrandr it only seems to be detecting 2 screens:

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)

All help very much appreciated.

patapouf_ai
  • 249
  • 3
  • 6

1 Answers1

0

Ok. So it seemed that my Dell external monitors only work with NVIDIA graphics card, but my in-built laptop monitor only works WITHOUT the NVIDIA graphics card.

I'm not sure what solved the problem. But I did the following three things and now the problem is solved.

First, it seemed that my amdgpu drivers were blacklisted, so I needed to unblacklist them as follows

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

Then I needed to make sure that I was using the NVIDIA card:

sudo prime-select on-demand 

Then I also installed the nvidia cuda toolkit:

sudo apt install nvidia-cuda-toolkit 

(I don't know why and I don't know if it was necessary).

/root/xorg.conf.new seems unchanged, but the output of sudo lshw -C display doesn't have UNCLAIMED anymore:

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

Other things which might have been necessary include:

  1. doing the following about half a million times:
sudo apt purge 'nvidia*' 
sudo ubuntu-drivers autoinstall 

Editing /lib/modprobe.d/nvidia-kms.conf to be options nvidia-drm modeset=0 (rather than 1) after doing sudo prime-select nvidia/intel/on-demand

3)

Making the the amdgpu drivers were installed and adding them to /etc/modules as either echo radeon > /etc/modules or echo amdgpu > /etc/modules

Related issues:

Ubuntu 20.04 does not recognize second 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/

patapouf_ai
  • 249
  • 3
  • 6