Getting 1400x1050 out of VESA

Unfortunately, Sun's kdmconfig does not support 1400x1050 out of the box. The good news is, there is a long way you can coax it to do so.

The following is contributed by Ben Taylor


  1. In /usr/openwin/share/etc/devdata/SUNWaccel/boards/vesa/vesa.xqa [and /usr/X11R6/etc/devdata/SUNWaccel/boards/xf86/vesa.xqa if the Sun XF86 driver kit is loaded]

    Add "1400x1050," to each [RESOLUTIONS] and [DESKTOPS] in the above files. Note that there are multiple places for each of those categories. If you dont notice this, then you wont be able to use more than 8bit color.

  2. Put the file nbxgap.vda in /usr/openwin/share/etc/devdata/SUNWaccel/monitors/lcd
  3. In /usr/openwin/share/etc/devdata/SUNWaccel/etc/Xtimings

    look for the section with

    [PREADJUSTED_TIMING]
    PreadjustedTimingName = "1600x1200 Interlaced";
    Then add the following lines, just ABOVE the 1600x1200 section:
    
    [PREADJUSTED_TIMING]
        PreadjustedTimingName = "1400x1050 @ 60Hz";
    
        HorPixel              = 1400;               // pixels
        VerPixel              = 1050;               // lines
        PixelWidthRatio       = 4;
        PixelHeightRatio      = 3;
        HorFrequency          = 53.925;             // kHz
        VerFrequency          = 46.8913;            // Hz
        ScanType              = NONINTERLACED;
        HorSyncPolarity       = NEGATIVE;
        VerSyncPolarity       = NEGATIVE;
        CharacterWidth        = 8;                  // pixels
        PixelClock            = 107.850;            // MHz
        HorTotalTime          = 18.5443;            // (usec) =  x chars
        HorAddrTime           = 12.981;             // (usec) =  x chars
        HorBlankStart         = 12.981;             // (usec) =  x chars
        HorBlankTime          =  5.56328;           // (usec) =   x chars
        HorSyncStart          = 13.4261;            // (usec) =  x chars
        HorSyncTime           =  4.482151;          // (usec) =   x chars
        VerTotalTime          = 21.3259;            // (msec) = x lines
        VerAddrTime           = 19.4715;            // (msec) = x lines
        VerBlankStart         = 19.4715;            // (msec) = x lines
        VerBlankTime          =  1.85443;           // (msec) =   x lines
        VerSyncStart          = 19.6198;            // (msec) = x lines
        VerSyncTime           =  0.222531;          // (msec) =    x lines
    

    Important note

    Unfortunately, SOME hardware may lock up, the first time you run xinit after setting the graphics mode to 1400x1050 with kdmconfig.

    Dont panic. Just reboot the system, and then things should run okay. Mysterious, but true.