Sunday, March 7, 2010

XBMC Live on ION - automatic mode-change with EDID

Before I begin, I wanted to thank JumJum for the following post on the XBMC forums. I've been able to get my settings to work well on my ION-based Acer Aspire Revo:

http://forum.xbmc.org/showthread.php?p=516904

I didn't need many of the steps mentioned there, since I already had XBMC 9.11 Live running on Linux. So far, I was using my own ModeLines I set up manually. But it turned out the EDID-modes actually do work fine out of the box with the following settings:

/etc/X11/xorg.conf
Section "Device"
Identifier "nvidia"
Driver  "nvidia"
Option  "NoLogo"              "true"
Option  "DynamicTwinView"     "false"
Option  "NoFlip"              "false"
Option  "FlatPanelProperties" "Scaling = Native"
Option  "ModeValidation"      "NoVesaModes, NoXServerModes"
Option  "UseDisplayDevice"    "DFP-1"
Option  "ModeDebug"           "true"
Option  "HWCursor"            "false"
EndSection

Section "Screen"
Identifier      "screen"
Device          "nvidia"
SubSection      "Display"
Modes "1920x1080_24" "1920x1080_50" "1920x1080_60"
EndSubSection
EndSection

Section "Extensions"
Option  "Composite"           "false"
EndSection

That was all that was neccessary. Well, in order to find out what "Modes" the driver has available, you have to have the "ModeDebug" setting enabled and then check the listing of modes within your /var/log/Xorg.0.log:
sed -n '/- Modes/,/- End/p' /var/log/Xorg.0.log | sed 's/.*(0)://g' > ~/modes.txt

Then simply pick the wanted resolutions. Afterwards, restart the X-Server for the changes to take effect. In case of the XBMC Live, that means:
service xbmc-live stop
service xbmc-live start