Connecting to external HDMI produces black screen in X

I’ve just been given a new work laptop. It’s a Dell M4800 with an ATI graphics card, using 64-bit 13.1 and the fglrx drivers. I have three screen configurations that I want to use:

  1. The laptop display
  2. A docking station connected to a DVI 1920x1080 and a VGA 1280x1024 monitor pair
  3. A 1920x1080 monitor connected to an Aten CS 1972 HDMI KVM

1 & 2 seem to be fine (though I’m going to have to check 2 again once I get back to work after all the fiddling)
3 is turning out to be a problem

If I boot with the laptop lid closed, I can see the boot on the monitor until X starts, at which point the screen goes black

If I boot stand alone and then plug the HDMI cable in, the laptop screen goes black and the monitor is also black. If I switch to a console using Alt-Ctrl-F1 then the monitor shows the console just fine. When I unplug the HDMI cable, the laptop screen switches on again.

This setup has worked fine with my old laptop (with an nvidia card) in the past.

The tail of /var/log/Xorg.log.0 when I plug the HDMI cable in is shown below. So the monitor is being detected.

Does anyone have any suggestions as to what is going on?

4585.272] (II) fglrx(0): Hot-plug event occurs on device: 1:0:0
4586.266] (II) fglrx(0): EDID vendor “CMN”, prod id 5553
4586.266] (II) fglrx(0): Printing DDC gathered Modelines:
4586.266] (II) fglrx(0): Modeline "1920x1080"x0.0 152.54 1920 2010 2070 2226 1080 1086 1095 1142 +hsync -vsync (68.5 kHz eP)
4586.266] (II) fglrx(0): Modeline "1920x1080"x0.0 96.27 1920 1973 2008 2158 1080 1083 1088 1115 +hsync -vsync (44.6 kHz e)
4586.283] (II) fglrx(0): xdl_xs114_atiddxDisplayScreenEnableDisplays
4586.440] (II) fglrx(0): EDID vendor “CMN”, prod id 5553
4586.440] (II) fglrx(0): Printing DDC gathered Modelines:
4586.440] (II) fglrx(0): Modeline "1920x1080"x0.0 152.54 1920 2010 2070 2226 1080 1086 1095 1142 +hsync -vsync (68.5 kHz eP)
4586.440] (II) fglrx(0): Modeline "1920x1080"x0.0 96.27 1920 1973 2008 2158 1080 1083 1088 1115 +hsync -vsync (44.6 kHz e)
4586.492] (II) fglrx(0): EDID vendor “CMN”, prod id 5553
4586.492] (II) fglrx(0): Printing DDC gathered Modelines:
4586.492] (II) fglrx(0): Modeline "1920x1080"x0.0 152.54 1920 2010 2070 2226 1080 1086 1095 1142 +hsync -vsync (68.5 kHz eP)
4586.492] (II) fglrx(0): Modeline "1920x1080"x0.0 96.27 1920 1973 2008 2158 1080 1083 1088 1115 +hsync -vsync (44.6 kHz e)
4587.665] (II) fglrx(0): EDID vendor “CMN”, prod id 5553
4587.665] (II) fglrx(0): Printing DDC gathered Modelines:
4587.665] (II) fglrx(0): Modeline "1920x1080"x0.0 152.54 1920 2010 2070 2226 1080 1086 1095 1142 +hsync -vsync (68.5 kHz eP)
4587.665] (II) fglrx(0): Modeline "1920x1080"x0.0 96.27 1920 1973 2008 2158 1080 1083 1088 1115 +hsync -vsync (44.6 kHz e)
4587.682] (II) fglrx(0): xdl_xs114_atiddxDisplayScreenEnableDisplays
4587.785] (II) fglrx(0): EDID vendor “SAM”, prod id 1605
4587.785] (II) fglrx(0): Using hsync ranges from config file
4587.785] (II) fglrx(0): Using vrefresh ranges from config file
4587.785] (II) fglrx(0): Printing DDC gathered Modelines:
4587.785] (II) fglrx(0): Modeline "1920x1080"x0.0 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
4587.785] (II) fglrx(0): Modeline "1920x1080"x0.0 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync (56.2 kHz e)
4587.785] (II) fglrx(0): Modeline "1280x720"x0.0 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync (45.0 kHz e)
4587.785] (II) fglrx(0): Modeline "1280x720"x0.0 74.25 1280 1720 1760 1980 720 725 730 750 +hsync +vsync (37.5 kHz e)
4587.785] (II) fglrx(0): Modeline "720x576"x0.0 27.00 720 732 796 864 576 581 586 625 -hsync -vsync (31.2 kHz e)
4587.785] (II) fglrx(0): Modeline "720x480"x0.0 27.00 720 736 798 858 480 489 495 525 -hsync -vsync (31.5 kHz e)
4587.785] (II) fglrx(0): Modeline "800x600"x0.0 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz e)
4587.785] (II) fglrx(0): Modeline "800x600"x0.0 36.00 800 824 896 1024 600 601 603 625 +hsync +vsync (35.2 kHz e)
4587.785] (II) fglrx(0): Modeline "640x480"x0.0 31.50 640 656 720 840 480 481 484 500 -hsync -vsync (37.5 kHz e)
4587.785] (II) fglrx(0): Modeline "640x480"x0.0 31.50 640 664 704 832 480 489 492 520 -hsync -vsync (37.9 kHz e)
4587.785] (II) fglrx(0): Modeline "640x480"x0.0 30.24 640 704 768 864 480 483 486 525 -hsync -vsync (35.0 kHz e)
4587.785] (II) fglrx(0): Modeline "640x480"x0.0 25.18 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e)
4587.785] (II) fglrx(0): Modeline "720x400"x0.0 28.32 720 738 846 900 400 412 414 449 -hsync +vsync (31.5 kHz e)
4587.785] (II) fglrx(0): Modeline "1280x1024"x0.0 135.00 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
4587.785] (II) fglrx(0): Modeline "1024x768"x0.0 78.75 1024 1040 1136 1312 768 769 772 800 +hsync +vsync (60.0 kHz e)
4587.785] (II) fglrx(0): Modeline "1024x768"x0.0 75.00 1024 1048 1184 1328 768 771 777 806 -hsync -vsync (56.5 kHz e)
4587.785] (II) fglrx(0): Modeline "1024x768"x0.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz e)
4587.785] (II) fglrx(0): Modeline "832x624"x0.0 57.28 832 864 928 1152 624 625 628 667 -hsync -vsync (49.7 kHz e)
4587.785] (II) fglrx(0): Modeline "800x600"x0.0 49.50 800 816 896 1056 600 601 604 625 +hsync +vsync (46.9 kHz e)
4587.785] (II) fglrx(0): Modeline "800x600"x0.0 50.00 800 856 976 1040 600 637 643 666 +hsync +vsync (48.1 kHz e)
4587.785] (II) fglrx(0): Modeline "1152x864"x0.0 108.00 1152 1216 1344 1600 864 865 868 900 +hsync +vsync (67.5 kHz e)
4587.785] (II) fglrx(0): Modeline "1280x800"x0.0 71.00 1280 1328 1360 1440 800 803 809 823 +hsync -vsync (49.3 kHz e)
4587.785] (II) fglrx(0): Modeline "1280x960"x0.0 108.00 1280 1376 1488 1800 960 961 964 1000 +hsync +vsync (60.0 kHz e)
4587.785] (II) fglrx(0): Modeline "1280x1024"x0.0 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
4587.785] (II) fglrx(0): Modeline "1440x900"x0.0 88.75 1440 1488 1520 1600 900 903 909 926 +hsync -vsync (55.5 kHz e)
4587.785] (II) fglrx(0): Modeline "1600x1200"x0.0 162.00 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync (75.0 kHz e)
4587.785] (II) fglrx(0): Modeline "1680x1050"x0.0 119.00 1680 1728 1760 1840 1050 1053 1059 1080 +hsync -vsync (64.7 kHz e)
4587.785] (II) fglrx(0): Modeline "1440x900"x0.0 136.75 1440 1536 1688 1936 900 903 909 942 -hsync +vsync (70.6 kHz e)
4606.676] (II) fglrx(0): Hot-plug event occurs on device: 1:0:0
4606.760] (II) fglrx(0): xdl_xs114_atiddxDisplayScreenEnableDisplays
4606.834] (II) fglrx(0): EDID vendor “CMN”, prod id 5553
4606.834] (II) fglrx(0): Printing DDC gathered Modelines:
4606.834] (II) fglrx(0): Modeline "1920x1080"x0.0 152.54 1920 2010 2070 2226 1080 1086 1095 1142 +hsync -vsync (68.5 kHz eP)
4606.834] (II) fglrx(0): Modeline "1920x1080"x0.0 96.27 1920 1973 2008 2158 1080 1083 1088 1115 +hsync -vsync (44.6 kHz e)
4606.922] (II) fglrx(0): EDID vendor “CMN”, prod id 5553
4606.922] (II) fglrx(0): Printing DDC gathered Modelines:
4606.922] (II) fglrx(0): Modeline "1920x1080"x0.0 152.54 1920 2010 2070 2226 1080 1086 1095 1142 +hsync -vsync (68.5 kHz eP)
4606.922] (II) fglrx(0): Modeline "1920x1080"x0.0 96.27 1920 1973 2008 2158 1080 1083 1088 1115 +hsync -vsync (44.6 kHz e)

Further information: The KVM doesn’t seem to be an issue, since bypassing it produces the same behaviour. I can work around it by plugging the VGA port of the monitor in, then attaching the HDMI port and USB of the KVM, so that I can use the keyboard and mouse and then manually switching over to analogue video. So it’s a work-around but I’d really like to know why the HDMI port is misbehaving.

Next attempt to do something useful. I acquired the EDID of the Samsung monitor using the nvidia configuration utility on the other system on the KVM. I then put it in /etc/ati/DFP9.edid My Xorg.0.log shows the EDID being loaded (multiple times for some reason) but still no joy.

I would look into installing “synergy” which specializes with hdmi and multiple monitors from http://synergy-project.org/

Synergy is meant to be a KVM-switch replacement, enabling you to control multiple machines and allows hdmi to work with Optimus graphics.

From Gentoo wiki http://wiki.gentoo.org/wiki/NVIDIA_Optimus_and_HDMI_Output_Configuration

Synergy also lets you easily share a single mouse and keyboard between multiple computers with different operating systems, each with its own display, without special hardware.
It’s intended for users with multiple computers on their desk since each system uses its own display. Redirecting the mouse and keyboard is as simple as moving the mouse off the edge of your screen.

Synergy also merges the clipboards of all the systems into one, allowing cut-and-paste between systems.
Furthermore, it synchronizes screen savers so they all start and stop together and, if screen locking is enabled, only one screen requires a password to unlock them all.

You can find a copy by adding this openSUSE repository to Yast:http://download.opensuse.org/repositories/X11:/Utilities/openSUSE_13.1/

Thanks for the reply. As far as I can tell Synergy doesn’t quite do what I want it to, since I want to plug the laptop into a nice monitor as well.

Unfortunately, the laptop has an ATI graphics card, so I doubt bumblebee would help.

There is a bumblebee-amd repository for ATI cards.
**
Description**
This is a rewrite of the original bumblebee service. It provides support of switchable graphics for AMD laptops (analogue to optimus from NVidia)
Follow this link for information:http://software.opensuse.org/package/bumblebee-amd?search_term=bumblebee-amd

At least for now HDMI doesn’t work with Optimus hybrid graphics chipsets under Linux for most laptops, even if you use Bumblebee. The only way to get HDMI to work is by using a separate session.
This is why the “synergy” package is recommended on many Linux websites on the Internet.

See Ubuntu: nvidia - Run Unity on external monitor with Bumblebee - Ask Ubuntu

And: Get HDMI Working With Nvidia Optimus On Ubuntu By Using Bumblebee And Synergy ~ Web Upd8: Ubuntu / Linux blog

Follow up to Bumblebee-amd

This is a link with tips on how to setup bumblebee on AMD graphics
including configuration files:: bumblebee-amd-hacks/README.md at master · YoRyan/bumblebee-amd-hacks · GitHub

I contacted the author and have include his response below:

Open source drivers are in much better state
compared to closed source: VDPAU, DRI_PRIME, dpm etc.
It is better to use them.
If it is impossible I would recommend to stick to fglrx’s internal
mechanism of switching active GPU by means of Catalyst Control Center
with subsequent reboot. In this case external monitors are handled
by the appropriate driver.

As far as the hdmi. This could be an issue with framebuffer device drivers and their video modes. I would recommend updating your kernel to the latest version (3.15x).

Stable kernel 3.15x: http://download.opensuse.org/repositories/Kernel:/stable/standard/
Kernel HEAD latest kernel: http://download.opensuse.org/repositories/Kernel:/HEAD/standard/

To specify a video mode at bootup, use the following boot options:

video=<driver>:<xres>x<yres>-<bpp>]@refresh]

Or:

video=HDMI-A-1:1920x1080@60

For audio via HDMI add this to boot options:

radeon.audio=1

For your reference http://bit.ly/1v5aD35

It looks like the reason the screen went black is that backlight was dimmed to black.

To resolve this follow the step below. Another Dell 4800 user created a blog about how issues were resolved on Fedora 20. Thanks to celeron55 at ref: http://c55.me/blog/?p=1572

**ACPI
**Add the kernel parameter acpi_backlight=vendor to the kernel boot options. This will change the namings and details in /sys/class/backlight, and added the following into /etc/X11/xorg.conf.d/10-device.conf:

Section "Device"    
    Identifier "Haswell Integrated Graphics"
    Driver "intel"
    Option "Backlight" "intel_backlight"
EndSection

Thanks for all the effort. I installed the radeon driver and started playing with newer kernels and bumblebee-amd but the results were too unstable; a tendency for X to crash when certain programs were started. Backing out from the kernel and bumblebee, the cleaned up radeon driver seems to be handling the HDMI port correctly. It’s not exactly fantastic on the 3D front (30 FPS for stellarium/google earth as opposed to 200 FPS under fglrx) but it’s acceptable for what I want to do.

For some reason, 2D graphics seems to cause quite a processor hit on the dual-monitor configuration. You can see the CPU load go up when I’m running ksysguard with a system load graph as opposed to a process tree. That’s for further investigation, later, though.

The open-source radeon driver is certainly a work in progress.
Apparently using the latest Radeon driver in conjunction with kernel 3.16 and higher will allow users to use the Catalyst Control Panel to set up the driver without the need of bumblebee.
By the time openSUSE 13.2 is released in November 2014 we should see this working with kernel 3.17 or higher.

Please see this link to Archwiki https://wiki.archlinux.org/index.php/ATI about fixing some 2D issues, performance tuning and more.