提交 0efb97c5 编写于 作者: V vit9696

OpenCoreMisc: Support Boot Resolution option

上级 827fa7ed
...@@ -1221,6 +1221,20 @@ behaviour that does not go to any other sections ...@@ -1221,6 +1221,20 @@ behaviour that does not go to any other sections
\textbf{Description}: Reinstalls apple boot policy protocol with a builtin \textbf{Description}: Reinstalls apple boot policy protocol with a builtin
version. This may be used to ensure APFS compatibility on VMs or legacy Macs. version. This may be used to ensure APFS compatibility on VMs or legacy Macs.
\item
\texttt{Resolution}\\
\textbf{Type}: \texttt{plist\ string}\\
\textbf{Default value}: Empty string\\
\textbf{Description}: Sets console output screen resolution as specified
with the \texttt{WxH@Bpp} (e.g. \texttt{1920x1080@32}) or
\texttt{WxH} (e.g. \texttt{1920x1080}) formatted string. Set to empty string
not to change screen resolution. Set to \texttt{Max} to try to use largest
available screen resolution.
\emph{Note}: This will fail when console handle has no GOP protocol. When
the firmware does not provide it, it can be added with \texttt{ProvideConsoleGop}
UEFI quirk set to \texttt{true}.
\item \item
\texttt{ShowPicker}\\ \texttt{ShowPicker}\\
\textbf{Type}: \texttt{plist\ boolean}\\ \textbf{Type}: \texttt{plist\ boolean}\\
......
...@@ -357,6 +357,8 @@ ...@@ -357,6 +357,8 @@
<true/> <true/>
<key>ReinstallProtocol</key> <key>ReinstallProtocol</key>
<true/> <true/>
<key>Resolution</key>
<string></string>
<key>ShowPicker</key> <key>ShowPicker</key>
<true/> <true/>
<key>Timeout</key> <key>Timeout</key>
......
...@@ -21,6 +21,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. ...@@ -21,6 +21,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include <Library/DevicePathLib.h> #include <Library/DevicePathLib.h>
#include <Library/MemoryAllocationLib.h> #include <Library/MemoryAllocationLib.h>
#include <Library/OcAppleBootPolicyLib.h> #include <Library/OcAppleBootPolicyLib.h>
#include <Library/OcConsoleLib.h>
#include <Library/OcDebugLogLib.h> #include <Library/OcDebugLogLib.h>
#include <Library/PrintLib.h> #include <Library/PrintLib.h>
#include <Library/UefiBootServicesTableLib.h> #include <Library/UefiBootServicesTableLib.h>
...@@ -143,7 +144,11 @@ OcMiscLateInit ( ...@@ -143,7 +144,11 @@ OcMiscLateInit (
OUT EFI_HANDLE *LoadHandle OPTIONAL OUT EFI_HANDLE *LoadHandle OPTIONAL
) )
{ {
EFI_STATUS Status; EFI_STATUS Status;
UINT32 Width;
UINT32 Height;
UINT32 Bpp;
BOOLEAN SetMax;
if (Config->Misc.Debug.ExposeBootPath) { if (Config->Misc.Debug.ExposeBootPath) {
OcStoreLoadPath (LoadPath); OcStoreLoadPath (LoadPath);
...@@ -172,5 +177,24 @@ OcMiscLateInit ( ...@@ -172,5 +177,24 @@ OcMiscLateInit (
} }
} }
ParseScreenResolution (
OC_BLOB_GET (&Config->Misc.Boot.Resolution),
&Width,
&Height,
&Bpp,
&SetMax
);
if (SetMax || (Width > 0 && Height > 0)) {
Status = SetConsoleResolution (Width, Height, Bpp);
DEBUG ((
DEBUG_INFO,
"OC: Changed resolution to %u:%u@%u (max: %d)\n",
Width,
Height,
Bpp
));
}
return Status; return Status;
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册