TWiki> DICE Web>MonitorConfiguration (revision 2)EditAttach

How To Create LCFG headers for new monitors

Most "normal" monitors do not require an additional header. Typically it is only when they are wide-screen that there is a requirement to manually specify the configuration. Note also that if the machine to which the monitor is attached is using a recent nvidia card it should be able to auto-detect any monitor, whatever size or shape.

Adding support for a new monitor is fairly simple and it is best to follow how it has been done for others, for example I am using the Dell E228WFP monitor (lcfg/options/monitor_dellE228Wfp.h).

The first step is to (as root) use the tools provided in the monitor-edid package which is installed as standard on DICE SL5 machines.

# /usr/sbin/monitor-get-edid | /usr/bin/monitor-parse-edidName: 
Screen size: 47.3 cm x 29.6 cm (21.97 inches, aspect ratio 16/10 = 1.60)
Gamma: 2.2
Digital signal
Max video bandwidth: 140 MHz

        HorizSync 30-83
        VertRefresh 56-75

        # Monitor preferred modeline (59.9 Hz vsync, 64.7 kHz hsync, ratio 16/10)
        ModeLine "1680x1050" 119 1680 1728 1760 1840 1050 1053 1059 1080 -hsync +vsync

That provides all the information required to create the LCFG header. You should then create a new LCFG-level header with a name that matches the monitor (e.g. lcfg/options/monitor_dellE228Wfp.h). After that create a new DICE-level header which just includes that LCFG-level header (e.g. dice/options/monitor_dellE228Wfp.h).

If it is a widescreen monitor with an intel graphics card you will need the 915resolution tool so you have to include the lcfg/options/monitor_915res.h header. You then need to set the gbios.options resource to match the width and height of the monitor (which in this case is 1680x1050) - anyone know what the 3c bit is for?

#include <lcfg/options/monitor_915res.h>

gbios.options       3c 1680 1050

The next part is to add all the information needed to describe the monitor in the configuration file.

!xfree.monitors                 mADD(dellE228Wfp)
xfree.hsync_dellE228Wfp         30-83
xfree.vrefresh_dellE228Wfp      56-75
!xfree.monopts_dellE228Wfp      mADD(dpms)
xfree.monopt_dellE228Wfp_dpms   Option "DPMS" "true"
!xfree.monopts_dellE228Wfp      mADD(mode)
xfree.monopt_dellE228Wfp_mode   Modeline "1680x1050" 139.64 1680 1712 2224 2256 1050 1071 1081 1103

!xfree.monitor_main             mSET(dellE228Wfp)
!xfree.displaymodes_main        mSET("1680x1050")

Choose a sensible name for the monitor which will not clash with anything else (dellE228Wfp in this case) and then copy the horizsync, vertrefresh and modeline from the output of the monitor-edid commands.

-- StephenQuinney - 23 Sep 2008

Edit | Attach | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 23 Sep 2008 - 15:36:07 - StephenQuinney
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
This Wiki uses Cookies