黑苹果启动参数都是做什么用的?如何添加或删除?

2020-09-28 / 4.72k / 教程 / 2.95k / 9分钟

概述

本文最后更新:2020年9月29日

Boot Arguments,翻译为启动参数,一般写作 boot-args,在安装黑苹果时避免不了操作/添加/删除这个启动参数,其作用是强制使系统在启动的过程中开启/关闭/切换某些特定的功能,达到兼容/排错等目的。但是,让人眼花缭乱的各类参数让小白们望而却步,跟着好不容易找到的教程添加了几个,结果到群里一问大神又说某某参数是用不到的。本文接下来会详细解释黑苹果安装/使用时用的各类启动参数以及对应效果,希望你看完后有所帮助。

因个人知识量和经验有限,如未能解决你的疑问请见谅。

 

如何添加启动参数?

首先,需要明确你在使用哪种引导工具,目前主流的是 Clover 以及 OpenCore。Clover 的标志是绿色四叶草,OpenCore 是蓝色的圆圈;Clover 在启动时系统选择界面有主题服务,所以一般比较花哨,OpenCore 的启动界面一般比较简陋,黑底白字菜单,或者黑底几个图标居中。

 

Clover 操作方法

针对 Clover,可以使用 Clover Configurator(翻译 四叶草配置工具),是比较成熟的软件,唯一需要注意的是 Clover bootloader 版本要和配置工具对应,截止本文发布,Clover r5120 以下版本用配置器 5.15.0.0 以下的版本都可以,r5120 及以上请使用 5.15.0.0 以上版本,「注意」如果你不清楚你的 Clover Bootloader 版本,一般位于启动后系统选择界面右下角,或使用 Hackintool,切换到“引导”选项卡查看。如果你还没有进入 macOS,则可以使用代码编辑工具,直接看下面代码编辑器方法。

下载安装并运行 Clover Configurator,挂载你的 EFI 分区:

找到并打开 Config.plist 文件:

 

切换到引导参数选项卡,引导参数可以在下图红框区域添加(可右键选择也可点击+号再双击输入):

添加完成后保存文件即可。

 

OpenCore 操作方法

和 Clover 类似,OpenCore 也有一个配置工具,名为 OpenCore Configurator,不过这个软件经常会更新出一些莫名其妙的 BUG,并且严格要求对应的 OpenCore Bootloader 版本,请务必从软件更新说明中查看对应的版本。至于如何查看 OpenCore Bootloader 版本,可使用 Hackintool,切换到“引导”选项卡查看;另外,也可以在不开启 OpenCore GUI 界面模式的情况下,在黑底白字的启动界面查看,OpenCore 会在第一行输出类似下面的内容:

OpenCore Boot Menu (REL-058-2020-05-04)

其中,REL 代表 Release 版,058 代表版本是 0.5.8,后面的数字是版本发布日期。

总之,新手慎用 OpenCore Configurator,其它推荐的有 PlistEdit ProProperTree,这俩是专门用来编辑 .plist 文件的。针对这个情况,这里使用配置工具、ProperTree 进行演示。以下方法任选其一。

 

OpenCore 配置工具操作法

运行软件,点击上方图标即可加载 EFI 分区。

接下来找到 config.plist,右键使用 OpenCore Configurator 打开即可。

切换到 NVRAM 选项卡,右侧找到 7C436110-AB2A-4BBB-A880-FE41995C9F82,启动参数即显示在右方面板,见图:

输入或修改完成后,保存文件退出即可。

 

ProperTree 操作法

ProperTree 是一个基于 Python 编写的跨平台软件,这意味着该软件拥有 Windows 版本,所以以下操作均可以在 Windows 下进行。首先,挂载 EFI 分区,使用 ProperTree 打开 config.plist,找到以下位置,双击即可输入:

输入或修改完成后,保存文件退出即可。

 

代码编辑器方法

如果你已经进入 macOS,可以使用 Clover/OpenCore Configurator 一样的挂载 EFI 分区步骤,如果你不愿意使用配置工具,可在终端使用下面的命令:

diskutil list
sudo diskutil mount disk1s1

每次执行一个命令,其中 disk1s1 需要根据你实际情况填写,一般情况下,当前系统的 EFI 分区是 disk1s1。

如果你还在 Windows,打开 EFI 文件夹,找到 config.plist,使用代码编辑工具打开即可;如果你的 EFI 文件在 U 盘里,可使用 Diskgenuis 等软件将 config 文件拷贝到桌面,修改后再拷贝回原来的位置(没有配图,实在不明白请自行百度一下)。

接下来找到并使用代码编辑工具打开 Config.plist 文件(下图是 Visual Studio Code):

按下 Command + F 或 Ctrl + F 组合键调出查找框,输入 boot-args:

上图中,刚好位于 boot-args 下面一行的那一堆字母和符号就是启动参数,添加或修改,保存即可。

 

操作建议

只要掌握了各个软件的特性和操作方法,无论使用上述哪种方法都是可以的。需要注意的有以下几点:

  • Configurator 的版本务必、一定、必须与你正在使用的 Clover/OpenCore Bootloader 版本相对应,尤其是 OpenCore,版本对不上很容易 Game Over;
  • .plist 本质上是一个 xml 格式的文件,几乎任何一个专业的代码编辑器都可以操作它,例如本文使用的 VScode,其它还有 SublimeText,Notepad++ 等等。在使用代码编辑器修改 config 文件时,不能破坏标签的完整性,因为这会破坏 config 文件结构,但这需要拥有一定的 xml 或其它标记语言基础知识,新手请勿盲目操作。在黑苹果世界里,比较推荐的是 ProperTree 或 PlistEdit Pro 一类的专用编辑工具;
  • 不要用记事本,不要用记事本,不要用记事本编辑 config 文件!

 

引导参数列表&解释

下面是 macOS 系统可以使用的启动参数列表,功能解释同时列出,使用要点有两个:

  • 参数之间以空格分隔开
  • 在一个参数中,- 和 = 只会同时存在一个,例如:debug=0x100,-xcpm。即:有了 = 号就不会有 - 号,反之亦然,新手请务必牢记
参数解释
-v用于安装前期启动时显示代码界面,在安装macOS时,应添加此参数以获取明确的错误信息。
-x安全启动模式,类似 Windows 的安全模式。此模式下 macOS 会尽可能少的加载 Kext 文件。
-s单用户模式。这一模式将会启动终端模式,可以用这种方式修复你的系统。
-f关闭 Kext 缓存模式,等于强制重建 Kext 缓存。
-l在系统日志中输出内存泄漏的相关记录。
iog=0x0此参数将强制 MacBook 机型在合盖后,接入外部显示器和键盘时系统保持开启状态;但同时,此参数会在接入外部显示器时关闭笔记本的内屏,这可能对保护屏幕以及省电有帮助。
platform=X86PC此参数将强制禁用 ACPI 电源管理。而 platform=ACPI 将强制启用 ACPI 电源管理。
idlehalt=1强制 CPU 进入低功耗模式。
debug=0x100此参数用于禁用五国图,把 Kernel Panic(内核崩溃)的相关数据直接输出在屏幕上,可用于禁止发生内核崩溃时自动重启,这将对排查错误有助益,这一参数还可以用于 Core Dump。其它可用值还有:0x200,这可以在内核崩溃后使用快捷键(C 继续、R 重启、K 进入 KDB);0x400 可用于触发内核崩溃后自动进行 Core Dump;0x2000 将只生成并发送 Kernel Panic 日志,不包括完整的 Core Dump。除此之外还有很多其他值,但一般以上几个已经足够安装 macOS 时使用。
keepsyms=1此参数可以为 debug=0xN 提供更多错误信息。
dart=0此参数会关闭 64 位硬件上的系统 PCI 地址映射器(DART)。DART 在拥有 2GB 以上物理内存的机器上是必需的,在默认情况下 DART 都是加载的。当使用 Clover 引导系统且 BIOS 无法关闭 VT-d 时可尝试此参数。
darkwake=0在拥有完全定制好的 USB 接口时完全不必使用此参数,除非你真的需要操控 HID Tickle 行为。darkwake 是 XNU 的一部分,XNU 是一个混合内核,是 Darwin 系统的一部分(macOS 和 iOS 均使用了 Darwin )。因启动参数仅用于按位计算,所以可能的值有 0、1、2、3、256、257、258、259 等等以此类推,也因此 darkwake=8 实际等于 darkwake=0;darkwake=10 实际等于 darkwake=2,XNU 自 2782.1.97 起删除了这两个值(8 和 10),故这两个值在 Yosemite 及更高版本 macOS 中已失效。黑苹果建议关闭电能小憩,使用 pmset 命令调试休眠。如果实在需要使用,可尝试 darkwake=0 或 3。更多信息可参考外网这篇文章
nvda_drv=1开启 NVIDIA Web Driver,用于启用英伟达显卡驱动。
nv_disable=1关闭英伟达显卡驱动,请勿与 nvda_drv=1 同时使用。
-no_compat_check用于禁用 macOS 兼容性检查。例如,macOS 11.0 BigSur 不再支持 iMac 2014 年之前推出的机型,此时可使用此参数以禁止兼容性检查,以达到安装目的。
kext-dev-mode=1开启 Kext 开发模式,将允许加载未签名的 Kext。在 Yosemite 及更高版本 macOS 中,默认情况下出于安全原因,只会加载已签名的 Kext。此参数可以在 Yosemite 更改此设置,允许加载未签名的 Kext。在比 Yosemite 更新的 macOS 版本(El Capitan)中,引入了另一种安全机制,即系统完整性保护(SIP,也称为 Rootless),该系统会防止修改系统文件,加载未签名的 Kext 等。SIP 可以通过注入正确的 CSR NVRAM 变量来禁用,也可以通过恢复分区运行命令行禁用它。总之,在 10.11 及以后的系统中,已无需此参数。
cpus=1CPU单核模式,用于限制系统中活动 CPU 的数量。苹果的开发者工具有一个选项用于启用或禁用系统中的一些 CPU,但你也可以通过这个参数指定要使用的 CPU 数量。在某些情况下,这也许有助于省电,或者你正在调试 X86 电源驱动。
-xcpm用于强制开启 xcpm 以实现 CPU 原生电源管理,一般用于较老架构的 CPU,例如 Ivy Bridge。
npci=0x2000此参数会禁用某些与 kIOPCIConfiguratorPFM64 相关的 PCI 调试,另一个相似的选择是 npci=0x3000,后者还会禁用与 gIOPCITunnelledKey 相关的调试。当卡在 PCI Start Configuration 时,应使用此参数,因为存在与 PCI 通道有关的 IRQ 冲突。
npci=0x3000同 npci=0x2000。
rootless=0使用 Rootless 模式,请勿在 El Capitan 及更高版本的 macOS 上使用,因为从 El Capitan 起引入了 SIP(系统完整性保护)机制。一般情况下关闭 SIP 即可达成你的目的。
-disablegfxfirmware在 WhateverGreen.kext 出现之前,该参数用于关闭苹果的 iGPU firmware 以正确驱动 Intel 核显,在 macOS 10.13 及更高版本中已不使用。

 

各内核扩展提供的参数

  • 以下是各常用内核扩展提供的参数,例如 AppleALC、Whatevergreen、Lilu 等等;
  • 使用要点和上面的参数一致。
超级会员免费 永久超级会员免费

已有61人查看

 

建议的参数

全新安装 macOS 10.15 及以上时,在没有特殊情况下,最基础常用的参数有下面几个:

  • -v:跑码排错
  • debug=0x100 或 debug=0x200:防止自动重启,禁用五国图直接输出错误信息
  • keepsyms=1:辅助上一个参数
  • agdpmod=pikera:Navi 核心避免黑屏使用,其它显卡如 RX400/500,Vega56/64 无需此参数
  • npci=0x2000 或 npci=0x3000:AMD 系统没有开启 Above 4G Decoding 时使用;X299 卡在 PCI Start Configuration 时使用

若要使用其它参数,根据上面的解释按需添加即可。

 

0. 本站所有资源解压密码均为 heipg.cn
1. 本站资源收集于网络,仅做学习和交流使用,请于下载后24小时内删除。如果你喜欢我们推荐的软件,请购买正版支持作者。
2. 如有无法下载的链接,请及时邮箱[email protected],或到QQ群进行反馈,我们将及时进行处理。
3. 本站发布的内容若侵犯到您的权益,请联系站长删除,联系方式:[email protected],我们将第一时间配合处理!
扫描QQ二维码加入【黑苹果星球交流群】

黑苹果星球 » 黑苹果启动参数都是做什么用的?如何添加或删除?

发表评论