Skip to content

Legacy UHCI/OHCI support in Ventura and newer #1021

Open
@khronokernel

Description

@khronokernel

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.

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.

Alternative method for Software Update

Alternative way for updates 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 and run Post Install Volume Patching.

This only applies to updates via Software Update and is not applicable when booting to installer via USB drive.

Use the following commands:

  1. ssh username@lan-ip-address - Connects via SSH, change username and IP address to the system's
  2. /Applications/OpenCore-Patcher.app/Contents/MacOS/OpenCore-Patcher --patch_sys_vol - Installs root patches via CLI
  3. sudo reboot

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions