Date: 15 Oct 2004 11:00:05 -0000 From: Luca Morettoni <morettoni@libero.it> To: FreeBSD-gnats-submit@FreeBSD.org Cc: phk@FreeBSD.org Subject: kern/72728: [patch] keyboard debug and reboot qualification moved into sysctl Message-ID: <20041015110005.1384.qmail@current.morettoni.local> Resent-Message-ID: <200410151100.i9FB0jif088393@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 72728 >Category: kern >Synopsis: [patch] keyboard debug and reboot qualification moved into sysctl >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Fri Oct 15 11:00:45 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Luca Morettoni >Release: FreeBSD 6.0-CURRENT i386 >Organization: Luca Morettoni >Environment: System: FreeBSD current.morettoni.local 6.0-CURRENT FreeBSD 6.0-CURRENT #33: Thu Oct 14 17:58:08 CEST 2004 luca@current.morettoni.local:/usr/obj/usr/src/sys/FRODO i386 >Description: This patch add to sysctl two new variables: hw.syscons.kbd_reboot and hw.syscons.kbd_debug The default value of this two are both 1, and that allow users to reboot and go into debug mode with keyboards shotcut. Setting them to 0 you can disable that at runtime. If you put SC_DISABLE_REBOOT and/or SC_DISABLE_KDBKEY in kernel config file that variables are set to 0 and you can't modify it. >How-To-Repeat: >Fix: Apply the following patch: --- syscons.c.patch begins here --- --- src/sys/dev/syscons/syscons.c.orig Fri Oct 15 08:57:27 2004 +++ src/sys/dev/syscons/syscons.c Thu Oct 14 17:06:23 2004 @@ -109,6 +109,19 @@ static int saver_mode = CONS_NO_SAVER; /* LKM/user saver */ static int run_scrn_saver = FALSE; /* should run the saver? */ static int enable_bell = TRUE; /* enable beeper */ + +#ifndef SC_DISABLE_REBOOT +static int enable_reboot = TRUE; /* enable keyboard reboot */ +#else +static int enable_reboot = FALSE; +#endif + +#ifndef SC_DISABLE_KDBKEY +static int enable_kdb = TRUE; /* enable keyboard debug */ +#else +static int enable_kdb = FALSE; +#endif + static long scrn_blank_time = 0; /* screen saver timeout value */ #ifdef DEV_SPLASH static int scrn_blanked; /* # of blanked screen */ @@ -124,6 +137,14 @@ &sc_saver_keyb_only, 0, "screen saver interrupted by input only"); SYSCTL_INT(_hw_syscons, OID_AUTO, bell, CTLFLAG_RW, &enable_bell, 0, "enable bell"); +#ifndef SC_DISABLE_REBOOT +SYSCTL_INT(_hw_syscons, OID_AUTO, kbd_reboot, CTLFLAG_RW|CTLFLAG_SECURE, &enable_reboot, + 0, "enable keyboard reboot"); +#endif +#ifndef SC_DISABLE_KDBKEY +SYSCTL_INT(_hw_syscons, OID_AUTO, kbd_debug, CTLFLAG_RW|CTLFLAG_SECURE, &enable_kdb, + 0, "enable keyboard debug"); +#endif #if !defined(SC_NO_FONT_LOADING) && defined(SC_DFLT_FONT) #include "font.h" #endif @@ -3267,21 +3288,15 @@ break; case RBT: -#ifndef SC_DISABLE_REBOOT - shutdown_nice(0); -#endif + if (enable_reboot) shutdown_nice(0); break; case HALT: -#ifndef SC_DISABLE_REBOOT - shutdown_nice(RB_HALT); -#endif + if (enable_reboot) shutdown_nice(RB_HALT); break; case PDWN: -#ifndef SC_DISABLE_REBOOT - shutdown_nice(RB_HALT|RB_POWEROFF); -#endif + if (enable_reboot) shutdown_nice(RB_HALT|RB_POWEROFF); break; case SUSP: @@ -3292,9 +3307,7 @@ break; case DBG: -#ifndef SC_DISABLE_KDBKEY - kdb_enter("manual escape to debugger"); -#endif + if (enable_kdb) kdb_enter("manual escape to debugger"); break; case PNC: --- syscons.c.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041015110005.1384.qmail>