As far as I know there are 6 ways to change resolution:
1. At compile time: change the line
inSVGA_MODE= -DSVGA_MODE=NORMAL_VGA
/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.