As far as I know there are 6 ways to change resolution:

1. At compile time: change the line

        SVGA_MODE=      -DSVGA_MODE=NORMAL_VGA
in /usr/src/linux/Makefile.

1A. After compilation: use rdev -v - a terrible hack, but it exists.

2. At boot time: put vga=ask in the lilo config file, and lilo will ask you what video mode you want. Once you know, put vga=mypreference.

3. At run time: A. Use the resizecons command. (This is a very primitive wrapper around the VT_RESIZE ioctl.) B. Use the SVGATextMode command. (This is a less primitive wrapper around the VT_RESIZE ioctl.)

4. Not "on the console": Under dosemu, or with svgalib etc. you can change the hardware video mode without the console driver being aware of it. Sometimes this is useful in getting resizecons or SVGATextMode set up: use dosemu and some DOS program to get into the desired videomode, dump (say from another VT) the contents of all video hardware registers, and use that in the initialization that resizecons and SVGATextMode require. In some cases where the video mode has gotten into some unusable state, starting dosemu, relying on the BIOS to set up the video mode, and then killing dosemu (with kill -9), is the easiest way to get into shape again.

Get svgalib and compile the program restoretextmode. Boot up your machine in all possible video modes (using vga=ask in the lilo config file), and write the video hardware register contents to files CxR (C=cols, R=rows), e.g., 80x25, 132x44, etc. Put these files in /usr/lib/kbd/videomodes. Now resizecons 132x44 will change videomode for you (and send SIGWINCH to all processes that need to know about this, and load another font if necessary).

At present, resizecons only succeeds when there is memory enough for both the old and the new consoles at the same time.