# 我的电脑配置

硬件类型 硬件型号
处理器 AMD Ryzen 5 3600 6-Core 六核
主板 微星 B450M MORTAR MAX(MS-7B89)
内存 16GB 海盗船 DDR4 3200MHz
主硬盘 SATA 英特尔 ssd 240GB
显卡 AMD Radeon RX 5600XT (蓝宝石)
声卡 瑞昱 ALC892 @ AMD High Definition Audio 控制出去
网卡 瑞昱 RTL8168/8111/8112 Gigabit Ethernet Controller / 微星

# 说明

大部分基本安装教程我都是跟着官方提供的教程走的。

注意

官方教程网址访问是需要 科学上网,这点对国内有点泪目了。

为了更快浏览文档,我将官网文档做了一份镜像在 gitee。终于可以流畅访问了。😭

重要事情说三遍!

跟着教程走!跟着教程走!跟着教程走!

可以解决 90% 的问题。

# 安装准备环境

  1. macOS 操作系统: 因为我有台 MacBook, 我就直接在 macOS 系统上操作。
  2. terminal 终端使用基础,掌握基本命令使用。
  3. 其他操作系统请查看官方文档对应教程。

# 引导方式

我使用的是目前最新的 opencore 0.6.0 版本。

可以直接去 GitHub Release 下载对应版本。

OpenCorePkg 官方链接

# U 盘 引导安装

在 macOS 系统上制作 U 盘引导 如下:

# 下载操作系统

强大网友已经开发好了下载工具,可以通过下面的脚本进行下载 macOS

gibMacOS

下载 gibMacOS 后,进入文件夹执行 ./gibMacOS.command

选择需要下载的系统版本:

gibmacos

# 制作 macOS 安装 app

执行 gibMacOS 文件夹里面命令 BuildmacOSInstallApp.command 用于生成安装镜像。

输入下载的 macOS 系统绝对路径回车,如图

gib-location

执行完成后系统目录会多出一个安装程序。

gib-install-done

# U 盘格式化处理

通过 macOS 工具 Disk Utility 对 U 盘进行格式化处理。

  • 注意: 默认情况下磁盘工具只显示分区,通过快捷键CMD/Win + 2 显示所有设备,对 U 盘设备进行格式化处理

format-usb

# 开始制作 U 盘系统引导

通过终端执行createinstallmedia 指定 u 盘进行刻录操作

sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
  • 注意:/Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia 路径是上一步制作安装 app 产物, createinstallmedia 命令在安装 app 里面找到。

执行命令后开始等待制作完成。

# 制作 EFI 引导文件

挂在 U 盘 EFI 分区:

  1. 查看 U 盘的 EFI 分区信息, 简单根据分区空间判断那张是 U 盘
diskutil list

diskutil-list

  1. 挂在 EFI 分区

我这里是 /dev/disk2s1

sudo diskutil mount /dev/disk2s1

TIP

嫌麻烦可以直接用官方文档提供的脚本工具自动挂载。

MountEFI

mount-efi-usb

此时 U 盘 EFI 分区内容应该是空的。接下来就是引导文件制作了。

base-efi

# 添加基本 opencore 文件

下载 opencore 文件解压拷贝 EFI 目录到 EFI 分区里面:

OpenCorePkg releases

注意要整个 EFI 文件夹拷贝进去。

版本说明:

  • DEBUG:调试版本,这个版本提供更详细信息帮助发现问题,引导速度会相对慢一点。U 盘建议用这个版本,方便发现处理各种问题。
  • RELEASE:发行版,更快速的引导时间,但是实际上 OpenCore 中没有提供有用的调试信息,这使得故障排除更加困难。系统安装完成后,基于主机引导可以配置这个,意味着我们已经解决了大部分问题并正常启动系统。

注意

Windows 用户安装可以跳过这步了,因为前面制作 u 盘在 window 上面通过脚本帮你处理好了。

opencore-files

# 移除不必要的一些驱动文件

如图,保留红框文件,其他文件可以删除。具体说明可以看官网文档说明。

base-opencore

注意

这些都是 opencore 引导必备文件!

下一步收集相关 ACPI、KEXT、固件驱动等

# 收集固件、驱动

# UEFI 固件驱动

必须放在 EFI/OC/Drivers/

用于查看 HFS 卷(即 macOS 安装程序和恢复分区/映像)所需。 请勿混用其他 HFS 驱动程序

# Kexts

必须放在 EFI/OC/Kexts/

# 必须要有

VirtualSMC 插件

# 显卡驱动

AMD 显卡驱动就要靠玩意了!

# 声卡驱动

我的 AMD 系列声卡麦克风不支持,前置面板耳机接口无法使用。

# 网卡驱动

瑞昱网卡驱动

# 其他驱动

用于修复非 apple NVMe 上的电源管理和初始化,如果 m2 口的 ssd 需要加上。

# SSDTs

修复 EC 问题,具体说明请看Fixing Embedded Controller

# 重头戏:config.plist 配置

建议用 opencore configuration(简称 OCC) 配置工具。

作者更新频繁,bug 什么修复及时,内置各种默认添加配置。

无脑式修改什么的最舒服了!

将 opencore 包里面 Docs/Sample.plist 放在 EFI/OC/目录下,文件名改为 config.plist

# ACPI

配置如图: 记得勾选启用

config-acpi

# Booter

Quirks 启用如图:

config-booter

# DeviceProperties

声卡 ID ,核心显卡驱动显示等可以在这里注入修改。

  • 声卡 ID 注入我直接在引导参数添加了,这里就没有。
  • AMD 3600 没有核心显卡

# Kernel 内核设置

kext 直接拖拽到这里配置,或者点击浏览加载。注意加载顺序。

  • Lilu.kextVirtualSMC.kext 必须放在前面。
  • AMDRyzenCPUPowerManagement.kext 必须放在SMCAMDProcessor.kext 前面
  • Quirks 都是根据官方文档说明点的。

config-kernel

AMD CPU 补丁

可以通过编辑器批量修改。当然可以通过 OCC 一个个添加。具体就不说了,可以看官方文档说明

官网补丁下载位置: kernel patches

# Misc 配置

其他配置保持默认,修改项如下:

  • Debug 项
Quirk Enabled
AppleDebug YES
ApplePanic YES
DisableWatchDog YES
Target 67
  • Security
Quirk Enabled
AllowNvramReset YES
AllowSetDefault YES
Vault Optional
ScanPolicy 0

# NVRAM

  • 添加

    1. 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14

    config-nvram-1

    1. 7C436110-AB2A-4BBB-A880-FE41995C9F82

    config-nvram-2

    我的配置 boot-args 是 agdpmod=pikera keepsyms=1 debug=0x100 alcid=1

    boot-args 有关配置如下:

    boot-args description
    -v 输出详细系统加载日志信息,方便排查,u 盘引导建议加上这个参数
    debug=0x100 调试用
    keepsyms=1 和 debug=0x100 一起使用,内核奔溃时候输出有用信息,方便排查
    npci=0x2000 看不懂啥意思,只要注意一点就行。如果主板 BIOS 设置开启了 Above4GDecoding ,这个参数不用添加。否则冲突
    alcid=1 声卡注入 ID,alc892 我测试了所有 ID,事实证明只有 1 效果是最好的
    agdpmod=pikera AMD 显卡黑屏修复
    nvda_drv_vrl=1 英伟达显卡驱动
  1. 开启 WriteFlash

# PlatformInfo 平台信息

主要添加苹果产品类型、序列号,ID 等

通过命令生成 GenSMBIOS

  • iMacPro1,1: AMD RX Polaris and newer
  • MacPro7,1: AMD RX Polaris and newer(Note that MacPro7,1 is also a Catalina exclusive)

这里使用 iMacPro1,1

  #######################################################
 #              iMacPro1,1 SMBIOS Info                 #
#######################################################

Type:         iMacPro1,1
Serial:       C02YX0TZHX87
Board Serial: C029269024NJG36CB
SmUUID:       DEA17B2D-2F9F-4955-B266-A74C47678AD3
  • ROM:添加网卡的 mac 地址的值。(注意,可以用一个伪装的 MAC 地址值,这里我用的是自己网卡的)

config-platforminfo

# UEFI

  • 驱动

添加:HfsPlus.efiOpenRuntime.efi

config-uefi

# B450M 主板 BIOS 配置

# 关闭选项

  • 快速启动(Fast Boot)
  • 安全启动(Secure Port)
  • 串行端口(Serial/COM Port)
  • 并行端口(Parallel Port)
  • CSM 兼容模式(比如改成 UEFI, 我这里是用 UEFI 引导)

# 开启选项

  • Above 4G decoding(注意 NVRAM 配置启动参数,如果添加了 npci,这里需要关闭)
  • EHCI/XHCI Hand-off
  • Windows 8.1/10 UEFI Mode
  • SATA Mode: AHCI

最后

接下来就是插入 U 盘到主机,开机按 F11 可以选择 U 盘引导

# 注意事项

  1. EFI 配置变更

需要引导使用 Reset NVRAM,否则可能会用旧的配置引导。保守点就是每次 EFI 文件变成都执行一下 Reset NVRAM

  1. 如果遇到引导跑完代码后显示器黑屏

但是屏幕看起来是亮的?电源指示灯正常的? 不妨看看显示器是否多个接口,没切换到正确的?(我就被坑到了。。)

# 最后

不得不说 OpenCore 官方文档是真的全面呀,想想之前用 clover 熬夜试错那真是老泪众横。爱了爱了

献上我的 EFI 文件:

hackintosh-b450m-ryzen3600-rx5600xt

上次更新: 8/14/2020, 10:51:18 PM