I have installed OpenSuse 12.3 on my Dell Latitude E6320. I installed linux in dual boot with Windows 7 while the laptop was docked in the E-Port replicator docking station. If I enter OpenSuse while the laptop is docked everything works fine. When I’m “undocked” and try and run OpenSuse it boots up and the screen goes blank. I’ve tried setting the docked video settings to match the laptop display’s native settings, but that did not resolve the problem. The laptop is running an Intel HD Graphics 3000 with 64Mb of video memory. The laptop display is set to 1366X768 at 60Htz. Any ideas how I can find out the issue and correct it? I’m stumped because I have no visibility when running outside of the docking station. Any assistance would be most appreciated.
What are you attached to (in particular, display wise) when docked?
What exactly does “OpenSuse it boots up and the screen goes blank” mean? Be descriptive – what all DO you see?
- Do you see Grub at least before blankness falls?
- Do you see the display manager (if you use a login manager) before blanking occurs? Does the blanking happen before or after loggin in?
- Do you see any of your desktop before the laptops screen blanks? And for that matter, what desktop are you using?
- After the screen blanks, what happens if you press Ctrl-Alt-F1?
Thank you for your response. Here is the information that you’ve asked for.
What are you attached to (in particular, display wise) when docked?
I’m connecting to a Dell E-Port Plus docking station using the dual DVI video connections. I’m using a Dell 2007FP 20" LCD monitor and a Dell 1908 19" LCD monitor. When the laptop is running in the docking station I have the both monitors set to 1366X768 resolution. That is the same resolution that the laptop’s clamshell runs at.
Be descriptive: What do you see?
When I boot up the laptop out of the docking station it boots normally. Since it is a dual boot install I get the Grub menu to choose Windows or Linux. After choosing Linux it continues to boot as expected. I get the GUI startup and then login screen. I’m running KDE. After entering my credentials the screen pauses for a moment and then blanks out. I do NOT see any of the desktop before it blanks out. I can hear the startup sound indicating that it has complete loading the desktop. If I press Ctrl-Alt-F1 I receive the openSUSE 12.3 tty1 screen. I can login and shutdown the laptop, but I don’t get to the KDE desktop.
Sorry for not being more descriptive before. I hope that this helps paint a clearer picture and can help figure out what is wrong.
Yes, perfectly – its just the session settings for the active monitors/outputs that is not behaving as desired – similar to this concurrent thread: https://forums.opensuse.org/english/get-technical-help-here/applications/487785-dual-monitor.html
I have a script that I grabbed from else where that should help you in this regard, though I will have to dig up the copy later tonight (as I’m about to head out the door in a couple of minutes). Also see the kscreen related material that I linked to in that other thread, as it shows promise of alleviating this problem.
Okay, its found below. I happened to find this by chance – (while googling/looking for some startup script related info, this hit linked to this, in which the poster Leon provided a link to the script he had created). However, the link to the original source appears to no longer be working. So this is just a copy and paste from what I have on file. I do not remember if I altered anything from when I tested the original … but even if I had, it would have been trivial, so the accreditation is fully “Leon’s”. Glancing at it again, you can see that It makes the assumption that the laptop uses an LVDS output for its built in screen. That would be true for many current and past models, but not so good an assumption going forward (as embedded DisplayPort is being adopted … some of the recent Intel chipsets have dropped LVDS and now make use of eDP). Still, without changing any of the “logic” the script should work for most. In addition, I believe that is old xrandr style enumeration (i.e. LVDS1 vs LVDS-1) but I don’t have a laptop handy to double check right now, but you can do so first (ie. run “xrandr” and see what it provides for output names) and then make any necessary change accordingly.
To use it, you want to make sure that its executable and then link to the script either by way of:
- putting it in the appropriate spot in your Display Manager’s configuration … I use lightdm, which has a specific "[FONT=Liberation Serif][size=2]session-setup-script=[/size]
[/FONT] " setting, but you are very likely using KDM, so you’d want to find such facility in it ( /usr/share/kde4/config/kdm/kdmrc ) or - the script line from ~/.kde4/share/config/krandrrc … or - ~/.profile or
- add the script in the autostart (Kmenu > configure desktop > sys admin > startup and shutdown)…I think that the krandrrc gets run first (so you’d boot up and as soon as KDE launches Kwin, the screen would blank like it is currently) but then the autostart would run and the script should bring the laptop’s internal screen back to life. … and come to think of it, putting it in the DM might end up with a blank screen again (as first the script would run, and then your krandrrc settings would kick in again and revert you back to the blank laptop screen… you’ll have to test that assumption)
#!/usr/bin/env python
import subprocess
import re
import sys
#If invoked without any option, it will dump the state of the outputs,
#showing the existing modes for each of them, with a '+' after the pre-
#ferred mode and a '*' after the current mode.
LAPTOP_SCREEN = "LVDS1"
XRANDR = '/usr/bin/xrandr'
cmd = [XRANDR, '-q']
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
stdoutdata, stderrdata = p.communicate()
matches = re.findall('^([A-Z0-9]*)\sconnected', stdoutdata,
flags=re.MULTILINE | re.DOTALL)
cmd = [XRANDR]
for output in matches:
cmd.append('--output')
cmd.append(output)
# If this is the laptop screen, and we have 2 or more screens:
if output == LAPTOP_SCREEN and len(matches) >= 2:
# Dont' enable the laptop screen
cmd.append('--off')
else:
# Enable it
cmd.append('--auto')
#print re.findall(output+'.*?([0-9]*x[0-9]*)\s*[0-9]{2}\.[0-9]\s\*]\+', stdoutdata, flags=re.DOTALL)
subprocess.Popen(cmd)
Thank you for the script. I appreciate the assistance. I’ll give it a try.