summaryrefslogtreecommitdiff
path: root/stand
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2020-09-28 16:19:21 +0000
committerWarner Losh <imp@FreeBSD.org>2020-09-28 16:19:21 +0000
commit8f3b36103b20049e207e64039ad3e99ffb5b51e2 (patch)
tree98f0cf839c0f4816fb21accd68829b6c22b4b3df /stand
parentfbc6840baeb0607c6d4542f298d0a8f7135b3c21 (diff)
downloadsrc-test-8f3b36103b20049e207e64039ad3e99ffb5b51e2.tar.gz
src-test-8f3b36103b20049e207e64039ad3e99ffb5b51e2.zip
Report the kernel console on the boot screen
Report what console the boot loader is telling the kernel to use: o Dual (Serial Primary) o Dual (Video Primary) o Serial o Video This allows the user to interrupt the boot and tweak the cosnole, if needed, in a trivial way. Useful for installs where the default selected may not be quite what you want, or when you are running a dual setup and need to toggle over to the other console being primary. The 'c'/'C' keys will do the cycling through the consoles. Note: you'll still have to drop into the loader to set details about serial consoles. And this doesn't change the console the loader is using. Reviewed by: kevans@ MFC After: 3 days Differential Revision: https://reviews.freebsd.org/D26573
Notes
Notes: svn path=/head/; revision=366228
Diffstat (limited to 'stand')
-rw-r--r--stand/lua/core.lua34
-rw-r--r--stand/lua/menu.lua11
2 files changed, 45 insertions, 0 deletions
diff --git a/stand/lua/core.lua b/stand/lua/core.lua
index c56443e98733a..1bb2efb75446b 100644
--- a/stand/lua/core.lua
+++ b/stand/lua/core.lua
@@ -451,6 +451,40 @@ function core.popFrontTable(tbl)
return first_value, new_tbl
end
+function core.getConsoleName()
+ if loader.getenv("boot_multicons") ~= nil then
+ if loader.getenv("boot_serial") ~= nil then
+ return "Dual (Serial primary)"
+ else
+ return "Dual (Video primary)"
+ end
+ else
+ if loader.getenv("boot_serial") ~= nil then
+ return "Serial"
+ else
+ return "Video"
+ end
+ end
+end
+
+function core.nextConsoleChoice()
+ if loader.getenv("boot_multicons") ~= nil then
+ if loader.getenv("boot_serial") ~= nil then
+ loader.unsetenv("boot_serial")
+ else
+ loader.unsetenv("boot_multicons")
+ loader.setenv("boot_serial", "YES")
+ end
+ else
+ if loader.getenv("boot_serial") ~= nil then
+ loader.unsetenv("boot_serial")
+ else
+ loader.setenv("boot_multicons", "YES")
+ loader.setenv("boot_serial", "YES")
+ end
+ end
+end
+
recordDefaults()
hook.register("config.reloaded", core.clearCachedKernels)
return core
diff --git a/stand/lua/menu.lua b/stand/lua/menu.lua
index 103ec9c000500..4eb801a16e2dd 100644
--- a/stand/lua/menu.lua
+++ b/stand/lua/menu.lua
@@ -244,6 +244,7 @@ menu.welcome = {
boot_entry_2,
menu_entries.prompt,
menu_entries.reboot,
+ menu_entries.console,
{
entry_type = core.MENU_SEPARATOR,
},
@@ -284,6 +285,16 @@ menu.welcome = {
end,
alias = {"s", "S"},
},
+ console = {
+ entry_type = core.MENU_ENTRY,
+ name = function()
+ return color.highlight("C") .. "ons: " .. core.getConsoleName()
+ end,
+ func = function()
+ core.nextConsoleChoice()
+ end,
+ alias = {"c", "C"},
+ },
prompt = {
entry_type = core.MENU_RETURN,
name = color.highlight("Esc") .. "ape to loader prompt",