Why does my server's integrated Matrox MGA G200-family video processor refuse to use color depths greater than 16 bits per pixel (bpp)?

Updated -

Issue

Why does my server's integrated Matrox MGA G200-family video processor refuse to use color depths greater than 16 bits per pixel (bpp)?

Environment

  • Red Hat Enterprise Linux 5.3

  • Red Hat Enterprise Linux 4.7

Resolution

Older versions of the Matrox MGA G200-family integrated video processor have 2MB of video RAM, which is not enough to enable 24 or 32bpp color at resolutions higher than 800x600. The MGA video driver in Red Hat Enterprise Linux 5.3 and earlier has been hard coded to allow a maximum color depth of 16bpp because of this. Newer versions of these video processors exist with 8MB of RAM or more, which is enough to use 24bpp or higher color depths at 1024x768 or greater resolutions. To take advantage of the extra video memory, you will need to change the driver used by X from mga to vesa. The first step in changing the driver is to confirm that your card has more than 2MB of video RAM. Search the /var/log/messages/Xorg.0.log file for the term "VideoRAM". In the example below, we can see that the video chip is a newer model with 8MB of RAM, which is enough for it to use higher color depths:

...
(II) Attempted to read BIOS 64KB from /sys/bus/pci/devices/0000:03:00.0/rom: got 32KB
(--) MGA(0): Video BIOS info block at offset 0x07AE0
(**) MGA(0): Option "mtrr" "False"
(--) MGA(0): VideoRAM: 8128 kByte <----
(II) Loading sub module "ddc"
(II) LoadModule: "ddc"
...

If that line said "2048 kByte", there would be no need to proceed as changing the driver will have no effect on the color depths and resolutions supported by your video chip. If your video processor is one with more than 2MB of RAM, there are two ways for you to change to the vesa driver. The first way is the simplest. Simply run this command as root:

# system-config-display --set-driver=vesa

The second way is the manual method. Edit the /etc/X11/xorg.conf file and tell the system to use the vesa driver instead of the mga driver that it used by default. Edit the file and look for this section:

Section "Device"
        Identifier  "Videocard0"
        Driver      "mga"
EndSection

Change the Driver line to "vesa" insted of "mga"

Section "Device"
        Identifier  "Videocard0"
        Driver      "vesa"
EndSection

Regardless of which method you used to change the driver, you will need to restart X by logging out and logging back in, or by rebooting the computer, to enable the new driver. Once that has been done, you can run the command system-config-display to change the screen resolution and color depth to something beyond 16bpp.

Comments