Had to learn how to use xrandr to deal with my LCD TV overscanning video coming out of the HTPC over HDMI. Sad story follows.
The new HTPC here at the house was specifically designed to be quiet and consume as little power as possible. It runs Fedora 19 Linux to avoid the Microsoft Tax. The motherboard is a Gigabyte GA-B75M-HD3 with a 35W Intel i3-3220T CPU.
My original plan was to use the onboard Intel HD Graphics 2500 chipset to deliver video through HDMI to our old Samsung LN-S3241D 32″ LCD TV (maximum 1080i resolution). The problem is that like many LCD/HDTVs, this Samsung overscans HDMI input, making niceties like menus and window controls hard to reach.
Initially I switched over to VGA, but that wasn’t a good option because, not really being HD, some media sources won’t display full screen. DVI not being supported by the Samsung, my only option was to return to struggling with the HDMI connection.
The Intel fora and related mail lists are full of people in the same position. For those with newer TVs (not mine) there are ways to turn off overscanning in their configuration. Others will simply go to an add-on card with a video chipset from another vendor like AMD. The AMD Catalyst configuration utility can be used to compensate for overscan (note that this stopped working for me on the previous HTPC after upgrading from Fedora 17 to 19 — apparently there’s a problem with later versions of the AMD drivers for Linux). But that would mean adding to the machine’s power consumption and generate a lot more heat than I was hoping for (by using only the onboard video and a single high capacity mechanical hard drive the only fans required are for the power supply and CPU, where I’m using the stock cooler from Intel). On Windows 7 you’re supposed to be able to change video aspect ratio for Intel’s graphics, but not on Fedora or any other Linux distro.
I finally came across a bunch of articles that gave an example or two on how to tackle this using the xrandr utility that comes with the X windows system (x.org).
After hours of configuration what I came up with was a line in the .bashrc of my HTPC’s primary user, who is automatically logged on whenever the machine boots:
xrandr --output HDMI2 \ --transform 1,0,-35,0,1,-19,0,0,1
That’s about the best I could come up with.
The xrandr man page is about the only documentation to consult. None of the variations on the above, including some that used different “–mode” switches, worked for me.
Long term the answer is going to be a newer TV, although from what I’ve read on the fora it will not be a Samsung (or a Sony). But that’s not in the budget right now so we’ll have to make due with a slightly overscanned image that will probably be burned into the memories of my young children as an evil perpetrated upon them by Intel and Samsung.
Or at least I hope that’s the way they’ll remember it.
The syntax for the –transform option is something worth jotting down. Here it is:
a,e = x,y axis scale
c,f – x,y axis transform
g,h,i = 0,0,1 (really no idea)
b,d = No idea
So here are some links that were helpful along the way:
First on the practice of overscanning in general, from a “positive” (well, OK practically an industry cheerleader) viewpoint,
HD 101: Overscan and why all TVs Do It (left me better informed but not persuaded)
and from an engineer who is somewhat less charitable to TV manufacturers,
TVs are all awful (best laugh I had that week was from this line, “… almost everybody who’s written about this has issues with either (a) technology or (b) English, so I might as well write something”).
On the settings to use and why,