Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/perez987/intel-uhd-630-on-macos
Intel UHD Graphics 630 Coffee Lake R 9th Gen. on macOS using OpenCore + WhateverGreen
https://github.com/perez987/intel-uhd-630-on-macos
coffeelake hackintosh headless macos opencore uhd630 ventura
Last synced: 3 days ago
JSON representation
Intel UHD Graphics 630 Coffee Lake R 9th Gen. on macOS using OpenCore + WhateverGreen
- Host: GitHub
- URL: https://github.com/perez987/intel-uhd-630-on-macos
- Owner: perez987
- License: mit
- Created: 2021-12-08T17:56:39.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-21T18:09:29.000Z (about 1 year ago)
- Last Synced: 2025-01-02T12:02:46.579Z (5 days ago)
- Topics: coffeelake, hackintosh, headless, macos, opencore, uhd630, ventura
- Homepage:
- Size: 706 KB
- Stars: 78
- Watchers: 6
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Intel UHD Graphics 630 Coffee Lake R on macOS
How to set the integrated graphics card Intel UHD Graphics 630 Coffee Lake R (9th gen. i7 and i9) in headless mode (no cable to monitor) to be used by macOS in computing and video encoding tasks or setting it as the main card**Note**: based on
- `[GUIDE] General Framebuffer Patching Guide (HDMI Black Screen Problem)` by _CaseySJ_ in tonymacx86 forum
- Framebuffer patch feature of _headkaze_'s Hackintool app
- Desktop Coffee Lake chapter of the OpenCore Dortania's guide.## Preface
Macs with an integrated graphics card (iGPU) and a dedicated one (dGPU) use the iGPU for video encoding and decoding tasks. When building a Hackintosh with both types of GPU we can find that, if the iGPU is not properly installed, video encoding can fail. When this happens, we must configure the iGPU as _headless mode_ (it is so called when it is enabled but no cable to monitor) so that the dGPU acts as main card but the iGPU is available for encoding / decoding video.
iGPU setting depends on 2 factors:
Motherboard because manufacturer can put 1, 2 or 3 HDMI connectors for the iGPU on the back pannel
Intel processor generation, different Intel generations have different iGPUMy PC has a Z390 Aorus Elite board with an Intel 9th gen. CPU (Coffee Lake Refresh, it is configured as Coffee Lake) with Intel UHD Graphics 630:
PCI path is PciRoot(0x0)/Pci(0x2,0x0)
Plattorm ID is 3E9B0007On this board there is only one HDMI v1.4 connector for the iGPU, it corresponds to index 3 in the theoretical list of 3 internal connectors this iGPU can have:
Index 1, BusID 0x00, Type HDMI (type does not matter on this port)
Index 2, BusID 0x00, Type HDMI (type does not matter on this port)
Index 3, BusID 0x04, Type HDMI (this is the active port, the only physical one, type is HDMI)This is important when using the iGPU as a main or single card but not when using it in headless mode.
## Headless mode
- iGPU and dGPU must be enabled in BIOS with dGPU as primary
- There should be no cable between iGPU HDMI port and any type of display
- Lilu and WhatEverGreen properly installed
- SMBIOS iMac19.1.You have to add in `DeviceProperties >> Add`:
``` xml
PciRoot(0x0)/Pci(0x2,0x0)AAPL,ig-platform-id
AwCRPg==
device-id
mz4AAA==
enable-metal
AQAAAA==```
This code has data values in Base64, in plist editors they can be seen as hexadecimal, e.g. `AwCRPg==` in Base64 (_AAPL,ig-platform-id_) = `0300913E` in hexadecimal.
With these changes you can boot from a dGPU with the iGPU well installed. To check if the VDA Decoder function is activated you can get Hackintool app (_Fully Supported_ or _Failed_ in the first System tab).
Notes:
- `AAPL,ig-platform-id=0300913E` is mandatory, to detect the iGPU as Coffee Lake
- `device-id=9B3E000` to be displayed as `Intel UHD Graphics 630` instead of `Kabylake Unknown` (optional)
- `enable-metal=01` to enable Metal 3 in Ventura (recommendable on macOS 13).Image: iGPU as secondary card
## iGPU as main card
This card can also be configured to be the main or single one, so that it outputs a signal to the monitor and also encodes video. Here's what to do.
- Enable it on the motherboard as main card: Initial Display Output `IGFX` instead of `PCIe 1 Slot` (this would be the final step)
- Lilu and WhatEverGreen properly installed
- SMBIOS iMac19.1
- Add in `config.plist >> DeviceProperties >> Add` the code below (note: `BwCbPg==` is `07009B3E` in hexadecimal):``` xml
PciRoot(0x0)/Pci(0x2,0x0)AAPL,ig-platform-id
BwCbPg==
device-id
mz4AAA==
device_type
VGA compatible controller
enable-hdmi20
AQAAAA==
enable-metal
AQAAAA==
framebuffer-con0-busid
AAAAAA==
framebuffer-con0-enable
AQAAAA==
framebuffer-con0-pipe
EgAAAA==
framebuffer-con1-busid
AAAAAA==
framebuffer-con1-enable
AQAAAA==
framebuffer-con1-pipe
EgAAAA==
framebuffer-con2-busid
BAAAAA==
framebuffer-con2-enable
AQAAAA==
framebuffer-con2-pipe
EgAAAA==
framebuffer-con2-type
AAgAAA==
framebuffer-patch-enable
AQAAAA==
framebuffer-stolenmem
AAAwAQ==
hda-gfx
onboard-1
force-online
AQAAAA==```
Note:
- `force-online=01` is mandatory, to force online status on all displays.
In this way, Intel UHD 630 is well installed and works fine on macOS.
Image: iGPU as main card
**Note about igfxfw and rps-control** (thanks [5T33Z0](https://github.com/5T33Z0))
Many Coffee Lake iGPUs work fine without loading Apple GUC firmware or enabling RPS Control. But those who have graphical issues (low max frequency, fixed frequency that does not vary, screen glitches, etc.) can play with 2 available properties:
- Apple GUC (disabled by default): it can be enabled by `igfxfw` property (02 as Data) or `igfxfw=2` boot arg. It forces loading of Apple Graphics Unit Control (GUC) firmware (graphics accelerator uses Apple firmware scheduler). It improves Intel Quick Sync Video and iGPU performance. Ir requires chipset supporting Intel Management Engine v12 or newer (H310, C246, B360, H370, Q370, Z390, Z490, etc.). It's buggy and not advisable to use. Should be tested on a case by case basis.
- RPS Control (disabled by default): it can be enabled by `rps-control` property (01 as Data) or `igfxrpsc=1` boot arg. It enables RPS control patch (graphics accelerator uses host preemptive scheduler). Improves iGPU performance on Kaby Lake and newer using older chipsets without Intel Management Engine v12 support (Z370 and others). `rps-control`property was enabled in WhateverGreen until macOS 10.15.6, in this version it had major issues and, since then, WhateverGreen has disabled it by default.Recommendations:
- If the iGPU has normal frequencies and power consumption for that model and the screen works fine >> it is not necessary to use any of the 2 settings
- Both should not be used at the same time because they are based on different modes of operation
- `igfxfw` takes precedence over `igfxrpsc` when both are set
- Boards supporting Intel ME 12 and newer can try `igfxfw=1`
- For boards with older chipsets, RPS-Control is an option
- There are comments of OC developers saying that `rps-control` is better than `igfxfw` (Big Sur and newer) because of the bug that seems to be in Apple GUC.**Note about KP waking from sleep**
If you have KP or black screen when macOS wakes from sleep, you have to replace `hda-gfx` property with `No-hda-gfx`, this usually fixes those KPs but audio through HDMI is lost. Replace:
``` xml
hda-gfx
onboard-1
```with:
``` xml
No-hda-gfx
AAAAAAAAAAA=
```**Note about QEMU**
If macOS is being installed in a QEMU virtual machine, the primary card in BIOS must be set to dGPU. Otherwise `vesafb` grabs the iGPU which, due to a memory allocation conflict, results in a long delay on startup/shutdown and multi-gigabyte logs.
If `vga=off` is added to grub, then the card is not claimed, however it also does not work (blank screen).