Difference between revisions of "HDMI to DVI problem"
(Change source-code blocks to standard format) |
|||
(3 intermediate revisions by one other user not shown) | |||
Line 4: | Line 4: | ||
Defining a new video mode requires nine parameters which are difficult to work out manually so first we'll use the ''gtf'' utility to work out the sequence of numbers from the resolution and frequency we want. In our case we wanted to create a resolution of 1680 by 1051 at 60Hz. | Defining a new video mode requires nine parameters which are difficult to work out manually so first we'll use the ''gtf'' utility to work out the sequence of numbers from the resolution and frequency we want. In our case we wanted to create a resolution of 1680 by 1051 at 60Hz. | ||
+ | <source> | ||
+ | gtf 1680 1051 60 -x | ||
+ | </source> | ||
− | + | Alternatively you can use ''cvt'' to produce ModeLine's which some say is better suited to LCD's than ''gtf''. You should try with and without the ''reduced'' parameter in the case of failure. | |
+ | <source> | ||
+ | cvt --reduced 1680 1051 60 | ||
+ | </source> | ||
This resulted in the following information on my system: | This resulted in the following information on my system: | ||
− | + | <source> | |
− | + | # 1680x1051 @ 60.00 Hz (GTF) hsync: 65.28 kHz; pclk: 147.27 MHz | |
− | + | Modeline "1680x1051_60.00" 147.27 1680 1784 1968 2256 1051 1052 1055 1088 -HSync +Vsync | |
+ | </source> | ||
Next use these number to create and set a new video mode as follow: | Next use these number to create and set a new video mode as follow: | ||
− | + | <source> | |
− | + | xrandr --newmode "1680x1051_60.00" 147.27 1680 1784 1968 2256 1051 1052 1055 1088 -HSync +Vsync | |
− | + | xrandr --addmode TMDS-1 1680x1051_60.00 | |
− | + | xrandr --output TMDS-1 --mode 1680x1051_60.00 | |
+ | </source> | ||
I'm not sure how to translate these settings in to ''xorg.conf'' if you just want to run only the external monitor, but for dual monitor configuration, simply add the ModeLine to the appropriate monitor section. For now I've created a shell script which applies the new mode and turns off the laptop panel. Make a file containing the following script, set it executable permission and drop it onto your taskbar. | I'm not sure how to translate these settings in to ''xorg.conf'' if you just want to run only the external monitor, but for dual monitor configuration, simply add the ModeLine to the appropriate monitor section. For now I've created a shell script which applies the new mode and turns off the laptop panel. Make a file containing the following script, set it executable permission and drop it onto your taskbar. | ||
− | <bash> | + | <source lang="bash"> |
#!/bin/bash | #!/bin/bash | ||
xrandr --newmode "1680x1051_60.00" 147.27 1680 1784 1968 2256 1051 1052 1055 1088 -HSync +Vsync | xrandr --newmode "1680x1051_60.00" 147.27 1680 1784 1968 2256 1051 1052 1055 1088 -HSync +Vsync | ||
Line 25: | Line 33: | ||
xrandr --output TMDS-1 --mode 1680x1051_60.00 | xrandr --output TMDS-1 --mode 1680x1051_60.00 | ||
xrandr --output LVDS --off | xrandr --output LVDS --off | ||
− | </ | + | </source> |
== See also == | == See also == | ||
Line 31: | Line 39: | ||
− | [[Category: | + | [[Category:Hardware]][[Category:Linux]] |
Latest revision as of 18:11, 22 May 2015
We found on our Dell laptops under Ubuntu Linux (one an XPS, the other an Inspiron) that the external monitor would not work at the right resolution when connected to from the HDMI output to the monitor's DVI input. It would work fine using the VGA analogue output, but when using digital it would always result in a resolution one line short on the external monitor, for example 1680x1049 instead of 1680x1050.
This problem should be fixed in a future kernel or driver update, but in the mean time the problem can be overcome by creating a custom resolution which is one line higher than the monitors natural resolution.
Defining a new video mode requires nine parameters which are difficult to work out manually so first we'll use the gtf utility to work out the sequence of numbers from the resolution and frequency we want. In our case we wanted to create a resolution of 1680 by 1051 at 60Hz.
gtf 1680 1051 60 -x
Alternatively you can use cvt to produce ModeLine's which some say is better suited to LCD's than gtf. You should try with and without the reduced parameter in the case of failure.
cvt --reduced 1680 1051 60
This resulted in the following information on my system:
# 1680x1051 @ 60.00 Hz (GTF) hsync: 65.28 kHz; pclk: 147.27 MHz
Modeline "1680x1051_60.00" 147.27 1680 1784 1968 2256 1051 1052 1055 1088 -HSync +Vsync
Next use these number to create and set a new video mode as follow:
xrandr --newmode "1680x1051_60.00" 147.27 1680 1784 1968 2256 1051 1052 1055 1088 -HSync +Vsync
xrandr --addmode TMDS-1 1680x1051_60.00
xrandr --output TMDS-1 --mode 1680x1051_60.00
I'm not sure how to translate these settings in to xorg.conf if you just want to run only the external monitor, but for dual monitor configuration, simply add the ModeLine to the appropriate monitor section. For now I've created a shell script which applies the new mode and turns off the laptop panel. Make a file containing the following script, set it executable permission and drop it onto your taskbar.
#!/bin/bash
xrandr --newmode "1680x1051_60.00" 147.27 1680 1784 1968 2256 1051 1052 1055 1088 -HSync +Vsync
xrandr --addmode TMDS-1 1680x1051_60.00
xrandr --output TMDS-1 --mode 1680x1051_60.00
xrandr --output LVDS --off