aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Evans <bde@FreeBSD.org>2018-06-02 14:07:27 +0000
committerBruce Evans <bde@FreeBSD.org>2018-06-02 14:07:27 +0000
commit972913032199ca192e650ff4c0979d802e840020 (patch)
tree3f01f16814ece20f0aed40d1153a4feeca8398a3
parentfa49511709009dd1a3c89c10eec6111303b63aed (diff)
Notes
-rw-r--r--share/man/man4/syscons.426
-rw-r--r--sys/conf/NOTES1
-rw-r--r--sys/conf/options1
-rw-r--r--sys/dev/syscons/syscons.c20
4 files changed, 40 insertions, 8 deletions
diff --git a/share/man/man4/syscons.4 b/share/man/man4/syscons.4
index 6b9f6873626de..49b4c84aabf16 100644
--- a/share/man/man4/syscons.4
+++ b/share/man/man4/syscons.4
@@ -26,7 +26,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd June 21, 2016
+.Dd June 2, 2018
.Dt SYSCONS 4
.Os
.Sh NAME
@@ -53,6 +53,7 @@
.Cd "options SC_NORM_ATTR=_attribute_"
.Cd "options SC_NORM_REV_ATTR=_attribute_"
.Cd "options SC_KERNEL_CONS_ATTR=_attribute_"
+.Cd "options SC_KERNEL_CONS_ATTRS=_attributes_"
.Cd "options SC_KERNEL_CONS_REV_ATTR=_attribute_"
.Cd "options SC_DFLT_FONT"
.Cd "makeoptions SC_DFLT_FONT=_font_name_"
@@ -341,6 +342,7 @@ above.
.It Dv SC_NORM_ATTR=_attribute_
.It Dv SC_NORM_REV_ATTR=_attribute_
.It Dv SC_KERNEL_CONS_ATTR=_attribute_
+.It Dv SC_KERNEL_CONS_ATTRS=_attributes_
.It Dv SC_KERNEL_CONS_REV_ATTR=_attribute_
These options will set the default colors.
Available colors are defined in
@@ -348,6 +350,11 @@ Available colors are defined in
See
.Sx EXAMPLES
below.
+.Dv SC_KERNEL_CONS_ATTRS
+is a character string giving a sequence of attributes in binary format.
+The sequence will be repeated up to the number of CPUs.
+Beware that the string must not be null,
+since the kernel divides by its length.
.It Dv SC_DFLT_FONT
This option will specify the default font.
Available fonts are: iso, iso2, koi8-r, koi8-u, cp437, cp850, cp865,
@@ -539,6 +546,23 @@ The reversed message will be black on red background.
.Dl "options SC_KERNEL_CONS_ATTR=(FG_LIGHTRED|BG_BLACK)"
.Dl "options SC_KERNEL_CONS_REV_ATTR=(FG_BLACK|BG_RED)"
.Pp
+Provided
+.Dv SC_KERNEL_CONS_ATTR
+is not set, or is set to its default of bright white on black,
+the following line will set 4 red-ish colors
+for printing kernel messages in colors depending on the CPU.
+.Pp
+.Dl options SC_KERNEL_CONS_ATTRS=\e"\ex0c\ex04\ex40\ex0e\e"
+.Pp
+The default scheme is probably better for up to 8 CPUs.
+Use a long string to get unique colors for more than 8 CPUs.
+.Pp
+To turn off all per-CPU coloring of kernel messages,
+set SC_KERNEL_CONS_ATTR to a non-default value,
+or use the default in a pattern of length 1.
+.Pp
+.Dl options SC_KERNEL_CONS_ATTRS=\e"\ex0f\e"
+.Pp
The following example adds the font files
.Pa cp850-8x16.fnt ,
.Pa cp850-8x14.font
diff --git a/sys/conf/NOTES b/sys/conf/NOTES
index d2e42b959756b..06b05437f4bf6 100644
--- a/sys/conf/NOTES
+++ b/sys/conf/NOTES
@@ -1474,6 +1474,7 @@ options SC_PIXEL_MODE # add support for the raster text mode
options SC_NORM_ATTR=(FG_GREEN|BG_BLACK)
options SC_NORM_REV_ATTR=(FG_YELLOW|BG_GREEN)
options SC_KERNEL_CONS_ATTR=(FG_RED|BG_BLACK)
+options SC_KERNEL_CONS_ATTRS=\"\x0c\x0d\x0e\x0f\x02\x09\x0a\x0b\"
options SC_KERNEL_CONS_REV_ATTR=(FG_BLACK|BG_RED)
# The following options will let you change the default behavior of
diff --git a/sys/conf/options b/sys/conf/options
index 02c77224d3678..dcfdf495e6ccf 100644
--- a/sys/conf/options
+++ b/sys/conf/options
@@ -774,6 +774,7 @@ SC_DISABLE_KDBKEY opt_syscons.h
SC_DISABLE_REBOOT opt_syscons.h
SC_HISTORY_SIZE opt_syscons.h
SC_KERNEL_CONS_ATTR opt_syscons.h
+SC_KERNEL_CONS_ATTRS opt_syscons.h
SC_KERNEL_CONS_REV_ATTR opt_syscons.h
SC_MOUSE_CHAR opt_syscons.h
SC_NO_CUTPASTE opt_syscons.h
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index 92ed069b63c75..dd2ecc4627aca 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -3153,6 +3153,17 @@ scinit(int unit, int flags)
static u_char font_16[256*16];
#endif
+#ifdef SC_KERNEL_CONS_ATTRS
+ static const u_char dflt_kattrtab[] = SC_KERNEL_CONS_ATTRS;
+#elif SC_KERNEL_CONS_ATTR == FG_WHITE
+ static const u_char dflt_kattrtab[] = {
+ FG_WHITE, FG_YELLOW, FG_LIGHTMAGENTA, FG_LIGHTRED,
+ FG_LIGHTCYAN, FG_LIGHTGREEN, FG_LIGHTBLUE, FG_GREEN,
+ 0,
+ };
+#else
+ static const u_char dflt_kattrtab[] = { FG_WHITE, 0, };
+#endif
sc_softc_t *sc;
scr_stat *scp;
video_adapter_t *adp;
@@ -3163,13 +3174,8 @@ scinit(int unit, int flags)
/* one time initialization */
if (init_done == COLD) {
sc_get_bios_values(&bios_value);
- for (i = 0; i < nitems(sc_kattrtab); i++) {
-#if SC_KERNEL_CONS_ATTR == FG_WHITE
- sc_kattrtab[i] = 8 + (i + FG_WHITE) % 8U;
-#else
- sc_kattrtab[i] = SC_KERNEL_CONS_ATTR;
-#endif
- }
+ for (i = 0; i < nitems(sc_kattrtab); i++)
+ sc_kattrtab[i] = dflt_kattrtab[i % (nitems(dflt_kattrtab) - 1)];
}
init_done = WARM;