Laptop screen blank after login when external monitor is not connected

17,404

Solution 1

To issue X commands from vt1, you need to specify the display. E.g.:

DISPLAY=:0 xrandr --auto

The monitors.xml config file is what GNOME uses to set up your multihead layout, however it's unlikely to be the source of your trouble. Theoretically deleting it and rebooting would force GNOME to go back to its defaults, if it was a bug in the GNOME config tool.

/etc/X11/xorg.conf is what X uses to configure itself. With your Intel HD graphics system you shouldn't need an xorg.conf at all; if there is one present, you can try deleting it and rebooting. But I don't think that's the source of your trouble either.

I don't think your .dmrc is relevant. You could test going into a guest session and see if you can reproduce it there; if you can then it's not going to be any of your user config files.

Beyond that, there's a variety of things that can cause this, but without seeing some logs or more test results it's hard to guess what it could be.

With Intel video cards, only two of your outputs can be live at one time. Especially with these newer systems they have a lot more than two possible outputs (HDMI, DVI, VGA, LVDS, ...) and there are various ways the linux kernel can get confused and hook up to the wrong thing. Sometimes it's a bit of a race condition what outputs get enabled. Some of the outputs that the video card is capable of aren't even hooked up to a physical port on your computer.

If the system were in front of me, the things I'd start looking at would be xrandr to see what possible outputs were present and what ones X thinks are connected. Next I'd enable graphics debugging (sudo xdiagnose, first option), and then reboot and study dmesg from with and without the problem to see how the kernel was picking which outputs to turn on.

Hopefully that gets you on a productive path. Blank screen bugs can be caused by a lot of different things and it's hard to diagnose it merely based on symptoms, but the above steps should get you far enough into the problem that it'll become diagnosable.

Solution 2

Refresh your monitor config using the xrandr command line tool:

xrandr --auto

According to xrandr manpage, this will enable all screens that are connected but not displayed; and it will disable all screens that are 'enabled' but not actually connected.

For me, my laptop screen didn't wake up after sleep. My dual monitor was literally half awake. When I tried to open settings manager, it opened on my sleeping laptop screen, so was not visible. Fortunately, I was able to open terminal using a keyboard shortcut, and this displayed where I could see it, on the half-awake dual monitor. xrandr --auto restored the screens to their prior state.

Solution 3

on Xubuntu 13.10 the file you want to delete is ~/.config/xfce/xfconf/xfce-perchannel-xml/displays.xml have a look for a similar file on your distribution. maybe it is named monitors.xml

Share:
17,404

Related videos on Youtube

Ramon Suarez
Author by

Ramon Suarez

Coworking, entrepreneurship, learning to code; Betacowork Coworking Brussels founder; The Coworking Handbook author; startups.be founder; chocolate ambassador; Brussels lover. My Twitter account is @ramonsuarez

Updated on September 18, 2022

Comments

  • Ramon Suarez
    Ramon Suarez over 1 year

    Ubuntu does not switch back automatically to only monitor present when booting after disconnecting external monitor.

    Here's a video showing what happens. I get to the login window and everything looks ok, then I type my password, the desktop image shows up and... everything goes blank. It does not happen when I just login as a guest.

    When possible I work with my laptop connected to an external screen via the VGA port. The problem comes when I boot the computer without that secondary screen connected:

    • The login screen comes out ok.
    • After login the screen goes black, but I can hear the login sound.
    • If I hit ctr + alt + backwards-delete and login again sometimes it is fixed, but not all.
    • If I log in as a different user everything is OK. Then I log in as my user and sometimes it works.

    To have a screen I have to plug a monitor. Although I have turned on the laptop display with that monitor on, if I reboot it goes blank again after login, even if I turn off the external monitor before turning off the computer.

    I've managed to get my screen back with my username after going into recovery mode, but only sometimes. Failsafe would not load after second screen asking me what I wanted to do (no mouse to click nor keyboard working).

    My computer is a LDLC Aurore BB1-i5 -8 -S1.

    Which is the configuration file that keeps the information about the monitors using Displays under lightgdm and where is it? I guess if I could edit it I may have a chance :)

    One of the things I tried following a solution in another post was removing my monitors.xml file, but it does not work and I don't know how to create a good one that I could use now.

    When doing DISPLAY=:0 xrandrI get:

    Screen 0: minimum 320 x 200, current 320 x 200, maximum 8192 x 8192
    LVDS1 connected (normal left inverted right x axis y axis)
       1366x768       60.0 +
       1360x768       59.8     60.0  
       1024x768       60.0  
       800x600        60.3     56.2  
       640x480        59.9  
    VGA1 disconnected (normal left inverted right x axis y axis)
    HDMI1 disconnected (normal left inverted right x axis y axis)
    DP1 disconnected (normal left inverted right x axis y axis)
    

    This is the full dmesg after activating sudo xdiagnoseas Bryce sugested. (If you tell me the relevant parts I will paste them here)

    When conecting the external monitor, only the external will work, although I can see using Displays that the computer thinks that both are working.

    I've asked the question in Launchpad but have it keeps on expiring without any feedback. In my opinion Ubuntu should be able to detect automatically that there is no external monitor present and switch to the laptop monitor.

    There's a similar question here, but it does not apply to my case External monitor set as primary even when disconnected from laptop

    Update: For clarification, the problem happens only with my user and once I log in. I even get to see the screensaver for about a second, and then it goes blank. Tried Bryce's example (see his answer below), but it did not work. This is the info I get from tty1 with Display=:0 xrandr: – Ramon Suarez Jul 9 at 16:36

    Screen 0: minimum 320 x 200, current 320 x 200, maximum 8192 x 8192 LVDS1 connected (normal left inverted right x axis y axis) 1366x768 60.0 + 1360x768 59.8 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis) HDMI1 disconnected (normal left inverted right x axis y axis) DP1 disconnected (normal left inverted right x axis y axis)
    
    • Admin
      Admin almost 12 years
      I'm currently exploring a possible solution thanks to a tip from jokerdino: How do I reset GNOME to the defaults?. The problem is that some of the requested folders (metacity and gnome) don't exist.
    • Admin
      Admin almost 12 years
      That did not work :( Another folder missing was .dmrc. Also 'unity --reset' did not work: in fact I launched from the tty1 and my computer froze when I went to tty7 using ctr+alt+f7
    • Admin
      Admin almost 12 years
      Does your laptop overheats when this happen?
    • Admin
      Admin almost 12 years
      The freeze? Not that I can recall. I did a hard reboot after a while (yes, I forgot to do REISUB), and don't really want to do that too often ;)
    • Admin
      Admin almost 12 years
      I just had an idea: what if I create a new user and dig the settings from there? Will try as soon as I'm back at my coworking office :)
  • Ramon Suarez
    Ramon Suarez almost 12 years
    Thank you Bryce. Will try on Monday when I get back to the office where my laptop is at. I guess that the display number for the gui in ctrl+alt+f7 is DISPLAY=:7
  • Bryce
    Bryce almost 12 years
    That would make sense but no, it should be just "DISPLAY=:0". It's possible to run more than one X-server at the same time, in which case each would have a different DISPLAY number for each server. But when you're running just one, as you do in an ordinary desktop, it's just display number 0, so DISPLAY=:0.
  • Ramon Suarez
    Ramon Suarez almost 12 years
    Thanks Bryce. I really liked the "That would make sense but no" :)
  • Ramon Suarez
    Ramon Suarez almost 12 years
    Hi Bryce. I have not had the time to test it yet. Will get back to you in a couple weeks. Leaving for my summer break right now ! (with another laptop, of course)
  • Ramon Suarez
    Ramon Suarez almost 12 years
    Hi Bryce, I'm back from my summer break. Just to be clear, the problem happens only with my user and once I log in. I even get to see the screensaver for about a second, and then it goes blank. Tried your example, but it did not work. This is the info I get from tty1 with Display=:0 xrandr:
  • Ramon Suarez
    Ramon Suarez almost 12 years
    Screen 0: minimum 320 x 200, current 320 x 200, maximum 8192 x 8192 LVDS1 connected (normal left inverted right x axis y axis) 1366x768 60.0 + 1360x768 59.8 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis) HDMI1 disconnected (normal left inverted right x axis y axis) DP1 disconnected (normal left inverted right x axis y axis)
  • Ramon Suarez
    Ramon Suarez over 11 years
    It does not work for me :(