Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

macOS Sonoma and OpenCore Legacy Patcher Support #1076

Open
khronokernel opened this issue Jun 7, 2023 · 0 comments
Open

macOS Sonoma and OpenCore Legacy Patcher Support #1076

khronokernel opened this issue Jun 7, 2023 · 0 comments

Comments

@khronokernel
Copy link
Member

khronokernel commented Jun 7, 2023

With the unveiling of macOS 14, Sonoma, Apple has continued their march towards removal of older Intel Macs. And with this, many more critical drivers used by our older systems have been changed or outright removed.

As the OS has been in developer beta for less than a few days, we've compiled a list of challenges the patcher will need to overcome for this fall. This list will likely expand as we determine more issues with older systems.


  • Dropped Models
  • Graphics support
    • Metal
      • 31001
      • 3802
    • Non-Metal
  • Wireless support
  • Bluetooth support
  • Touch ID on T1 support
  • AMD GPU Support Removal
  • Overall timeline for support

Dropped Models

Overall a fairly tame OS release, project will need to expand support for the following models:

MacBook10,1:       MacBook (Retina, 12-inch, 2017)
MacBookPro14,1:    MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)
MacBookPro14,2:    MacBook Pro (13-inch, 2017, Four Thunderbolt 3 Ports) 
MacBookPro14,3:    MacBook Pro (15-inch, 2017)
iMac18,1:          iMac (21.5-inch, 2017)
iMac18,2:          iMac (Retina 4K, 21.5-inch, 2017)
iMac18,3:          iMac (Retina 5K, 27-inch, 2017)

Currently the only known limitation with these units is the lack of wireless support. Otherwise graphics is still natively supported.

Graphics support

31001-based Graphics Cards

With macOS Sonoma, Apple has transitioned to a new LLVM compiler version known as 32023. This compiler is what powers the Metal graphics stack in macOS, and is critical to getting functional acceleration.

32023

However it seems this new compiler version hasn't changed the ABI drastically, as GPU's based off of the 31001 compiler are still mostly functional. Currently we've determined UI corruption within IOSurface, which would lead to incorrect rendering of wallpapers and menubar.

  • We have mostly resolved this issue internally, however cannot ship due to complications with IOSurface ABI.
Default Experimental Patch
Screenshot 2023-06-05 at 7 59 39 PM

Additionally we've discovered an ABI change in IOAcceleratorFamily2 that causes kernel panics when engaging with the Intel framebuffer. Currently investigating the cause, but problematic functions are:

IOAccelResource::pageonIfNeeded()
IOAccelResource::pageoffIfNeeded()

Downgrading IOAcceleratorFamily.kext works around this panic issue, however for long term maintance this needs to be resolved properly.

Problem unrelated to IOAcceleratorFamily2, kernel panics were caused by IOSurface.


Graphics cards under 31001 designation:

Intel Broadwell

# Applicable Models: 
MacBook8,1
MacBookAir7,x
MacBookPro12,1
iMac16,x

Intel Skylake

# Applicable Models:
MacBook9,1
MacBookPro13,x
iMac17,1

AMD Legacy GCN

# Applicable Models:
MacBookPro11,5 (Note iGPU is not 31001 based, so model is overall broken)
MacBookPro13,3
iMac15,1
iMac17,1
MacPro6,1

3802-based Graphics Cards

As mentioned in the 31001 section, Apple transitioned to a new LLVM version 32023. This has major implications with 3802 GPUs, however we're actively working to reimplement support for 3802 GPUs.

Still much work remaining, however promising results:

Screenshot 2023-07-16 at 10 49 09 PM


Graphics cards under 3802 designation:

Intel Ivy Bridge

# Applicable Models:
MacBookAir5,x
MacBookPro9,x
MacBookPro10,x
iMac13,x
Macmini6,x

Intel Haswell

# Applicable Models:
MacBookAir6,x
MacBookPro11,x
iMac14,x
iMac15,1 (internal, headless iGPU)
Macmini7,1

Nvidia Kepler

# Applicable Models:
MacBookPro9,1
MacBookPro10,1
MacBookPro11,3
iMac13,x
iMac14,x

Non-Metal

As more of macOS relies on the WindowManager stack introduced with macOS Ventura, no timeline can be given for public support. However internal testing shows very early support. Much still needs to be done, but promising:

Screenshot_2023-06-09_at_23 28 39


Graphics cards under non-Metal designation:

Intel Ironlake

# Applicable Models:
MacBookPro6,x

Intel Sandy Bridge

# Applicable Models:
MacBookAir4,x
MacBookPro8,x
iMac12,x
Macmini5,x

AMD TeraScale 1 and 2

# Applicable Models:
MacBookPro8,2
iMac7,1
iMac8,1
iMac10,1
iMac11,x
iMac12,x
Macmini5,2
MacPro3,1
MacPro4,1
MacPro5,1

Nvidia Tesla (as well as Nvidia Web Drivers)

# Applicable Models:
MacBook5,x
MacBook6,1
MacBook7,1
MacBookAir2,1
MacBookAir3,x
MacBookPro4,1
MacBookPro5,x
MacBookPro6,x
MacBookPro7,1
iMac7,1
iMac8,1
iMac9,1
iMac10,1
iMac11,x
iMac12,x
Macmini5,2
MacPro3,1
MacPro4,1
Xserve2,1
Xserve3,1

Wireless support

With Sonoma, another big axe has been dropped: Removal of IO80211FamilyLegacy support

This stack was responsible for supporting the majority of wireless cards used Macs, including machines up-to iMac18,x.

We currently have a highly experimental patch set that restores support, however is currently not feasible due to the lack of networking pre-patching. Proper solution is still under investigation.

  • Due to this patch, AirPlay to Mac, Continuity Camera, and other Continuity-based features are either unsupported or unstable.
BCM94350 Demo BCM94360 Demo

Wireless cards under IO80211FamilyLegacy designation:

BCM943224, BCM94331, BCM94350, BCM94360, BCM943602

  • Applicable to all unsupported Macs that had native wifi in Ventura

Bluetooth Support

Currently only a minor issue, however Bluetooth scanning is currently non-functional on all unsupported Macs. Current work-around is to downgrade bluetoothd, proper solution is being investigated.

Resolved with 218507b, bluetoothd now checks for VMM:

Bluetooth is running inside a Virtual Machine, so skipping chip initialization

Adding selective enforcement of VMM resolves this.

Touch ID on T1 support

Systems with T1 Security Chips will also face some significant challenges, specifically that Apple dropped communication support with the T1 chip through the KernelRelayHost stack. Previously kexts such as AppleSSE, AppleCredentialManager and AppleKeyStore used KernelRelayHost to speak with the T1 stub off the USB controller, however in Sonoma Apple dropped linkage to KernelRelayHost.kext. Downgrading these kexts do partially resolve communication, however ApplePay and Touch ID stacks are still unable to communicate correctly with the hardware.

No known solution to resolve supporting, a significant amount of time will be required to understand how both the T1 stack works, as well as where the core issue lies for support.


Affected models:

MacBookPro13,2 - 13,3
MacBookPro14,2 - 14,3

Ethernet dongles

Using Ethernet dongles on macOS Sonoma can cause the system to freeze and kernel panic. RTL8153 based chipsets are confirmed to be affected but others may be affected as well. Issue is being investigated.

Resolved in OCLP 1.0.0

AMD GPU Support Removal

Following personalities were dropped from the AMD Polaris stack:

  • ATY,Acre
  • ATY,Berbice
  • ATY,Caroni
  • ATY,Dayman
  • ATY,Elqui
  • ATY,Guariba
  • ATY,Huallaga
  • ATY,Longavi
  • ATY,Orinoco

Issue still being investigated on affected hardware and solution.

Resolved for MacBookPro14,3 in OCLP 1.0.0

Overall timeline for support

As with every new major release of macOS, developing a patcher becomes more and more challenging for our small group of hobbyists. As it stands, we're unsure when we'll be able to resolve all these issues.

Regarding proper support for macOS Sonoma on OpenCore Legacy Patcher, no accurate prediction can be made. But for those who'd wish for a rough estimate, we'd say 6 months from now when we're able to support Sonoma. The challenges presented with 3802, non-Metal and legacy wireless will unfortunately require extensive time and research to develop functional patch sets.

However otherwise, we hope everyone's excited for what's to come!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant