From 2d4cf6b04e2269e30de0a2956feb96b06766a5bb Mon Sep 17 00:00:00 2001 From: vit9696 Date: Wed, 1 May 2019 15:43:21 +0300 Subject: [PATCH] OpenCoreMisc: Allow fine-tuning console control for UI and boot --- Docs/Configuration.pdf | Bin 262935 -> 263832 bytes Docs/Configuration.tex | 81 ++++++++++++++++--------------- Platform/OpenCore/OpenCore.c | 19 ++++++++ Platform/OpenCore/OpenCoreMisc.c | 12 +++++ Platform/OpenCore/OpenCoreUefi.c | 8 +-- 5 files changed, 74 insertions(+), 46 deletions(-) diff --git a/Docs/Configuration.pdf b/Docs/Configuration.pdf index 12e19c580a7e05290b635e568fa8e4a5ad63c9b3..ad8e3270ef6b0bbae7e81656a05dd633f1c05ed8 100644 GIT binary patch delta 32566 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 delta 31589 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 diff --git a/Docs/Configuration.tex b/Docs/Configuration.tex index 54fe42f1..e1c7490d 100644 --- a/Docs/Configuration.tex +++ b/Docs/Configuration.tex @@ -1252,6 +1252,48 @@ behaviour that does not go to any other sections Set to empty string not to change console mode. Set to \texttt{Max} to try to use largest available console mode. +\item + \texttt{ConsoleBehaviourOs}\\ + \textbf{Type}: \texttt{plist\ string}\\ + \textbf{Default value}: Empty string\\ + \textbf{Description}: Set console control behaviour upon operating system load. + + Console control is a legacy protocol used for switching between text and graphics + screen output. Some firmwares do not provide it, yet select operating systems + require its presence, which is what \texttt{ProvideConsoleControl} UEFI quirk is for. + + When console control is available, OpenCore can be made console control aware, and + and set different modes for the operating system booter (\texttt{ConsoleBehaviourOs}), + which normally runs in graphics mode, and its own user interface + (\texttt{ConsoleBehaviourUi}), which normally runs in text mode. Possible + behaviours, set as values of these options, include: + + \begin{itemize} + \tightlist + \item Empty string --- Do not modify console control mode. + \item \texttt{Text} --- Switch to text mode. + \item \texttt{Graphics} --- Switch to graphics mode. + \item \texttt{ForceText} --- Switch to text mode and preserve it + (requires \texttt{ProvideConsoleControl}). + \item \texttt{ForceGraphics} --- Switch to graphics mode and preserve it + (require \texttt{ProvideConsoleControl}). + \end{itemize} + + On most firmwares it is reasonable to set \texttt{ConsoleBehaviourOs} + to \texttt{Graphics} and \texttt{ConsoleBehaviourUi} to \texttt{Text}. + On APTIO firmwares \texttt{ConsoleBehaviourUi} is best set to + \texttt{ForceText} to avoid visual glitches. + + \emph{Note}: \texttt{IgnoreTextInGraphics} may need to be enabled for select + firmware implementations. + +\item + \texttt{ConsoleBehaviourUi}\\ + \textbf{Type}: \texttt{plist\ string}\\ + \textbf{Default value}: Empty string\\ + \textbf{Description}: Set console control behaviour upon OpenCore user + interface load. Refer to \texttt{ConsoleBehaviourOs} description for details. + \item \texttt{HideSelf}\\ \textbf{Type}: \texttt{plist\ boolean}\\ @@ -2410,10 +2452,6 @@ tweaks for the onboard firmware. when other console control quirks are used (\texttt{IgnoreTextInGraphics} and \texttt{SetConsoleControl}). - \emph{Note}: Some drivers, like AppleUiSupport, may provide equivalent functionality. - These drivers are not guaranteed to adhere to the same logic, and if a quirk is - necessary, this option is preferred. - \item \texttt{ProvideConsoleGop}\\ \textbf{Type}: \texttt{plist\ boolean}\\ @@ -2434,41 +2472,6 @@ tweaks for the onboard firmware. or at least have an option for, select firmwares do not. As a result, operating system may freeze upon boot. Not recommended unless required. -\item - \texttt{SetConsoleControl}\\ - \textbf{Type}: \texttt{plist\ string}\\ - \textbf{Default value}: Empty string\\ - \textbf{Description}: Set console control behaviour upon boot. - - Different firmwares implement console control differently or do not implement - it at all. For the latter case it is enough to install a dummy console control - and hide all onscreen text in graphics mode. However, it is often not enough - for other firmwares, which do not show text in text mode, or display visual - glitches during text/graphics console control mode switching. Possible - behaviours include: - - \begin{itemize} - \tightlist - \item Empty string --- Do not modify console control mode. - \item \texttt{Graphics} --- Switch to graphics mode. - \item \texttt{Text} --- Switch to text mode. - \item \texttt{ForceGraphics} --- Switch to graphics mode and never change. - \item \texttt{ForceText} --- Switch to text mode and never change. - \end{itemize} - - Hints (assuming \texttt{ProvideConsoleControl} is \texttt{true}): - \begin{itemize} - \tightlist - \item On Insyde and Phoenix laptops, which do not show boot menu, try - \texttt{SetConsoleControl} \texttt{Text} and \texttt{IgnoreTextInGraphics} - \texttt{false}. - \item On APTIO IV and V with verbose output that cannot be disabled try - \texttt{SetConsoleControl} \texttt{ForceText} and \texttt{IgnoreTextInGraphics} - \texttt{true}. - \item On Duet with similar to APTIO issues try \texttt{SetConsoleControl} - empty string and \texttt{IgnoreTextInGraphics} \texttt{true}. - \end{itemize} - \end{enumerate} \section{Troubleshooting}\label{troubleshooting} diff --git a/Platform/OpenCore/OpenCore.c b/Platform/OpenCore/OpenCore.c index b9ad338b..307f6da1 100644 --- a/Platform/OpenCore/OpenCore.c +++ b/Platform/OpenCore/OpenCore.c @@ -29,6 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #include #include #include +#include #include #include #include @@ -92,6 +93,15 @@ OcEfiStartImagePrologue ( if (!IsWindows) { OcLoadKernelSupport (&mOpenCoreStorage, &mOpenCoreConfiguration); } + + // + // Request OS mode. + // + ConsoleControlSetBehaviour ( + ParseConsoleControlBehaviour ( + OC_BLOB_GET (&mOpenCoreConfiguration.Misc.Boot.ConsoleBehaviourOs) + ) + ); } } @@ -102,6 +112,15 @@ OcEfiStartImageEpilogue ( ) { if (mOpenCoreStartImageNest == 1) { + // + // Restore ui mode. + // + ConsoleControlSetBehaviour ( + ParseConsoleControlBehaviour ( + OC_BLOB_GET (&mOpenCoreConfiguration.Misc.Boot.ConsoleBehaviourUi) + ) + ); + if (!mOpenCoreStartImageIsWindows) { OcUnloadKernelSupport (); } diff --git a/Platform/OpenCore/OpenCoreMisc.c b/Platform/OpenCore/OpenCoreMisc.c index 5dc03665..32dd7c24 100644 --- a/Platform/OpenCore/OpenCoreMisc.c +++ b/Platform/OpenCore/OpenCoreMisc.c @@ -240,3 +240,15 @@ OcMiscLateInit ( return Status; } + +VOID +OcMiscUefiQuirksLoaded ( + IN OC_GLOBAL_CONFIG *Config + ) +{ + ConsoleControlSetBehaviour ( + ParseConsoleControlBehaviour ( + OC_BLOB_GET (&Config->Misc.Boot.ConsoleBehaviourUi) + ) + ); +} diff --git a/Platform/OpenCore/OpenCoreUefi.c b/Platform/OpenCore/OpenCoreUefi.c index 01f8a188..6776bf91 100644 --- a/Platform/OpenCore/OpenCoreUefi.c +++ b/Platform/OpenCore/OpenCoreUefi.c @@ -223,8 +223,6 @@ OcLoadUefiSupport ( IN OC_CPU_INFO *CpuInfo ) { - OC_CONSOLE_CONTROL_BEHAVIOUR Behaviour; - if (Config->Uefi.Quirks.DisableWatchDog) { // // boot.efi kills watchdog only in FV2 UI. @@ -241,11 +239,7 @@ OcLoadUefiSupport ( } if (Config->Uefi.Quirks.ProvideConsoleControl) { - Behaviour = ParseConsoleControlBehaviour ( - OC_BLOB_GET (&Config->Uefi.Quirks.SetConsoleControl) - ); - ConfigureConsoleControl ( - Behaviour, + ConsoleControlConfigure ( Config->Uefi.Quirks.IgnoreTextInGraphics ); } -- GitLab