Notes for Debian:
	apt-get install svgatextmode

	will install as a S60service, configure /etc/TextConfig with the
	default that you prefer once you have tested fully. comment out all
	the disk sync commands and echos.

	To find available textmodes:
		grep '^"[0-9]' /etc/TextConfig

--------------------------------------------------------------------------------

From the SVGATextMode package description: 

SVGATextMode is a utility for reprogramming (S)VGA hardware, to improve the
appearance of text consoles. SVGATextMode uses a configuration file (the
default is /etc/TextConfig) with a syntax similar to X Window System's
configuration file (Xconfig or XF86Config) to set up textmodes with higher
resolution, larger font sizes, higher display refresh rates, etc.

Theoretically, SVGATextMode can be used to program any text mode size, but
your results will depend upon your VGA card.

An advantage of SVGATextMode is that it's probably the fastest option. Text
scroll speed is very good and characters are readable even with smaller fonts.

Setup 

First, install the package. This, of course, varies with the distribution and
version of Linux that you run. In most cases, it's simply:

redhat:
	rpm -ivh SVGATextMode-VERSION.rpm
debian:
	apt-get install svgatextmode

The next step is to gather information about your hardware. As the root user,
type:
	lspci

You'll get output similar to the following:

00:00.0 Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 02)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 02)
00:07.0 ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01)
00:07.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 02)
00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)
00:14.0 VGA compatible controller: Matrox Graphics, Inc. MGA 2064W [Millennium] (rev 01)

The information you'll need is the VGA device. In this case a Matrox Millennium MGA 2064W card. 

Next, determine the Horizontal Sync and Vertical Refresh capabilities of your monitor. If you already have X configured, you can easily look through your XF86Config or XMetroConfig (if using Metro-X) files for the HorizSync and VertRefresh lines. For example: 

      [kwan@omicron]  egrep -i 'horizsync|vertrefresh' /etc/X11/XF86Config
      HorizSync    30-0 - 97.0
      VertRefresh  48.0 - 129.0
    You can also do a search on the Net Monitor Database, located at: 

http://www.griffintechnology.com/archive/monitor.html 

For example, a search on Magnavox returns several matches. Drilling down, I choose the 20CM64 and find that it supports: 

      H Frequency   30-64 KhZ
      V Frequency   50-120 Hz
    Configure the /etc/TextConfig file 

Open the /etc/TextConfig file in your favorite editor. The default TextConfig will contain a standard, "works on anything" configuration to edit. Look for the following lines and comment them out by placing a # at the beginning of the line: 

      # Chipset "VGA"
      # Clocks  25.175 28.322
    Also, comment out the warning message: 

      # echo "The SVGATextMode config file is configured as `standard VGA' by default."
      # echo "This is highly sub-optimal on modern VGA cards."
      # echo "Edit the TextConfig file for your VGA card to enable the many extra features."
      # echo "(and then you can also get rid of this message...)."
      # echo ""
    The next step is to scroll down through the TextConfig file and select your chipset. Unfortunately, it may not always be obvious. Try to choose a chipset based on the output from the previous lspci command. Among the supported chipsets are: 

"VGA" "S3" "ET4000" "TVGA8900" "TVGA8900" "WDC90C3x" "WDC90C0x" "ATI" "ATIMACH32" "ATIMACH64" "Cirrus" "Video7" "ALI" "AL2101" "OTI67" "OTI77" "OTI87" "SiS" "RealTek" "ARK" "ics5342" "NCR77C22E" "NCR77C32" "GVGA" "MX" "et6000" "tgui" "matrox" "NeoMagic" 

For our example, we uncomment the Matrox-relevant stuff: 

      Chipset "matrox"
      clockchip "ti3026"     # for the Millennium
      #clockchip "mystique"   # for the Mystique
    Continue to scroll down. You'll find various Option lines that you can uncomment to activate. Read the descriptions for more information. Eventually you'll see the HorizSync and VertRefresh lines. 

      #HorizSync 30-32
      #VertRefresh 50-80
    Change these to the values you determined previously from the X configuration file or from the monitor database. It's critical that you do not just make up numbers here. Pushing monitors beyond spec, especially the older ones, will release the magic smoke and send the monitor to the service of that great video card in the sky. I change mine to : 

      HorizSync 30-64
      VertRefresh 50-120
    Next, you'll see a line for DefaultMode. This one is important, as it specifies the resolution SVGATextMode will try when called without any parameters. It's best to leave it as is. Further down are the rest of the modelines. Take a look at some of the valid modes that you can choose. Which ones are available depend upon your monitor capabilities and video card. Once you're done, save the file and exit. 

Testing the configuration 

Now it's time to test. We can get a list of all available modelines with: 

      [kwan@omicron] grep '^"[0-9]' /etc/TextConfig
    You'll get a long list. E.g. 

      "116x32x8"         36   928  944 1088 1144    480  490  492  525 font  8x15
      "116x32x9"         40   928  944 1080 1128    480  490  492  525 font  9x15
      "116x33x8"         36   928  944 1088 1144    396  412  414  449 font  8x12
      "116x33x9"         40   928  944 1080 1128    396  412  414  449 font  9x12
      "116x34x8"         36   928  944 1088 1144    480  490  492  525 font  8x14
      "116x34x9"         40   928  944 1080 1128    480  490  492  525 font  9x14
      "116x40x8"         36   928  944 1088 1144    480  490  492  525 font  8x12
      "116x40x9"         40   928  944 1080 1128    480  490  492  525 font  9x12
      "116x43x8"         36   928  944 1088 1144    480  490  492  525 font  8x11
      "116x43x9"         40   928  944 1080 1128    480  490  492  525 font  9x11
      "116x50x8"         36   928  944 1088 1144    400  412  414  449 font   8x8
      "116x50x9"         40   928  944 1080 1128    400  412  414  449 font   9x8
      "116x60x8"         36   928  944 1088 1144    480  490  492  525 font   8x8
      "116x60x9"         40   928  944 1080 1128    480  490  492  525 font   9x8
      "100x37"           50   800  872  976 1040    600  632  638  670 font  8x16
      "100x37x9"         56   800  872  976 1040    600  632  638  670 font  9x16
      "100x40"           50   800  848  952 1040    640  672  678  700 font  8x16
    Try one of the modelines with: 

      [kwa@omicron] SVGATextMode 116x32x8
    The screen should flicker for a second and you should have a high-res display. Or, if you chose a modeline that's beyond the spec of your monitor, you'll get a warning: 

      Chipset = `VGA', Textmode clock = 110.00 MHz, 160x60 chars, CharCell = 8x16.
      Refresh = 64.86kHz/63.4Hz.
      SVGATextMode: ERROR: Pixel Clock (110.00 MHz) too high for this chipset
      max pixel clock = 45.00/50.62 MHz for 8/9 pixel wide font resp.
    If, instead, your monitor suddenly goes berserk, type SVGATextMode by itself on the prompt. You may have to do this blindly if the display is unreadable. E.g. 

      [kwan@omicron] SVGATextMode
    Try other modelines too. Once you're satisfied that the mode works correctly, place it somewhere in your initialization scripts. For example: 

 
      #!/bin/sh
      #
      #
      
      # See how we were called.
      case "$1" in
        start)
              # Start daemons.
              echo -n "Starting SVGATextMode: "
              /usr/sbin/SVGATextMode 116x34x9
              ;;
        stop)
              # Stop daemons.
              echo -n "Dropping into default 80x25 Mode: "
      	      /usr/sbin/SVGATextMode 80x25
              ;;
        restart|reload)
      	      $0 stop
      	      $0 start
      	      ;;
        *)
              echo "Usage: SVGATextMode {start|stop|restart|reload}"
              exit 1
      esac
      exit 0
    Try to enable SVGATextMode as early in the boot cycle as you can. I've noticed problems with some cards when SVGATextMode is enabled after loading X.