lualoader: Revert to ASCII menu frame for serial console
The box drawing characters we use aren't necessarily safe with a serial console; for instance, in the report by npn@, these were causing his xterm to send back a sequence that lua picked up as input and halted the boot. This is less than ideal. Fallback to ASCII frames for console with 'comconsole' in it. This is a partial revert r338108 by imp@ -- instead of removing the menu entirely and disabling color/cursor sequences, just reverting the default frame to ASCII is enough to not break in this setup. Reported by: npn Triaged and recommended by: tsoome
This commit is contained in:
parent
da327cd22e
commit
90a2541772
@ -325,6 +325,16 @@ function core.isZFSBoot()
|
||||
return false
|
||||
end
|
||||
|
||||
function core.isSerialConsole()
|
||||
local c = loader.getenv("console")
|
||||
if c ~= nil then
|
||||
if c:find("comconsole") ~= nil then
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function core.isSerialBoot()
|
||||
local s = loader.getenv("boot_serial")
|
||||
if s ~= nil then
|
||||
|
@ -144,13 +144,20 @@ local function drawmenu(menudef)
|
||||
return alias_table
|
||||
end
|
||||
|
||||
local function defaultframe()
|
||||
if core.isSerialConsole() then
|
||||
return "ascii"
|
||||
end
|
||||
return "double"
|
||||
end
|
||||
|
||||
local function drawbox()
|
||||
local x = menu_position.x - 3
|
||||
local y = menu_position.y - 1
|
||||
local w = frame_size.w
|
||||
local h = frame_size.h
|
||||
|
||||
local framestyle = loader.getenv("loader_menu_frame") or "double"
|
||||
local framestyle = loader.getenv("loader_menu_frame") or defaultframe()
|
||||
local framespec = drawer.frame_styles[framestyle]
|
||||
-- If we don't have a framespec for the current frame style, just don't
|
||||
-- draw a box.
|
||||
|
Loading…
Reference in New Issue
Block a user