Linux – How to get 1080p to work on the TV with HDMI using xrandr

arch linuxhdminvidiax11xrandr

I'm using Arch Linux on a small HTPC called an Xtreamer, which has an Nvidia GT218/ION graphics card and HDMI out. My television is an Orion DL40-71BK (manual, note everything's in Japanese).

HDMI video output works fine on some settings, for example 1440×900 and 1280×720, and xrandr shows many modes without any X11 configuration, including 1920×1080@60Hz (which it lists as the preferred mode). Full xrandr output follows:

Screen 0: minimum 8 x 8, current 1440 x 900, maximum 8192 x 8192                     
DVI-I-0 disconnected primary (normal left inverted right x axis y axis)              
DVI-I-1 disconnected (normal left inverted right x axis y axis)                      
HDMI-0 connected 1440x900+0+0 (normal left inverted right x axis y axis) 160mm x 90mm
   1920x1080     60.05 +  60.00    59.94    60.00                                    
   1440x900      59.89*                                                              
   1360x768      60.02                                                               
   1280x1024     60.02                                                               
   1280x768      59.87                                                               
   1280x720      60.00    59.94                                                      
   1024x768      60.00                                                               
   800x600       60.32                                                               
   720x480       59.94    60.05                                                      
   640x480       59.94    59.93                                                      

One thing I do not understand here: What are the columns to the right of 60.00 in the 1920×1080 line?

Anyway, the problem is if I use xrandr to switch to the 1920×1080 mode (or let X11 do so by default on startup) my television shows a black screen and an error (非対応の入力信号, "unsupported input signal"). This also happens if I use the nvidia-settings tool to set the resolution (it also lists 1920×1080 as supported, but has the same error).

I can find this error a few places online, but nothing to with Linux, just people having problems with game consoles and older versions of the TV.

I know the TV works with 1920×1080; the manufacturer lists it and my PS3 uses 1080p just fine.

What can I do to use 1920×1080 on my TV? Is there some configuration I've overlooked?

Best Answer

Thanks to brm's comment and reading the xrandr man page, I figured out what the issue was. There were two problems:

First, I'd always used xrandr's -s option, which specifies size, rather than the newer --mode option. This almost always works anyway, and in this case switching to xrandr --output HDMI-0 --mode 1920x1080 didn't fix things. However, it was needed to deal with the second problem: refresh rates.

Apparently the default refresh rate for 1920x1080 wasn't actually supported by my TV (thus the signal error), so I had to specify 60Hz. xrandr -s 1920x1080 -r 60 gave the error Rate 60.00 Hz not available for this size, as did using any of the other frequences listed in the xrandr output.

The final solution was to use this command:

xrandr --output HDMI-0 --mode 1920x1080 -r 60

And everything works nicely. I'm still not sure exactly why this works, especially since the man page says -r (a 1.1 option) shouldn't work well with --mode (a 1.2 option). But I'm happy to have my pixels at least.

Related Question