Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
btwise
OpenCorePKG_MOD
提交
2d4cf6b0
O
OpenCorePKG_MOD
项目概览
btwise
/
OpenCorePKG_MOD
通知
26
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
OpenCorePKG_MOD
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2d4cf6b0
编写于
5月 01, 2019
作者:
V
vit9696
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
OpenCoreMisc: Allow fine-tuning console control for UI and boot
上级
b0ec0856
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
74 addition
and
46 deletion
+74
-46
Docs/Configuration.pdf
Docs/Configuration.pdf
+0
-0
Docs/Configuration.tex
Docs/Configuration.tex
+42
-39
Platform/OpenCore/OpenCore.c
Platform/OpenCore/OpenCore.c
+19
-0
Platform/OpenCore/OpenCoreMisc.c
Platform/OpenCore/OpenCoreMisc.c
+12
-0
Platform/OpenCore/OpenCoreUefi.c
Platform/OpenCore/OpenCoreUefi.c
+1
-7
未找到文件。
Docs/Configuration.pdf
浏览文件 @
2d4cf6b0
无法预览此类型文件
Docs/Configuration.tex
浏览文件 @
2d4cf6b0
...
@@ -1252,6 +1252,48 @@ behaviour that does not go to any other sections
...
@@ -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
}
Set to empty string not to change console mode. Set to
\texttt
{
Max
}
to try to use largest available console mode.
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
\item
\texttt
{
HideSelf
}
\\
\texttt
{
HideSelf
}
\\
\textbf
{
Type
}
:
\texttt
{
plist
\
boolean
}
\\
\textbf
{
Type
}
:
\texttt
{
plist
\
boolean
}
\\
...
@@ -2410,10 +2452,6 @@ tweaks for the onboard firmware.
...
@@ -2410,10 +2452,6 @@ tweaks for the onboard firmware.
when other console control quirks are used
(
\texttt
{
IgnoreTextInGraphics
}
when other console control quirks are used
(
\texttt
{
IgnoreTextInGraphics
}
and
\texttt
{
SetConsoleControl
}
)
.
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
\item
\texttt
{
ProvideConsoleGop
}
\\
\texttt
{
ProvideConsoleGop
}
\\
\textbf
{
Type
}
:
\texttt
{
plist
\
boolean
}
\\
\textbf
{
Type
}
:
\texttt
{
plist
\
boolean
}
\\
...
@@ -2434,41 +2472,6 @@ tweaks for the onboard firmware.
...
@@ -2434,41 +2472,6 @@ tweaks for the onboard firmware.
or at least have an option for, select firmwares do not. As a result,
or at least have an option for, select firmwares do not. As a result,
operating system may freeze upon boot. Not recommended unless required.
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
}
\end
{
enumerate
}
\section
{
Troubleshooting
}
\label
{
troubleshooting
}
\section
{
Troubleshooting
}
\label
{
troubleshooting
}
...
...
Platform/OpenCore/OpenCore.c
浏览文件 @
2d4cf6b0
...
@@ -29,6 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
...
@@ -29,6 +29,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include <Library/OcAppleBootPolicyLib.h>
#include <Library/OcAppleBootPolicyLib.h>
#include <Library/OcBootManagementLib.h>
#include <Library/OcBootManagementLib.h>
#include <Library/OcConfigurationLib.h>
#include <Library/OcConfigurationLib.h>
#include <Library/OcConsoleLib.h>
#include <Library/OcCpuLib.h>
#include <Library/OcCpuLib.h>
#include <Library/OcDevicePathLib.h>
#include <Library/OcDevicePathLib.h>
#include <Library/OcStorageLib.h>
#include <Library/OcStorageLib.h>
...
@@ -92,6 +93,15 @@ OcEfiStartImagePrologue (
...
@@ -92,6 +93,15 @@ OcEfiStartImagePrologue (
if
(
!
IsWindows
)
{
if
(
!
IsWindows
)
{
OcLoadKernelSupport
(
&
mOpenCoreStorage
,
&
mOpenCoreConfiguration
);
OcLoadKernelSupport
(
&
mOpenCoreStorage
,
&
mOpenCoreConfiguration
);
}
}
//
// Request OS mode.
//
ConsoleControlSetBehaviour
(
ParseConsoleControlBehaviour
(
OC_BLOB_GET
(
&
mOpenCoreConfiguration
.
Misc
.
Boot
.
ConsoleBehaviourOs
)
)
);
}
}
}
}
...
@@ -102,6 +112,15 @@ OcEfiStartImageEpilogue (
...
@@ -102,6 +112,15 @@ OcEfiStartImageEpilogue (
)
)
{
{
if
(
mOpenCoreStartImageNest
==
1
)
{
if
(
mOpenCoreStartImageNest
==
1
)
{
//
// Restore ui mode.
//
ConsoleControlSetBehaviour
(
ParseConsoleControlBehaviour
(
OC_BLOB_GET
(
&
mOpenCoreConfiguration
.
Misc
.
Boot
.
ConsoleBehaviourUi
)
)
);
if
(
!
mOpenCoreStartImageIsWindows
)
{
if
(
!
mOpenCoreStartImageIsWindows
)
{
OcUnloadKernelSupport
();
OcUnloadKernelSupport
();
}
}
...
...
Platform/OpenCore/OpenCoreMisc.c
浏览文件 @
2d4cf6b0
...
@@ -240,3 +240,15 @@ OcMiscLateInit (
...
@@ -240,3 +240,15 @@ OcMiscLateInit (
return
Status
;
return
Status
;
}
}
VOID
OcMiscUefiQuirksLoaded
(
IN
OC_GLOBAL_CONFIG
*
Config
)
{
ConsoleControlSetBehaviour
(
ParseConsoleControlBehaviour
(
OC_BLOB_GET
(
&
Config
->
Misc
.
Boot
.
ConsoleBehaviourUi
)
)
);
}
Platform/OpenCore/OpenCoreUefi.c
浏览文件 @
2d4cf6b0
...
@@ -223,8 +223,6 @@ OcLoadUefiSupport (
...
@@ -223,8 +223,6 @@ OcLoadUefiSupport (
IN
OC_CPU_INFO
*
CpuInfo
IN
OC_CPU_INFO
*
CpuInfo
)
)
{
{
OC_CONSOLE_CONTROL_BEHAVIOUR
Behaviour
;
if
(
Config
->
Uefi
.
Quirks
.
DisableWatchDog
)
{
if
(
Config
->
Uefi
.
Quirks
.
DisableWatchDog
)
{
//
//
// boot.efi kills watchdog only in FV2 UI.
// boot.efi kills watchdog only in FV2 UI.
...
@@ -241,11 +239,7 @@ OcLoadUefiSupport (
...
@@ -241,11 +239,7 @@ OcLoadUefiSupport (
}
}
if
(
Config
->
Uefi
.
Quirks
.
ProvideConsoleControl
)
{
if
(
Config
->
Uefi
.
Quirks
.
ProvideConsoleControl
)
{
Behaviour
=
ParseConsoleControlBehaviour
(
ConsoleControlConfigure
(
OC_BLOB_GET
(
&
Config
->
Uefi
.
Quirks
.
SetConsoleControl
)
);
ConfigureConsoleControl
(
Behaviour
,
Config
->
Uefi
.
Quirks
.
IgnoreTextInGraphics
Config
->
Uefi
.
Quirks
.
IgnoreTextInGraphics
);
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录