How to remove overscan on HDMI 1080p output using xrandr

I recently got a Asus 24T1E TV monitor with integrated DVB tuner and lots of connectors on the back, two of which are HDMI inputs. When I first connected my Laptop to it via HDMI and turned it to 1920×1080 (native resolution of the monitor) I encountered that the picture was kind of blury and the borders of the desktop were outside of the screen, i.e. 52 pixels on the left and right and 26 pixels on the top and bottom border. The info pannel on the monitor’s OSD reported “1080p” as resolution.

After doing some research on the overscan issue I found that the firmware of the 24T1E automatically switches to overscan mode when fed with a Full HD resolution on the HDMI input, which kind of makes sense for BluRay Players and other TV signal devices, but not for a PC connection. I also found out by testing that the monitor does not overscan when the signal comes via the VGA input or you use a lower resolution like 1600×900 on HDMI, so what’s the deal?

I started messing around with xrandr and the −−transform, −−fb and −−fbmm options, but the only thing I could achieve with these was a displacement of the desktop so I could actually see the upper left corner. Scaling the picture with the −−transform option seems to use "virtual" pixels as it preserves resolution.

After fiddling with xrandr for a while I stumbled upon the −−prop option. This option lists all parameters a connected monitor can handle via the −−set <property> <value> option. This is where I found the “force-dvi” value under the “audio” property. So I entered

$ xrandr --output LVDS1 --off --output HDMI1 --set audio force-dvi

and voila… The laptop screen turned off and I saw the entire desktop in Full HD resolution. The info panel on the monitor’s OSD reported “1920×1080@60Hz” and the picture was razor-sharp.

You might want to call xrandr without any options first to find out the identifiers for your laptop display and monitor connectors and replace LVDS1 and HDMI1 with your identifiers. If this method worked for you, too, feel free to leave a comment with some information about your system and your monitor.

Machine: Lenovo Thinkpad Edge S430
OS: Fedora 17 64bit
Monitor: Asus 24T1E

$ uname -r
$ lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation Device 0166 (rev 09)
01:00.0 VGA compatible controller: nVidia Corporation Device 0de8 (rev ff)
$ xrandr --version
xrandr program version 1.3.5
Server reports RandR version 1.3

Update: I’ve tried this method with my parents’ TV, a Samsung LE32C630. When I first connected my Laptop to the TV I encountered the same overscan problem as with my Asus 24T1E, even though the OSD info panel of the Samsung TV reported “1920×1080@60Hz”. I’ve tried the xrandr method, but with no success. Fortunately Samsung implemented more format/scaling settings than Asus, so I was able to remove the overscan with the settings of the TV itself. In other words: the success of this method depends on the TV monitor you are using. If your TV monitor does not feature the appropriate format/scaling setting, you can try the described method above.


About h0nk3ym0nk3y

h0nk3ym0nk3y is one of the three LinuxM0nk3ys from Linux M0nk3ys @ WordPress Linux M0nk3ys @ YouTube Linux M0nk3ys @ Twitter

Posted on August 9, 2012, in Audio / Video, Bash-Scripts, Configure and tagged , , , , , . Bookmark the permalink. 7 Comments.

  1. Oh, hell yeah. I’ve been using my Changhong tv as one of my primary monitors (for ~a year), which doesn’t have an explicit setting for turning overscan off (I’ve been using it at 1680×1080) – this post got the screen working as it should, thank you very much.

  2. I found your article after many researches for this same problem with a Sony Bravia 1080p and HDMI.
    No thanks to ATI wich does not provide drivers for Radeon HD 4xxx with Xorg 1.13 (the legacy driver can calibrate the overscan) !
    Thus i was going to the last dirty solution i had : downgrading to Xorg 1.12…
    While I was testing before that many others solutions, I noticed two thing :
    1) the screen was ok with the PC / VGA input of the tv but the pixels were tiltling a bit (but not with hdmi who was just overscaning) ;
    2) The second thing was that I started the kernel fb in 1920×1080 with the option “vga=803” and the same overscaning problem was occuring with consoles, thus it was not an X11 problem !
    Then I was thinking about kernel configuration, or graphic card problem, or something more profound than Xorg and I was sick to do a so dirty work-around like downgrading X11 server and installing ATI legacy drivers…
    Then i found your proposition (searching about xrandr solution), and i tried it : “xrandr –output VGA-0 –off –output HDMI-0 –set audio force-dvi”
    But it failed with “X Error of failed request: BadName (named color or font does not exist) […]”.
    Then I read your update about your parent’s Samsung TV and decided to do one more scan over my TV options (the only option that I found before that, was activating a zoom, so it was worse).
    And I found It ! My bravia tv have an option whose title is “Photo/Video”, it was turn on “Video” (that’s my usage… and i was thinking it was just about colours…), but when i turn it on “Photo”, tadaaa, it works ! no more overscan !
    So people, before diging and diging with HDMI / DVI problems, just try all the options your TV offers you… Even if you think there is no relation !
    Thanks h0nk3ym0nk3y to help me, kind of indirectly but still !!

  3. You, sir are a saint. I have a cheap-ish polaroid HDTV with no over scan settings and have been trying to make this work for literally two years now. I have tried various xrandr commands and this is the only one to help at all…and it solved everything perfectly.

    I was about to have to switch to windows 8 but you saved me from that.

  4. I had the same problem and thanks to your article I could solve it. 🙂 However, sound over HDMI stops working after that command. Have you come up with any solution on that?

    • Hi hemantienrik,
      actually this seems to be a huge drawback to this method. After setting the audio option to force-dvi there is no more HDMI audio interface available to the system. The only workaround I came up with so far is to use another audio interface like the internal one on your system and hook it up to your tv with an extra cable. If your tv is capable of resolving the overscan issue through one of its settings then this is not a problem, for you can still use the HDMI audio interface by using “–set audio on” or simply omitting this option. If I find a better solution I will post an update to the article.
      Best regards

  5. xrandr –output HDMI1 –set audio force-dvi
    Did the trick on:
    Lenovo T430
    RHEL 6.5

    I could not solve this before, my TV (Sungoo 37″ bought about 2007) is connected to a linux box via HDMI to DVI adapter and (1) the xrandr did notaccept any other rescale or overscan option and (2) the TV set does not have any overscan/HDMI setting.

    You solution makes sense, as I’m probably trashing the HDMI standard by using a DVI adapter.

    Secondly: I had a problem of the TV flashing (~3sec. black monitor, then 1 frame on, and looping). In the past I edited the EDID file of the sungoo monitor, fiddling with the audio part, and then forced the loading of it via xorg.conf, but it got more complicated with the last x server releases and the automatic setup of monitors in modern linux distros.

    So the simple
    xrandr –output HDMI-1 –set audio force-dvi
    puts together and solves the two aspects in once. I like it!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: