With URxvt and xterm it is possible to use a virtual terminal supporting 256 colors instead of only eight. Since my Intel GMA graphics card is well-supported by the KMS framebuffer driver, I am exclusively working on the TTY. Unfortunately it only supports eight colors although with MPlayer (-vo fbdev/fbdev2) and other framebuffer tools far more can be addressed. Is there a way to tell the TTY to use more than eight colors?
Your 256-color RXVT/xterm/URXVT/etc are defined by terminfo and the setting of the
Here's the manpage on
If you find a TERM that works, modify the getty lines in your inittab and add the proper TERM at the end:
I'm revising my answer now that I'm sure of things.
It was erroneous to conclude that the ANSI sequences were being handled via BIOS or otherwise outside of the kernel; indeed, they're handled in the kernel. I found what I had missed before thanks to hnaz_ on the LinuxNewbies IRC channel:
So... as a definitive answer, having reviewed the source code that handles the escape sequences for virtual terminals: If you want 256 color support on virtual terminals you'll have to build you own kernel after extending the code that parses the escape sequences to handle the wider color-specification.
The function is called csi_m(). The changes will have to be similar to those which extend the X-based terminal emulators to handle escape sequences specifying the richer color codes. There will probably be other changes needed as well, but this is where you would start.
Have a look at fbterm - it's a replacement framebuffer that can run in 256-color mode (you just run it as root from a TTY)
I've had mixed success with it - some applications work fine, and report 256 colors; however Emacs (the main reason I wanted 256 colors on TTY) doesn't seem to work; there's a bit of a discussion about it here, but it doesn't really get resolved:
However, mplayer should work!
The ANSI escape sequences for setting the foreground and background colors of text are what's limiting things here.
From memory these sequences look something like escape [ 01;34m There are codes in the 30's for foreground and I think 40's for background.
So I don't think there's any way to achieve what you're looking for.