Hackintosh 定制FakePCIID.kext

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hackintosh 定制FakePCIID.kext相关的知识,希望对你有一定的参考价值。

参考技术A 仿冒PCI设备核心驱动,部分驱动依赖于它比如:

1.FakePCIID_AR9280_as_AR946x.kext

2.FakePCIID_Broadcom_WiFi.kext

3.FakePCIID_Intel_GbX.kext

4.FakePCIID_Intel_HD_Graphics.kext

5.FakePCIID_Intel_HDMI_Audio.kext

6.FakePCIID_XHCIMux.kext

用于将Mac不支持的硬件设备仿冒成受支持的设备以开启原生功能

比如,dw1830,第三方的BRCM20702芯片的蓝牙设备,GenericSATA,GenericUSBXHCI,Intel HDMI Audio,甚至定制USBPorts,CPUFriendDataProvidor。

如果你的机型已经稳定,并且要仿冒的设备较多,建议定制。因为已确定机型设备基本不需要升级FakePCIID.kext,而且定制后可以减少kext分散,缩短启动时间(虽然可以忽略不计)。

以FakePCIID_Intel_HDMI_Audio.kext为例,这个kext看名字就能知道作用。没有他的话你的声卡可能无法正常使用

右键 显示包内容打开Contents/info.plist

展开IOKitPersonalities,我们可以看到多种主板的HDM声条目。我要定制的是NUC8,属于300系列。所以我们只保留300的条目即可。

我们正式对FakePCIID操刀。

右键FakePCIID.kext,显示包内容打开Contents/info.plist,将上面的我选中的(Intel HDMI Audio - 300-series 0xa348 0x9dc8)复制到当前info.plist,并保持目录结构。如果没有IOKitPersonalities可以直接将上面的IOKitPersonalities整个复制过去,并删除Intel HDMI Audio - Haswell等条目。

得到的info.plist如下

这里的名字(Intel HDMI Audio - 300-series 0xa348 0x9dc8)是可以随便改的,比如改成 Intel 300 HDMI Audio

另外将Bundle version改大比如2.0.0以防止升级

最后将FakePCIID.kext改成你想要的名字,比如FakePCIID-NUC8BE.kext .

这样FakePCIID_Intel_HDMI_Audio.kext就整合到FakePCIID-NUC8BE.kext 中去了。

其他的空壳kexts也可以继续整合。

我最终整合后得到的是

黑苹果 Hackintosh OpenCore 安装指南

OpenCore 官方文档 全文参照此文档
Ps. UEFI引导时,EFI 分区要>= 200 MB,否则安装时无法抹去磁盘(无法格式化/抹除分区)! 如果是两块硬盘,都需要有esp分区!
OpenCore 不止可用于黑苹果,还可以用于其他需要模拟EFI的场景。

原理

模拟EFI环境:注入驱动并重建 EFI 环境缓存,再缓存传给 MacOS 系统。
重建缓存可用于欺骗 MacOS 的验证(苹果的硬件内部布线不同,因此PC在不同情况下的ACPI布局不能与Mac很好地配合。 为了解决这个问题,我们使用WhateverGreen及其配套的Lilu来修补Hackintosh的不同部分,例如重命名设备,协助帧缓冲区连接,修补音频连接器,允许通过ACPI修改aty_config,aty_properties,cail_properties等。 )

Hardware Support

硬件支持上,我准备装的机子配置是 i3-4150 + GA-H81M-DS2 Ver.2001 + HD 7770
主板搭载 网卡 声卡

GPU

其中核心显卡 HD 4400 和独立显卡 HD 7770 都是被支持的,
并且记下了我显卡必须的启动参数

# AMD 
 radpg=15       //Fixes initilization for HD 7730/7750/7770/R7 250/R7 250X

原理解析:

So if my GPU is natively supported, why do i need Lilu and WhateverGreen?
This is a question comes up quite a bit in the Hackintosh community, and for good reason as to why in the world would these GPUs work out of the box on a mac and not a Hackintosh? Well, the reason being is that PCs and Macs have different internal wiring and so the ACPI layouts in a PC don‘t work well with Macs in different scenarios. To get around this, we use WhateverGreen and it‘s companion Lilu to patch different parts of our Hackintosh like renaming devices, assisting in framebuffer connections, patching audio connectors, allowing modifications to aty_config, aty_properties, cail_properties via ACPI and so much more. With such a large feature set and developed by someone who knows what they‘re doing, there‘s no reason not to use it

译:
即使 GPU/显卡 在硬件上原生支持安装 MACOS,也依然需要 LiluWhateverGreen

  • 首先来看,Mac 的 GPU 和普通 GPU 的区别:
    • 普通GPU和苹果机的GPU有不同的内部布线,所以普通机的 ACPI 布局并不能直接完美工作在 MAC 上。PCs and Macs have different internal wiring and so the ACPI layouts in a PC don‘t work well with Macs in different scenarios.
  • 解决方案:
    • 用 WhateverGreen 和 Lilu 对两者间的差异部分做一些打补丁的工作(例如 重命名设备、协助帧缓冲连接、修补音频连接器,以此允许通过 ACPI等 修改 aty_config, aty_properties, cail_properties 之类的属性)

有些事情我必须告诉你:

macOS does not support either SLI, Crossfire or GPUs will multiple main cores(like the Radeon Pro Duo). This may change with the release of the Radeon Pro Vega II Duo in the Mac Pro
Getting audio through HDMI/DisplayPort may require extra work with both AppleALC.kext and some other IO-REG edits
GPU Overclocking is limited to Vega 10 GPUs with PyVega
Running a supported GPU with an unsupported GPU can have weird consequences as unsupported GPUs run off VESA drivers which have the issue in which it can break sleep and other functions in macOS. Please refer to the Disabling unsupported GPUs Guide for more info

译:
MacOS 不支持 SLI、交火(Crossfire), 也不支持多主核的GPU(如 Radeon Pro Duo )。当然在 搭载 Radeon Pro Vega II Duo 显卡的 Mac Pro 发布后,这些情况可能会有所改善。
通过 HDMI/DisplayPort 获取音频可能需要对 AppleALC.kext 和其他一些 IO-REG 参数配置进行额外的编辑
GPU超频仅限于使用PyVega的Vega 10 GPU
在两个显卡 (一个受支持,一个不受支持)上运行时 可能会产生奇怪的现象,因为不受支持的 GPU 也会从 VESA 驱动程序中运行,从而导致 macOS 的睡眠和其他功能可能会被破坏。
有关更多信息,请参阅禁用不支持的GPU指南。

Kext(Kernel Extension) 内核拓展,也就是驱动

Kext Inject
at OpenCore‘s method:
Takes existing prelinked kernel and kexts ready to inject
Rebuilds the cache in the EFI environment with the new kexts
Adds this new cache in

Things to note with OpenCore‘s method is:
OS Agnostic as the prelinked kernel format as stayed the same since 10.6, far harder to break support.
This also means proper support starts at 10.7, though 10.6 can be used as well so long as it‘s already installed(106‘s installer doesn‘t have a prelinked kernel)
Far better stability as far less patching

译:
Kext 注入
在 OpenCore 里是这样工作的:

  1. 把已有的预链接内核 和 准备用于注入的 kexts
  2. 利用新的 kexts 重建 EFI 环境里的缓存
  3. 把新缓存加进去

预链接在 10.6 开始被支持,10.7+ 被正式支持。更多见上面英文引用。

Wireless

我的主板没有 WIFI 模块,我也没有 USB 网卡,跳过

MotherBoard

Installation Guides

因为我的是台式机,所以我看的是 Installation GuidesOpenCore Desktop Guide 部分
OpenCore 的黑苹果教程和工具都是三平台通用。详见英文原文

制作安装介质(刻盘)

我选择在 Windows 下制作,以 zip 方式下载:https://github.com/corpnewt/gibMacOS
初次打开会自动下载所需的小型工具

环境要求:Python 2或3
下载

  1. 右击 gitMacOS.bat 以管理员运行,(输入字母R回车)选择 Toggle Recovery-Only
  2. 等程序索引完成,选择你想要的且带 FULL INSTALL 的 MACOS 版本,然后程序会帮你下载500MB左右的镜像 RecoveryHDMetaDmg.pkg 到软件所在路径 gibmacos-mastermacOS Downloadspublicreleasexxx-xxxxx - 10.x.x macOS xxx

刻盘

  1. 右击管理员打开 MakeInstall.bat,然后根据列出的U盘序号输入 数字和字母O(O代表OpenCore) 例如输入数字1和字母O 1O
  2. 此时U盘会被格式化,格式化完成后会要求你提供之前下载的 RecoveryHDMetaDMG.pkg 的完整路径(按住 SHIFT 右击文件,复制路径,再粘贴进去即可)
  3. 然后 OpenCore 就被安装到你 U 盘的EFI分区里了。可以看到U盘其中一个分区的卷标为 BOOT

添加基本的 OpenCore 文件

整合文件

ACPI 部分

config.list 配置

其他

安装 MACOS

环境要求:硬盘上必须有 >=200MB 的 EFI 分区
主板以UEFI方式从U盘启动,然后开始安装 MACOS 系统。

Good

初步完成,如果还有小问题就看官方文档。
享受MACOS吧






























以上是关于Hackintosh 定制FakePCIID.kext的主要内容,如果未能解决你的问题,请参考以下文章

黑苹果 hackintosh 安装初体验

ryzen nvidia hackintosh

text Hackintosh参考

Hackintosh Issues

使用UniBeast安装Hackintosh(黑苹果)

text 在Hackintosh上安装Creative Cloud