If XFree86 corrupts your textmode font, try putting restorefont(1) in your path and use the shell script runx to run X. runx saves the VGA font data in /tmp/fontdata, and restores it when you exit X.
The runx script actually is:
echo Saving font in /tmp/fontdata
restorefont -w /tmp/fontdata
echo Restoring font from /tmp/fontdata
restorefont -r /tmp/fontdata
Note that this doesn't help with syncing problems.
A more rigorous alternative is to run the savetextmode(1) script before running X, and textmode(1) after. This will restore the textmode registers and the VGA palette in addition to the VGA font.
Assuming that savetextmode(1) and textmode(1) are in your PATH the runx script would then look like:
echo Saving SVGA state
echo restoring SVGA state
This utility is part of svgalib and can be found in the utils/ subdirectory of the original svgalib distribution. However, it is not installed by default, s.t. it is unclear where you can find it if your svgalib was install by a linux distribution.
However, this is no big deal as it was printed out above already ;-).
svgalib(7), vgagl(7), libvga.config(5), convfont(1), dumpreg(1), restorefont(1), restorepalette(1), restoretextmode(1), fix132x43(1), savetextmode(1), setmclk(1), textmode(1).
This manual page was edited by Michael Weller <firstname.lastname@example.org>. The exact source of the referenced utility as well as of the original documentation is unknown.
It is very likely that both are at least to some extent are due to Harm Hanemaayer <H.Hanemaayer@inter.nl.net>.
Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.
convfont(1), dumpreg(1), fix132x43(1), restorefont(1), restorepalette(1), restoretextmode(1), savetextmode(1), setmclk(1), svgalib(7).