vt: make the default color configurable
authorClemens Ladisch <clemens@ladisch.de>
Sun, 4 Aug 2013 11:09:50 +0000 (13:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 5 Aug 2013 07:06:46 +0000 (15:06 +0800)
The virtual console has (undocumented) module parameters to set the
colors for italic and underlined text, but the default text color was
hardcoded for some reason.  This made it impossible to change the color
for startup messages, or to set the default for new virtual consoles.
Add a module parameter for that, and document the entire bunch.

Any hacker who thinks that a command prompt on a "black screen with
white font" is not supicious enough can now use the kernel parameter
vt.color=10 to get a nice, evil green.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/kernel-parameters.txt
drivers/tty/vt/vt.c

index 15356aca938cd9a7bb2cdef09d8e7a19da36db90..f6c8b417c652f67c0b0d12f9492502aa88e97c46 100644 (file)
@@ -3322,6 +3322,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                                    them quite hard to use for exploits but
                                    might break your system.
 
+       vt.color=       [VT] Default text color.
+                       Format: 0xYX, X = foreground, Y = background.
+                       Default: 0x07 = light gray on black.
+
        vt.cur_default= [VT] Default cursor shape.
                        Format: 0xCCBBAA, where AA, BB, and CC are the same as
                        the parameters of the <Esc>[?A;B;Cc escape sequence;
@@ -3361,6 +3365,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        overridden by individual drivers. 0 will hide
                        cursors, 1 will display them.
 
+       vt.italic=      [VT] Default color for italic text; 0-15.
+                       Default: 2 = green.
+
+       vt.underline=   [VT] Default color for underlined text; 0-15.
+                       Default: 3 = cyan.
+
        watchdog timers [HW,WDT] For information on watchdog timers,
                        see Documentation/watchdog/watchdog-parameters.txt
                        or other driver-specific files in the
index 02af6ccefe6aca0299efcd86a886303c28e6057e..9a8e8c5a0c73a93420fc71b85637db4d510ae241 100644 (file)
@@ -2809,8 +2809,10 @@ static void con_shutdown(struct tty_struct *tty)
        console_unlock();
 }
 
+static int default_color           = 7; /* white */
 static int default_italic_color    = 2; // green (ASCII)
 static int default_underline_color = 3; // cyan (ASCII)
+module_param_named(color, default_color, int, S_IRUGO | S_IWUSR);
 module_param_named(italic, default_italic_color, int, S_IRUGO | S_IWUSR);
 module_param_named(underline, default_underline_color, int, S_IRUGO | S_IWUSR);
 
@@ -2832,7 +2834,7 @@ static void vc_init(struct vc_data *vc, unsigned int rows,
                vc->vc_palette[k++] = default_grn[j] ;
                vc->vc_palette[k++] = default_blu[j] ;
        }
-       vc->vc_def_color       = 0x07;   /* white */
+       vc->vc_def_color       = default_color;
        vc->vc_ulcolor         = default_underline_color;
        vc->vc_itcolor         = default_italic_color;
        vc->vc_halfcolor       = 0x08;   /* grey */