git: 48b05b8fc248 - main - loader: set boot_safe when safe mode is selected
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 14 Dec 2024 04:31:58 UTC
The branch main has been updated by kevans:
URL: https://cgit.FreeBSD.org/src/commit/?id=48b05b8fc2485ba5cc7ba7b52c62965feea101a8
commit 48b05b8fc2485ba5cc7ba7b52c62965feea101a8
Author: Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2024-12-14 04:31:22 +0000
Commit: Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2024-12-14 04:31:28 +0000
loader: set boot_safe when safe mode is selected
This may be used to disable or limit functionality of some services
when safe mode is selected. The particular value of boot_safe should not
be considered significant, only its presence in the environment.
Reviewed by: imp, tsoome
Differential Revision: https://reviews.freebsd.org/D32172
---
stand/forth/menu-commands.4th | 2 ++
stand/lua/core.lua | 2 ++
stand/man/loader_simp.8 | 17 ++++++++++++++++-
3 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/stand/forth/menu-commands.4th b/stand/forth/menu-commands.4th
index 2c3d787c65e1..13bbcf73201c 100644
--- a/stand/forth/menu-commands.4th
+++ b/stand/forth/menu-commands.4th
@@ -128,6 +128,7 @@ also menu-namespace also menu-command-helpers
s" set hw.ata.atapi_dma=0" evaluate
s" set kern.eventtimer.periodic=1" evaluate
s" set kern.geom.part.check_integrity=0" evaluate
+ s" set boot_safe=YES" evaluate
;
: safemode_disable ( -- )
@@ -136,6 +137,7 @@ also menu-namespace also menu-command-helpers
s" hw.ata.atapi_dma" unsetenv
s" kern.eventtimer.periodic" unsetenv
s" kern.geom.part.check_integrity" unsetenv
+ s" boot_safe" unsetenv
;
: init_safemode ( N -- N )
diff --git a/stand/lua/core.lua b/stand/lua/core.lua
index 3582720f2a81..5976cc65156d 100644
--- a/stand/lua/core.lua
+++ b/stand/lua/core.lua
@@ -179,12 +179,14 @@ function core.setSafeMode(safe_mode)
loader.setenv("hw.ata.atapi_dma", "0")
loader.setenv("kern.eventtimer.periodic", "1")
loader.setenv("kern.geom.part.check_integrity", "0")
+ loader.setenv("boot_safe", "YES")
else
loader.unsetenv("kern.smp.disabled")
loader.unsetenv("hw.ata.ata_dma")
loader.unsetenv("hw.ata.atapi_dma")
loader.unsetenv("kern.eventtimer.periodic")
loader.unsetenv("kern.geom.part.check_integrity")
+ loader.unsetenv("boot_safe")
end
core.sm = safe_mode
end
diff --git a/stand/man/loader_simp.8 b/stand/man/loader_simp.8
index 49214e78b494..cdacd823b1a5 100644
--- a/stand/man/loader_simp.8
+++ b/stand/man/loader_simp.8
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd September 29, 2021
+.Dd September 30, 2021
.Dt LOADER_SIMP 8
.Os
.Sh NAME
@@ -339,6 +339,21 @@ In a running system, the state of console muting can be manipulated by the
utility.
.It Va boot_pause
During the device probe, pause after each line is printed.
+.It Va boot_safe
+Force userland to boot in
+.Dq safe mode ,
+which may disable or limit the functionality of some services that may not be
+desired in safe mode.
+This is typically set by selecting
+.Dq safe mode
+in the loader menu, which also sets some other hints for the kernel.
+Applications wishing to respect safe mode should
+.Sy only
+test for the presence of
+.Va boot_safe
+in
+.Xr kenv 1 ,
+not for any particular value.
.It Va boot_serial
Force the use of a serial console even when an internal console
is present.