retrofit Safe Mode loader menu item actions
The menu item is now made completely independent with the ACPI item - most modern systems seem to require ACPI and become even more "unsafe" without it. Safe Mode no longer disables APIC for the same reason. kbdmux is not disabled as this feature has proven itself stable. New actions: - SMP is disabled in the Safe Mode now - eventtimers are forced to periodic mode (some real and virtual systems seem to have problems otherwise) - geom extra vigorous integrity checking is disabled, this is to facilitate migration from previous versions Possible short term to do: - make SMP switch a separate menu item - restore APIC switch as a separate menu item Longer term to do: - turn various tweaks into separate menu items in a Safe Mode sub-menu Please consider adding a safety tweak to Safe Mode when introducing new major features or changes that may cause instabilities. Discussed with: jhb, scottl, Devin Teske MFC after: 3 weeks (stable/9 only)
This commit is contained in:
parent
19af6e5d9d
commit
3e6288731d
@ -62,30 +62,21 @@ marker task-menu-commands.4th
|
||||
-rot 2dup 12 + c! rot \ replace 'N' with ASCII numeral
|
||||
|
||||
evaluate 0= if
|
||||
s" hint.apic.0.disabled" unsetenv
|
||||
s" kern.smp.disabled" unsetenv
|
||||
s" hw.ata.ata_dma" unsetenv
|
||||
s" hw.ata.atapi_dma" unsetenv
|
||||
s" hw.ata.wc" unsetenv
|
||||
s" hw.eisa_slots" unsetenv
|
||||
s" hint.kbdmux.0.disabled" unsetenv
|
||||
s" kern.eventtimer.periodic" unsetenv
|
||||
s" kern.geom.part.check_integrity" unsetenv
|
||||
else
|
||||
\
|
||||
\ Toggle ACPI elements if necessary
|
||||
\
|
||||
acpipresent? if acpienabled? if
|
||||
menuacpi @ dup 0<> if
|
||||
toggle_menuitem ( N -- N )
|
||||
then
|
||||
drop
|
||||
acpi_disable
|
||||
then then
|
||||
|
||||
s" set hint.apic.0.disabled=1" evaluate
|
||||
s" set kern.smp.disabled=1" evaluate
|
||||
s" set hw.ata.ata_dma=0" evaluate
|
||||
s" set hw.ata.atapi_dma=0" evaluate
|
||||
s" set hw.ata.wc=0" evaluate
|
||||
s" set hw.eisa_slots=0" evaluate
|
||||
s" set hint.kbdmux.0.disabled=1" evaluate
|
||||
s" set kern.eventtimer.periodic=1" evaluate
|
||||
s" set kern.geom.part.check_integrity=0" evaluate
|
||||
then
|
||||
|
||||
menu-redraw
|
||||
|
Loading…
x
Reference in New Issue
Block a user