CaseySJ
Moderator
- Joined
- Nov 11, 2018
- Messages
- 22,224
- Motherboard
- Asus ProArt Z690-Creator
- CPU
- i7-12700K
- Graphics
- RX 6800 XT
- Mac
- Classic Mac
- Mobile Phone
This thread chronicles on-going progress of installing macOS 11.0 Big Sur
on an AMD Ryzen Hackintosh based on
Gigabyte B550 Vision D and Ryzen 7 3700X processor.
This post composed and posted from B550 Vision D AMD Ryzentosh
on an AMD Ryzen Hackintosh based on
Gigabyte B550 Vision D and Ryzen 7 3700X processor.
This post composed and posted from B550 Vision D AMD Ryzentosh
Why B550 Vision D?
The B550 Vision D (Amazon link; Gigabyte link) is Gigabyte's latest entry in the Vision series. It includes a Titan Ridge Thunderbolt 3 controller with two Thunderbolt/USB-C ports on the rear IO panel. In fact it has a fairly packed feature set that includes Intel AX200 WiFi 6/BT 5, dual Intel i211 Gbit Ethernet ports, Realtek ALC 1220VB audio codec, plenty of USB ports, two NVMe SSDs, PCIe 4.0 support, two temperature probes, POST code LED, and more. This board will support upcoming Zen 3 processors from AMD. However, there is no front-panel USB-C header.
Unlike X570 boards with active cooling fans on the chipset, B550 chipsets are passively cooled. With the right CPU cooler, a B550 system can be whisper quiet even under load.
There are a handful of notable differences when setting up an OpenCore EFI for Ryzentosh, as follows:
Kernel Patches:
- A special set of Kernel patches must be applied, without which the macOS kernel will not boot.
- Ryzen and Threadripper processors currently on the market are part of the 17H family.
- Patches for the 17H family are available here.
- Every chipset (e.g. Z390, Z490, X570, B550) must define CPU cores in ACPI for configuration and power management purposes.
- B550 chipsets define CPU cores in their own unique manner, which macOS does not recognize.
- We use an SSDT created by the folks at Dortania called SSDT-CPUR.aml that converts B550's CPU core definitions into ACPI objects that macOS recognizes. File is attached.
- Without this SSDT, macOS will not boot on B550.
- Whereas most Intel motherboards contain a single on-board USB controller, AMD motherboards contain multiple on-board USB controllers. Some boards have two controllers; others have three.
- B550 Vision D contains two USB controllers: XHC0 and PTXH.
- Port mapping on AMD platforms consists of three parts:
- Part 1: Discover all usable ports by connecting a USB 2 and USB 3 device into each port.
- Part 2: Create an SSDT to delete each existing USB controller device in DSDT and replace it with a new one. Two SSDTs were created, one for XHC0 mapped to XHC, the other for PTXH mapped to XHC2. Both files are attached.
- Part 3: Create a USBPorts.kext. This is also attached.
- Important Note:
- The two internal USB 2.0 headers and one of the USB 2.0 ports on the rear IO panel are all connected to a single USB 2.0 hub at XHC2.PO10.
- The Bluetooth circuit of the internal WiFi/BT module connects to one of the ports on this USB 2.0 hub. Normally we would disable this (Intel) Bluetooth module by excluding its USB port, but we cannot do that here because that will disable all of the USB 2.0 ports except XHC2.PO9 (on the rear IO panel).
- For this reason, we choose to replace the Intel AX200 M.2 module with a Broadcom BCM94360NG that is natively supported in macOS.
- Although not specific to AMD, SSDT-EC-USBX-DESKTOP.aml is also required. This is attached below and credited also to Dortania.
- Although the board has two M.2 slots for NVMe and SATA SSDs, macOS will treat those devices as external instead of internal. This happens on most (or all?) AMD motherboards.
- Fortunately, this can be fixed easily by adding the Device Property built-in with a value of 0. The easiest way to do this is in OpenCore Configurator itself:
- Intel Power Gadget obvious does not work on an AMD processor! But fortunately we have three utilities developed by the GitHub member trulyspinachthat are extremely valuable to the AMD Ryzentosh community:
- SMCAMDProcessor.kext : This is a Lilu plug-in that provides AMD-specific SMC information to VirtualSMC. How wonderful is that?
- AMDRyzenCPUPowerManagement.kext : This provides CPU power management functionality to macOS. This means CPU clock speeds will dynamically rise and fall in relation to computing demand!
- AMD Power Gadget : As if the above two weren't enough, the same GitHub package also includes AMD Power Gadget, which is a GUI similar to Intel Power Gadget.
- AMD Power Gadget also provides experimental support for both monitoring and controlling motherboard Fans.
Configuration Specific to B550 Vision D
Booter Quirks:
- The following Booter Quirks must be enabled for this board:
- AvoidRuntimeDefrag
- EnableSafeModeSlide
- ProvideCustomSlide
- RebuildAppleMemoryMap
- SyncRuntimePermissions
Kernel Quirks:
- The following Kernel Quirks must be set (there is some leeway here):
- PanicNoKextDump
- PowerTimeoutKernelPanic
- ThirdPartyDrives
- XhciPortLimit
- DummyPowerManagement
WiFi / Bluetooth:
- The motherboard ships with an Intel AX200 WiFi 6 / Bluetooth 5 module. This is a standard M.2 card instead of the proprietary CNVi module!
- Because Bluetooth connects to the USB 2.0 hub at XHC2.PO10, we cannot simply disable this port because that will eliminate all but one of the USB 2.0 ports on the system.
- So we choose to replace the Intel AX200 module with a Broadcom BCM94360NG module.
- I ordered this item from Amazon, which actually has the Fenvi branding.
- Ensure system is powered off and PSU is turned off as well (or pull power cable from the wall).
- Without removing the black plastic cover or the antenna connectors, gently unscrew the existing M.2 module from the motherboard.
- The antenna cables are relatively short, so don't move the M.2 card far away.
- With the M.2 card in your hand, gently slip off the black plastic that covers the two antenna connectors. Remember the orientation of the plastic cover because you'll need to reinstall it later.
- Then gently pop off the two Mhf4 antenna wires from the M.2 card.
- Set the Intel AX200 module aside.
- Hold the Broadcom BCM94360NG in your hand and bring it close to the two antenna wires near the M.2 slot, but do not insert the Broadcom card into the M.2 slot at this time.
- While holding the card in your hand, gently line up and connect each of the two tiny Mhf4 antennas.
- Then carefully slip on the black plastic cover.
- Now insert the Broadcom module into the M.2 slot and screw it in place. Do not over-tighten the screw.
- In some rare cases, Bluetooth may not work. Fortunately, this problem can be solved by resetting the Bluetooth module as follows:
- Press SHIFT-Option while clicking the Bluetooth icon in the Menu Bar.
- Then select Reset the Bluetooth module as shown:
Thunderbolt 3:
- I've said it before and will say it again, a Hackintosh is not a good enough Mac if it does not have Thunderbolt!
- The Gigabyte B550 Vision D contains on-board Intel-Certified Titan Ridge controller with two Thunderbolt 3/USB-C ports on the rear IO panel.
- It comes with Thunderbolt firmware version 56 (NVM 56), which enables the following capabilities with a simple Thunderbolt SSDT:
- Thunderbolt 3 hot-plug
- Thunderbolt 3 connectivity on cold boot (but not on warm boot, unfortunately)
- USB-C hot-plug
- USB-C connectivity on cold boot and warm boot
- For most users, it is not necessary to flash the Thunderbolt firmware.
- For certain devices, however, it is necessary to flash the firmware. Flashing the firmware enables Thunderbolt Bus, which in turn allows certain devices to function. Please refer to these guides:
- Which devices require Thunderbolt Bus?
- How to flash the controller?
- Repository of modified Thunderbolt firmware files (note: Use Designare Z390 firmware on the B550 Vision D for best results).
- Guide to generating custom Thunderbolt DROM for B550 Vision D will be added later.
- The same two SSDTs are necessary for either (a) original NVM 56 firmware or (b) flashed Designare Z390 NVM 33 firmware (both are attached):
- SSDT-TB-HackinDROM-B550-VISION-D.aml
- SSDT-DPTG.aml
- A comparison of different firmware is shown in the table below.
Original Firmware | Flashed NVM 56/50 Firmware | Flashed NVM 33 (Designare) | |
Thunderbolt Bus | No | Yes | Yes |
USB-C Connected Before Boot | Yes | Yes | Yes |
USB-C Hot Plug | YES | No | YES |
Thunderbolt Connected on WARM Boot | No | No | No |
Thunderbolt Connected on COLD Boot | YES | No | YES |
Thunderbolt Hot Plug | Yes | Yes | Yes |
- The B550 Vision D has two Intel i211 Ethernet ports.
- Both are managed by a single SmallTreeIntel82576_mod.kext (attached).
- This is undoubtedly the most troublesome feature of macOS on AMD Ryzen systems. Many systems will either (a) not enter sleep, (b) not stay asleep, or (c) not wake from sleep.
- If you have an iPhone nearby, turn off proximitywake as follows:
sudo pmset -a proximitywake 0
. - UPDATE 21-Sep-2020: Sleep and wake are working, but we have to disable USB 2.0 ports via SSDT/Kext.
- On this particular system, my status is the following:
- System will enter sleep.
- System will stay asleep.
System will partially wake from sleep:LEDs and fans will turn onMonitor will remain disabled -- the "standby" LED on the monitor remains lit, which means there's no signal on the video cable
This is currently under investigation and if anyone has suggestions for dealing with this, please post.UPDATE:Using Screen Sharing from another Mac, I see that the B550 Vision D does not appear on the network after waking from sleep. Additionally, with the POST code LED showing 30 instead of AA, it means the computer is not transitioning from sleep state to wake state.
The following have been done thus far in pursuit of sleep/wake:USB ports have been mapped.XHC0 has been moved to XHC1.I'm currently using SMBIOS iMacPro1,1 and AMD R9 380 GPU. I've created AGPMInjector.kext for this specific combination using @Pavo's AGPM Injector tool on GitHub.This tool requires X86PlatformPlugin, which can be added using an SSDT modified for the B550 Vision D called SSDT-PLUG.aml. This is also attached.However, the monitor does not wake from sleep. Moreover, the POST code on the LED reads 30, which is not mentioned in the manual:
If a solution for wake is not found, a workaround is to configure System Parameters --> Energy Saver to turn off the display after a few minutes of inactivity, but Prevent computer from sleeping automatically when the display is off. This is shown below:
- On my previous ASRock X570 Creator and ASRock X570 Taichi boards, I was never able to use XMP Memory Profile. The system would not POST or remain stable even with AMD-certified DIMM.
- On the Gigabyte B550 Vision D, however, XMP Memory Profile works perfectly!
BIOS Configuration- The latest version of BIOS is F10, which I had to download and install. The board shipped with F1 or F2.
- Very few BIOS parameters need to be configured:
- Save & Exit → Load Optimized Defaults (always select this first)
- Thunderbolt —> Enabled
- Thunderbolt Security —> No Security
- XMP Memory Profile 1 → Enable
- SuperIOConfiguration → Serial Port → Disable
- Above 4G Decoding → Enable
Objective Operational Experiences
Currently the following functions are working:
- Shutdown, restart
- iCloud, App Store
- Handoff / Continuity, Unlock with Apple Watch, AirDrop
- FaceTime, Messages
- Sleep and wake
- WiFi / Bluetooth -- performance of the BCM94360NG is superb. The external antenna supplied in the B550 Vision D box is being used.
- Both Ethernet ports.
- Quick Look, Preview
- AppleTV
- Thunderbolt hot plug
- USB-C hot plug
- Netflix (I don't have a subscription)
- Amazon Prime
- Hulu
Wake from sleep (system goes to sleep, but monitor does not wake from sleep)Tried with 1080p monitor over HDMITried with 4K monitor over HDMIHave not tried DisplayPort yetVideo card is AMD R9 380
- Update 21-Sep-2020: Sleep is working, but at the expense of USB 2.0 ports.
- Thunderbolt devices do not connect fully on a warm boot.
- They connect fully on hot plug
- They connect fully on cold boot
- Do not try to boot macOS without a monitor connected. If you do, the boot process will freeze before the progress bar appears. It will then be necessary to connect a monitor and perform CMOS Reset. BIOS parameters will need to be configured.
Subjective Operational Experiences
- The system feels robust, energetic, and every bit as capable as an Intel Hackintosh. However, Safari in Big Sur Public Beta 3 is buggy and has led to several system crashes that don't occur in Firefox and Chrome.
- WiFi and Bluetooth performance is amazing with the Fenvi BCM94360NG M.2 card. Bluetooth devices connect lightning fast. It really helps to have an outboard antenna.
- The system has been extremely stable under Big Sur Public Beta 3 except, as noted, with Safari.
- I'm using the stock AMD CPU cooler that accompanied my Ryzen 7 3700X, but will replace that with a BeQuiet! Shadow Rock 3soon. I continue to be highly impressed by the Shadow Rock, which I originally used on the Z490 Vision D.
- Shadow Rock 3 is also angled away from the DIMM slots, allowing even high profile DIMMs to be installed.
- 26 Sep 2020: Shadow Rock 3 has been installed and the difference is night and day!
- Because B550 boards do not require (noisy) chipset cooling fans, the system is magnitudes quieter than my earlier ASRock X570 Creator and X570 Taichi systems. The stock AMD cooler is okay, but does get noisy.
- The only new components in this build are (a) Gigabyte B550 Vision D and (b) Silicon Power 512GB NVMe SSD.
- Everything else was cannibalized from the ASRock X570 Creator system:
- Power supply
- Graphics card
- System fans
- Open air test bench chassis
- 32GB OLOy DIMMs (2 x 16 GB) at 3600 MHz (yup, 3600 MHz and fully stable)
Benchmarks
- GeekBench 5: AMD Ryzen 7 3700X
- Single Core: 1280
- Multi Core: 8391
- Cinebench R20:
- 4963
Attachments
-
SSDT-CPUR.aml1.4 KB · Views: 354
-
SSDT-B550-PTXH-TO-XHC2.aml546 bytes · Views: 426
-
SSDT-B550-XHC0-TO-XHC1.aml413 bytes · Views: 421
-
USBPorts.kext.zip2.2 KB · Views: 451
-
SSDT-EC-USBX-DESKTOP.aml6.4 KB · Views: 380
-
SSDT-TB-HackinDROM-B550-VISION-D.aml2.3 KB · Views: 427
-
SSDT-DTPG.aml800 bytes · Views: 394
-
SSDT-PLUG.aml113 bytes · Views: 401
-
SmallTreeIntel82576_mod.kext.zip72.2 KB · Views: 375
Last edited: