HDMI Monitor Problem & Fix

The recent warm weather had made using my 3 monitor configuration a little uncomfortable. To make things a little more bearable I decided to turn off two of the monitors to reduce the amount of heat output into the room. I disabled the monitors using the display settings in Gnome 3.28. All was working well.

Today I attempted to re-enable the screens and here a problem arose. Whilst my DVI connected monitor powered up correctly and could be managed in display settings, the HDMI connected monitor could not. The HDMI cable was exchanged and the monitor confirmed to be working by connecting to a laptop. I had begun to suspect a faulty HDMI port on the graphics card. No amount of powering down and rebooting would solve the issue. However the monitor would display the BIOS screens and boot process up to and including the login manager. The only point at which it would fail to display anything was upon logging into Gnome.

Some research pointed to a monitors.xml file. This can be found in the users home directory ~/.config/monitors.xml. Opening this in a text editor and reviewing the contents showed that it had become corrupted. It showed monitors connected multiple times to different inputs. In the past some of this information would have been correct, but as my monitor connections have changed the file had not been kept up to date.

I removed the file, since it gets automatically regenerated, then logged out of my session. On logging back in my HDMI monitor became enabled again and working alongside the others. I was then able to tweak the display settings to have them all back to my desired configuration.

Cooling Things Down

Summer is approaching and the weather is getting slowly warmer. This brings with it the annual problem of having a computer in the bedroom kicking out heat and making it too warm. Another issue that had been causing me some bother for a few years is the power settings on my graphics card, a Radeon HD6850, when running Linux. I use the open source radeon driver as keeps improving overtime and has enough of the performance of the closed source official driver for my needs. The one thing that has been lacking in my particular case has been the dynamic adjustment (radeon.dpm) of the card to keep it running cool. I have been forced to manually set the card to a low power state each time I reboot the machine. Failing to do this means the card boots up running full speed and quite happy to warm the place up. The downside is that I am always in the low power state and any tasks that might make use of a bit of extra power never get it unless its specifically enabled.

Today was time for a bit of research and a test. I had a Radeon 7850 in my other machine and decided to swap them over. It means that I have a weaker card for gaming on Windows but I don't play that many games and out of the two machines it is the one next due an upgrade. So has it made a difference? The simple answer is yes. I found that after rebooting the Linux machine with the HD7850 that it had automatically switched to using the dynamic adjustments and all was working well, one problem solved.

The heat output was the thing I really wanted to improve and I am pleased to also report a successful change (results below). I am happy with a slight decrease in temperatures along side the enabling dynamic adjustment. I continued to experiment and discovered that it can get even better. I have 2 24" Dell monitors and these can both kick out a bit of heat. Whilst I like a dual screen setup I often switch to just one (mainly to boot the Windows machine on the other). Driving just a single monitor I have noticed a further drop in temperatures (results below). This apparent temperature drop with a single monitor was not noticed when using the HD6850.

Test Conditions:
- Ambient Temperature: 22C
- System settled on normal desktop, no user activity.
- 2 connected displays @ 1920x1200

Before (HD6850 in Low Power Mode):
- GPU Temp: 65.0C
- CPU Temp: 41.4C

After (HD7850 radeon.dpm=1 balanced profile dual display):
- GPU Temp: 47.0C
- CPU Temp: 37.1C

After (HD7850 radeon.dpm=1 balanced profile single display):
- GPU Temp: 39.0C
- CPU Temp: 36.0C

An upgrade to some slightly newer, better driver supported hardware can result in a gpu temperature drop of around 18-26C (depending on setup). It might not make a huge improvement in room temperature alone, but it is a step in the right direction.