13

So, for a bit of background: I'm using Ubuntu 18.04 on an HP laptop, which uses a dual GPU setup. Before, I have been using it with just the Nouveau driver, but recently I wanted to add in a second monitor so I switched to the proprietary Nvidia driver 390.77 (which was something of an odyssey in itself).

Now the issue is that while the secondary monitor (connected through HDMI) works fine, the primary built-in laptop screen does not. During the boot-sequence, everything is displayed as normal on the laptop screen, including the grub menu and the startup log.

But the moment the log reaches "Started User Manager for UID 120" (at which point presumably the graphics driver is started up), the laptop screen freezes there and all further output is displayed on the secondary monitor. The Ubuntu display settings only recognize a single display (the external monitor), as does nvidia-settings.

What might be noteworthy is that I'm dual-booting this system together with Windows 10, and under Windows this issue doesn't happen, both displays work just fine and like you'd expect over there.

Now, my personal suspicion is that it might have something to do with the dual GPUs, in that the Intel one usually outputs to the laptop screen and the Nvidia one to the HDMI port, but I'm not certain.

I have tried to use the Intel GPU instead, via sudo prime-select intel, but in that case the Nvidia driver didn't load at all, and I could only use the primary laptop screen while the external monitor wasn't recognized (i.e. similar to the behaviour under Nouveau). Additionally, this lead to a very low resolution that could only be circumvented by manually adding a new mode via xrandr.

As for some possibly relevant data, here's the output of lswh -C video:

  *-display                 
   description: VGA compatible controller
   product: GP107M [GeForce GTX 1050 Ti Mobile]
   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: irq:142 memory:b3000000-b3ffffff memory:a0000000-afffffff memory:b0000000-b1ffffff ioport:4000(size=128) memory:b4000000-b407ffff
*-display
   description: VGA compatible controller
   product: Intel Corporation
   vendor: Intel Corporation
   physical id: 2
   bus info: pci@0000:00:02.0
   version: 04
   width: 64 bits
   clock: 33MHz
   capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
   configuration: driver=i915 latency=0
   resources: irq:141 memory:b2000000-b2ffffff memory:c0000000-cfffffff ioport:5000(size=64) memory:c0000-dffff

And here's xrandr. Noteworthy here is that the usual name of the laptop's display, eDP-1, is not even listed here:

Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
HDMI-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 598mm x 336mm
  1920x1080     60.00*+  59.94    50.00    50.00  
  1680x1050     59.95  
  1600x900      60.00  
  1440x900      59.89  
  1280x1024     60.02  
  1280x800      59.81  
  1280x720      60.00    59.94    50.00  
  1024x768      60.00  
  800x600       60.32  
  720x576       50.00  
  720x480       59.94  
  640x480       59.94 

Finally, here's xorg.conf:

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 390.77  (buildmeister@swio-display-x64-rhel04-14)  Tue Jul 10 23:19:22 PDT 2018


Section "ServerLayout"
Identifier     "Layout0"
Screen      0  "Screen0" 0 0
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"
HorizSync       28.0 - 33.0
VertRefresh     43.0 - 72.0
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
Hoshi
  • 131

6 Answers6

18

Some similar thing happened to me. It turned out that it was caused by something in the /etc/X11/xorg.conf file. Luckily, there was a default nvidia config file I could use.

This solved my problem:

cd /etc/X11
sudo rm xorg.conf
sudo cp xorg.conf.nvidia-xconfig-original xorg.conf
reboot
zx485
  • 2,426
  • Heyy... I was facing this same problem and thankfully this answer I solved the problem in my ubuntu 22.04; Thank you very much – Leonardo Ferreira Sep 10 '22 at 15:39
  • As serdarhakan mentioned, i deleted /etc/X11/xorg.conf and added a new empty one instead. It worked for me on my laptop GS65-Stealth-9SE with rtx 2060 after a reboot, i successfully connected one monitor via hdmi port and one via usb-c port. – BryanDucourt Sep 26 '23 at 06:12
7

Resetting the X11 config file (generated by default by the nvidia-config for 1 monitor only) fixed the same issue for me too:

sudo > /etc/X11/xorg.conf

reboot

Note: this is the same as the solution in the previous comment just because /etc/X11/xorg.conf.nvidia-xconfig-original is empty (zero) file in fact.

Thomas
  • 6,223
Oleg
  • 71
  • 2
    It worked for me using sudo su; echo '' > /etc/X11/xorg.conf; reboot. Thanks. – Alrik Dec 02 '20 at 11:36
  • Careful with this solution, in my case, block my computer. I fix it, entering on recovery mode and removing the file again. – titusfx Oct 11 '22 at 16:23
3

I simply deleted /etc/X11/xorg.conf and /etc/X11/xorg.conf.nvidia-xconfig-original and rebooted. It worked for me!

  • 1
    Could you explain how you arrived at the decision to delete these two configuration files? It will help people better understand the solution. –  Dec 18 '20 at 06:31
  • 1
    My idea was that when restarting the files they would be recreated if they didn't exist. I use Ubuntu 20.04. It worked! – Moisés Filho Dec 19 '20 at 22:14
  • I had a similar problem on Ubuntu 20.04 and tried every solution on this page and all over the internet. Simply deleting the files and restarting immediately did the trick. – ThunderBiggi Aug 29 '21 at 09:45
2

I had the same problem and deleting xorg.conf file haven't solved my issue. In my case, the reason was that my intel device wasn't recognized by xorg and thus my Nvidia server.

Before you move further, I should note that this solution only worked with lightdm (as opposed to gdm) display manager. I cannot figure out why. But nevertheless, I post it here as it might help someone else. Please make sure you switch to lightdm before you try this solution. (See the end of the post).

Modifying xorg.conf to make it recognize solved my problem. So if this file is already deleted, first recreate the xorg.conf by

sudo nvidia-xconfig

then add the following lines at the end of /etc/X11/xorg.conf file


Section "Device"
    Identifier  "intel"
    Driver      "modesetting"
EndSection

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

then restart the computer.

Please note that you can switch your display manager by sudo dpkg-reconfigure gdm (or lightdm) and select the one you would like to use in the dialog. If you run into trouble, you can boot Ubuntu in recovery mode and switch back again.

s0-0s
  • 41
  • 2
0

During my fixing attempts, I ended up launching Ubuntu from a USB stick via "try Ubuntu". As it turned out, in that environment both monitors worked perfectly without needing any further configuration. So I concluded the issue was not necessarily related to any hardware configuration, but rather to some error in my Ubuntu configuration. To that end, the solution turned out to boil down to simply reinstalling Ubuntu wholesale.

The particular steps I took, in case anybody somehow finds themselves in a similar situation:

  1. Backed up my /home/ folder and any important data from the Ubuntu partition.
  2. Booted from an Ubuntu USB drive, selected "Install Ubuntu", and chose "Erase Ubuntu 18.04 and reinstall".
  3. After the installation, the first boot attempt failed due to the graphics hardware issue. I circumvented this by adding "nouveau.modeset=0" to the grub commandline default. This was only needed the one time to boot and was no longer necessary afterwards.
  4. I installed the Nvidia 390.77 drive through Ubuntu's "Additional Drivers" UI.
  5. Rebooted once again, and everything worked!

I still have no idea what might have caused the issue, but it shows once again that when in doubt, you might just want to try flattening your system and reinstalling.

Hoshi
  • 131
0

Just want to share what happen after installing new driver for NVIDIA based on this article https://9to5linux.com/nvidia-440-100-linux-graphics-driver-released-with-support-for-new-gpus

The driver works well, (but because it once failed, i didn't use DKMS option when reinstalling), installation successful but the NVIDIA only detect my external monitor, i remember the driver installation also reconfigure my old xorg.conf file on /etc/X11.

So, the fix was just delete that file or backup to somewhere, and then reboot while your external monitor still connected with your laptop. this will detect your monitors during first boot.