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

Legacy UHCI/OHCI support in Ventura and newer #1021

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

Legacy UHCI/OHCI support in Ventura and newer #1021

khronokernel opened this issue Jan 7, 2023 · 0 comments

Comments

@khronokernel
Copy link
Member

khronokernel commented Jan 7, 2023

In macOS Ventura, Apple removed support for all USB 1.1 drivers leaving some older Macs unable to use USB 1.1 peripherals. The main drivers removed where those of UHCI and OHCI controllers:

  • AppleUSBUHCI.kext
  • AppleUSBUHCIPCI.kext
  • AppleUSBOHCI.kext
  • AppleUSBOHCIPCI.kext

Thankfully in late 2009, Apple started to phase out the use of legacy UHCI/OHCI controllers for a more reliable internal USB Hub implementation as can be seen with Microsoft's USB Companion blog post.

However this still leaves some older machines using the legacy companion controller system:

Family Year Model Notes
MacBook Mid 2010 and older MacBook4,1 - MacBook7,1
MacBook Air Late 2010 and older MacBookAir2,1 - MacBookAir3,x
MacBook Pro Mid 2010 and older MacBookPro4,1 - MacBookPro7,x Excludes Mid 2010 15" and 17" (MacBookPro6,x)
iMac Late 2009 and older iMac7,1 - iMac10,x Excludes Core i5/7 27" late 2009 iMac (iMac11,1)
Mac mini Mid 2010 and older Macmini3,1 - Macmini4,x
Mac Pro Mid 2012 and older MacPro3,1 - MacPro5,1

For MacPro5,1, Apple neglected to update 2010-2012 units with internal USB Hubs

Why USB 1.1 controllers are important

The primary reason we care about USB 1.1 support is that low power devices, such as USB Keyboards, Mice, Trackpads and Bluetooth controllers will engage with the USB 1.1 controller on a hardware level.

In addition to these devices being hard routed internally, like on MacBooks, Apple also wired up every USB port to switch between USB 1.1 and USB 2.0 controllers depending on the peripheral. So if a user plugs a mouse into a MacPro5,1, this will engage the legacy USB 1.1 controller. However if you plug a USB 2.0 hub into said MacPro5,1, this will start up the USB 2.0 controller allowing for native support in macOS.

Partial support added in OCLP v0.5.4

With OCLP v0.5.4, early support for UHCI/OHCI has been added via Root Volume patching. The main issue with root volume patching is that it breaks USB 1.1 support in the following environments:

  • macOS Installers
  • Clean installs of macOS
  • Post-OS updates

Thus to install macOS Ventura on an affected device, you will need to use a USB 2.0 (or higher) USB hub and connect your Mice and Keyboard through there. Unfortunately same applies for MacBooks, which we'd advise staying off Ventura for the time being until a more practical approach can be found.

In macOS Sonoma, this seems to have been further weakened and some hubs may not be functional.

Alternative way is making sure to enable "Remote Login" in General -> Sharing before updating, which will enable SSH. That means you can take control using Terminal in another system by typing ssh username@lan-ip-address and your password. After that run Post Install Volume Patching by typing /Applications/OpenCore-Patcher.app/Contents/MacOS/OpenCore-Patcher --patch_sys_vol and finally sudo reboot.

Additionally these USB 1.1 drivers can't be mixed with USB 3.0 controllers, otherwise a kernel panic will occur. Unknown if/when a solution can be implemented.

khronokernel added a commit that referenced this issue Jan 7, 2023
@ParaDoX1994 ParaDoX1994 changed the title Legacy UHCI/OHCI support in Ventura Legacy UHCI/OHCI support in Ventura and newer Sep 8, 2024
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