Contribute
Register

The New Beginner's Guide to USB Port Configuration

To be honest that was commonly the case when using a non-Intel USB controller. It wasn't shown, but it is obviously better to have them present and visible in the Hackintool window.

They should always show in IORegistryExplorer and a USB or external drive icon should appear on the Desktop (assuming you have Show Hard disk and External disks set in the Finder > Preferences > General settings), when a USB drive is connected to one of the Etron ports.

Screenshot 2022-03-09 at 16.48.14.png Finder Preferences > General tab
 
To be honest that was commonly the case when using a non-Intel USB controller. It wasn't shown, but it is obviously better to have them present and visible in the Hackintool window.

They should always show in IORegistryExplorer and a USB or external drive icon should appear on the Desktop (assuming you have Show Hard disk and External disks set in the Finder > Preferences > General settings), when a USB drive is connected to one of the Etron ports.

View attachment 543474 Finder Preferences > General tab
Thanks for your efforts but yes it "should" but no it doesn't. ;-)
The weird thing is that the USB keys appear in Apple Info (here it is with one USB3 on one port and one USB2 on the other), the USB3 appears also in Disk Utility but not the USB2. And none of them is mounted (or mountable), neither in /Volumes, on the Desktop or in the Sidebar...

Capture d’écran 2022-03-10 à 14.45.30.jpg


In Terminal, diskutil list only shows the USB3 key as follows:
Code:
/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *15.4 GB    disk4
   1:                  Apple_HFS                         15.0 GB    disk4s1
   2:                        EFI EFI                     209.7 MB   disk4s2
No trace of the USB2!:crazy:
 
Post a copy of your IOReg, use the version of IORegistryExplorer linked in this guide -

 
Post a copy of your IOReg, use the version of IORegistryExplorer linked in this guide -

 

Attachments

  • nodarkthings.ioreg.zip
    869.3 KB · Views: 40
Have you got that pesky PXSX to XHC rename in place?!?!? :D

The Etron controller is showing under USB3 in System Report. My thinking is that perhaps the rename means that macOS can't allocate the ports to an EHCI connection and thus USB2? Only an idea, I'm not sure if this is correct, but IOReg shows no PXSX ports, just those XHC!

:)
 
Last edited:
First thing I would say is you need to stop using the generic PXSX to XHC rename patch as it is catching a number of other devices that shouldn't be renamed as XHC, including the FireWire, Ethernet and one of the SATA controllers

Screenshot 2022-03-10 at 19.27.32.png Section of IOReg with PXSX renamed devices.

I think you may need to use something along the lines of the renames below, so as to have just the Usb controllers renamed to XHC2 and XHC3.

Rename: RP05/PXSX to RP05/XHC2 - Find 525030352f50585358 - Replace 525030352f58484332
Rename: RP06/PXSX to RP06/XHC3 - Find 525030362f50585358 - Replace 525030362f58484333

Being more specific with the rename patches should prevent the Firewire, Ethernet and SATA controllers being renamed to XHC along with the Usb controllers.

Second thing is all the USB ports under the two XHC USB3 controllers should be set with the connector type 0x3 (USB3) even the virtual USB2 ports. As it is the physical ports characteristics that need to be used.

All 8 x ports should be set as 0x3 (USB3).

You have the 4 x USB2 virtual ports set as 0x0, which equates to USB2 connector type. This is wrong.

The screenshots below show the configuration of the 4 x USB ports under the /_SB/PCI0/RP05/XHC controller.

Screenshot 2022-03-10 at 19.36.32.png Screenshot 2022-03-10 at 19.36.43.png USB2 virtual portsScreenshot 2022-03-10 at 19.36.51.png Screenshot 2022-03-10 at 19.37.00.png USB3 physical ports

As can be seen the first two screenshots show the ports are set as 0x0 (USB2) and the second pair as 0x3 (USB3).

This is the same for the 2nd XHC USB controller.

Regarding the EH0x USB controllers:

Screenshot 2022-03-10 at 20.28.38.png EH0x controller ports

There are 6 x USB2 ports under the EH01 controller HP12 , HP17, HP18, PRT1, PRT3 and PRT8. The numbering/ordering of the ports is quite strange. I would expect HP11 through to HP18 or similar, not the disparate numbering/ordering that is present.

The 6 x USB2 ports under EH02 are more what I would expect to see. Port numbers HP21 to HP26 inclusive.

Of the 12 x Usb2 ports shown, only PRT8 doesn't use the USB2 0x0 connector type. PRT8 has 0x2, which I don't recognise. This may be a USB port connected to an Express Card?

Your IOReg shows no ports set as internal, i.e. from a USB header port, which should be set as connector type 255 (0xFF), even though we know some of these USB2 ports are served from an Internal USB2 header.

Which of the 12 USB2 ports are shown as active the IOReg when you insert a USB2 pen drive or other USB2 device?

Can you test this and make a copy of the IOReg, when you have tested all the external USB2 ports. Post a screenshot of the two EH0x controllers, if the details from the testing doesn't carry over to the IOReg when you make a copy.
 
Last edited:
First thing I would say is you need to stop using the generic PXSX to XHC rename patch as it is catching a number of other devices that shouldn't be renamed as XHC, including the FireWire, Ethernet and one of the SATA controllers

View attachment 543578 Section of IOReg with PXSX renamed devices.

I think you may need to use something along the lines of the renames below, so as to have just the Usb controllers renamed to XHC2 and XHC3.

Rename: RP05/PXSX to RP05/XHC2 - Find 525030352f50585358 - Replace 525030352f58484332
Rename: RP06/PXSX to RP06/XHC3 - Find 525030362f50585358 - Replace 525030362f58484333

Being more specific with the rename patches should prevent the Firewire, Ethernet and SATA controllers being renamed to XHC along with the Usb controllers.

Second thing is all the USB ports under the two XHC USB3 controllers should be set with the connector type 0x3 (USB3) even the virtual USB2 ports. As it is the physical ports characteristics that need to be used.

All 8 x ports should be set as 0x3 (USB3).

You have the 4 x USB2 virtual ports set as 0x0, which equates to USB2 connector type. This is wrong.

The screenshots below show the configuration of the 4 x USB ports under the /_SB/PCI0/RP05/XHC controller.

View attachment 543585 View attachment 543580 USB2 virtual portsView attachment 543581 View attachment 543582 USB3 physical ports

As can be seen the first two screenshots show the ports are set as 0x0 (USB2) and the second pair as 0x3 (USB3).

This is the same for the 2nd XHC USB controller.

Regarding the EH0x USB controllers:

View attachment 543586 EH0x controller ports

There are 6 x USB2 ports under the EH01 controller HP12 , HP17, HP18, PRT1, PRT3 and PRT8. The numbering/ordering of the ports is quite strange. I would expect HP11 through to HP18 or similar, not the disparate numbering/ordering that is present.

The 6 x USB2 ports under EH02 are more what I would expect to see. Port numbers HP21 to HP26 inclusive.

Of the 12 x Usb2 ports shown, only PRT8 doesn't use the USB2 0x0 connector type. PRT8 has 0x2, which I don't recognise. This may be a USB port connected to an Express Card?

Your IOReg shows no ports set as internal, i.e. from a USB header port, which should be set as connector type 255 (0xFF), even though we know some of these USB2 ports are served from an Internal USB2 header.

Which of the 12 USB2 ports are shown as active the IOReg when you insert a USB2 pen drive or other USB2 device?

Can you test this and make a copy of the IOReg, when you have tested all the external USB2 ports. Post a screenshot of the two EH0x controllers, if the details from the testing doesn't carry over to the IOReg when you make a copy.

Going with XHC2 or XHC3 is very novel. Rather like a Thunderbolt controller. Danger with that though might be an expectation of an Intel chipset ... ?

I must admit I don't see the point of touching the Etron PXSX enumeration. macOS "knows" what those are.
 
True but if the ports don’t work without the rename patches then making them different to each other and not incorporating the other devices might enable the ports to be correctly identified.

I doubt the renames would make macOS think they were Intel or TB USB ports.
 
First thing I would say is you need to stop using the generic PXSX to XHC rename patch as it is catching a number of other devices that shouldn't be renamed as XHC, including the FireWire, Ethernet and one of the SATA controllers

View attachment 543578 Section of IOReg with PXSX renamed devices.

I think you may need to use something along the lines of the renames below, so as to have just the Usb controllers renamed to XHC2 and XHC3.

Rename: RP05/PXSX to RP05/XHC2 - Find 525030352f50585358 - Replace 525030352f58484332
Rename: RP06/PXSX to RP06/XHC3 - Find 525030362f50585358 - Replace 525030362f58484333

Being more specific with the rename patches should prevent the Firewire, Ethernet and SATA controllers being renamed to XHC along with the Usb controllers.

Second thing is all the USB ports under the two XHC USB3 controllers should be set with the connector type 0x3 (USB3) even the virtual USB2 ports. As it is the physical ports characteristics that need to be used.

All 8 x ports should be set as 0x3 (USB3).

You have the 4 x USB2 virtual ports set as 0x0, which equates to USB2 connector type. This is wrong.

The screenshots below show the configuration of the 4 x USB ports under the /_SB/PCI0/RP05/XHC controller.

View attachment 543585 View attachment 543580 USB2 virtual portsView attachment 543581 View attachment 543582 USB3 physical ports

As can be seen the first two screenshots show the ports are set as 0x0 (USB2) and the second pair as 0x3 (USB3).

This is the same for the 2nd XHC USB controller.

Regarding the EH0x USB controllers:

View attachment 543586 EH0x controller ports

There are 6 x USB2 ports under the EH01 controller HP12 , HP17, HP18, PRT1, PRT3 and PRT8. The numbering/ordering of the ports is quite strange. I would expect HP11 through to HP18 or similar, not the disparate numbering/ordering that is present.

The 6 x USB2 ports under EH02 are more what I would expect to see. Port numbers HP21 to HP26 inclusive.

Of the 12 x Usb2 ports shown, only PRT8 doesn't use the USB2 0x0 connector type. PRT8 has 0x2, which I don't recognise. This may be a USB port connected to an Express Card?

Your IOReg shows no ports set as internal, i.e. from a USB header port, which should be set as connector type 255 (0xFF), even though we know some of these USB2 ports are served from an Internal USB2 header.

Which of the 12 USB2 ports are shown as active the IOReg when you insert a USB2 pen drive or other USB2 device?

Can you test this and make a copy of the IOReg, when you have tested all the external USB2 ports. Post a screenshot of the two EH0x controllers, if the details from the testing doesn't carry over to the IOReg when you make a copy.
Thanks a lot! I'm totally impressed! :thumbup:
Looks like there's a confusion between HP18 and PRT8: HP18 appears indeed as "Express Card" in Hackintool (though the connector is rightly set to 0 in USBMap.kext) while the connected USB key appears under PRT8 in IOREG.
Capture d’écran 2022-03-11 à 22.06.16.jpg


498435-6669b1585cfa9948acde7449b6e412e9.png


HP12 is the internal connector used for front USB (so I'll set it to 255, as you wrote).
EDIT: nope. Set to 255, it doesn't appear any more anywhere...

As for USB3, I've made your suggested renames, now it doesn't appear anywhere else than Apple Info (no Disk Utility, no Finder, No Hackintool...)
EDIT: my bad! I forgot that I also had to put back the PXSX instead of KHC in the USBMap... Now it appears in Hackintool and IOREG too.
Capture d’écran 2022-03-11 à 22.20.26.jpg


Here's the resulting IOREG, I add the new USBMap info.plist, if you want to check.
 

Attachments

  • Samsara0311.ioreg.zip
    1.5 MB · Views: 36
  • Info.plist
    7.9 KB · Views: 41
Last edited:
Going with XHC2 or XHC3 is very novel. Rather like a Thunderbolt controller. Danger with that though might be an expectation of an Intel chipset ... ?

I must admit I don't see the point of touching the Etron PXSX enumeration. macOS "knows" what those are.
Until now, the rename to XHC_ has been the only way to make the ports appear everywhere (except for the Finder... :mrgreen::banghead:)

Well, a lot of headaches, but some fun out of it. :lol:;)
 
Back
Top