Contribute
Register

<< Solved >> Huananzhi Hackintosh USB problems and optimization

Status
Not open for further replies.
Thanks, so I´ll have to figure out how to stick to 15 devices, but if it is 15 ports I guess I won´t...
 
15 logical ports (="personality") per controller. With USB 2 compatibility, a USB 3 physical port takes up two logical ports (four if USB-C without switch). But with hubs or daisy chaining you can have as many devices as you want on each port (almost, as there are practical limits to power delivery and to cascading hubs on hubs on hubs…). And as many controllers as the PCI tree allows.

With a proper USB map there should be no issue plugging all your devices, and some more, even on just a single controller from the X99. But it takes access to the board to do a suitable USB map (which may also depends on your case and how you plug the headers).
 
Your Huananzhi X99-F8 motherboard has the following USB ports:

Huananzhi X99-F8 rear I-O.png Rear I/O plate
  • 4 x USB2 ports (Black) (4 physical USB2 ports, no virtual ports) need to use the 'USB2' connector type.
  • 4 x USB3 ports (Blue) (4 physical USB3 ports, plus 4 USB2 virtual Ports giving a total of 8 USB ports) need to use the 'USB3' connector type, even the 4 x USB2 virtual ports.
  • Rear I/O contains 8 x physical ports and 4 x virtual ports, so 12 USB ports in total.

Huananzhi X99-F8 Intrenl USB header ports.png Motherboard USB Header ports

Right side of motherboard adjacent to SATA ports:
  • USB3 Header port providing 2 x USB3 and 2 x USB2 ports (total of 4 ports)
  • The ports from this USB3 header should all be set with the 'USB3' connector type, even the USB2 virtual ports.
Across the bottom of the motherboard, possibly 4 x USB2 header ports:
  • Each USB2 Header port can provide 2 USB2 ports, should be set as 'Internal' connector type. Whether connected to front case ports, USB card reader or Bluetooth module.
  • As I am not sure if all 4 headers are USB2 headers I can only assume they are, this would give a total of 8 x USB2 ports from these headers.
If you total up all the physical and virtual ports then your motherboard has a maximum of 24 ports (possibly only 20, if two of the motherboard headers are not USB2 headers).

Depending on the number of USB header ports you would need to drop between 5 and 9 ports to keep within the 15 port limit.

This doesn't restrict you from using internal or external powered USB hubs, if you need more than the number of physical connections that are available from the 15 ports (physical/virtual).

I use these USB2 header splinters in a few of my builds, where I need extra header ports.

USB Header port splitter.jpg USB2 Header Splitter - 1 header to 2 headers

USB2 Header 1 to 4 splitter.jpg USB2 Header splitter - 1 header to 4 headers

NZXT internal USB splitter.jpg NZXT USB splitter - 1 header to 8 ports (Powered Hub, power cable provided)

Each of the above splitters only use 2 USB ports (from 1 header) but can provide multiple internal USB connections.
 
@Edhawk: I don't want to saw confusion, but according to Dortania's guide, "255"/"internal" is for permanent devices (e.g. Bluetooth); anything removable, including motherboard headers, should use 0 (USB 2 type A), 3 (USB 3.x type A) or 9/10 (USB 3.X type C) according to the connector which is eventually exposed to the user.
The source is the ACPI 6.3 specification, table 9-293 on page 620. This should apply to Clover as well.
 
The table you mention is quite handy. But I don't believe it says that motherboard headers should use the USB2 (0x00) Type A Connector designation. I would class the motherboard USB2 headers as 'Proprietary connector' before I used the Type A connector designation.

Screenshot 2021-06-18 at 22.34.00.png USB connector Type in HEX format

Dortania's guide uses a shorter version of the same table, as 0x04 to 0x07 are not standard connectors found on a motherboard:

Screenshot 2021-06-18 at 22.36.50.pngUSB connector Type in Decimal format.

The Dortania guide says the Proprietary connectors are 'For Internal USB ports like Bluetooth'. It doesn't say only Bluetooth.

I have always assumed that USB2 motherboard headers were set as Internal with the connector type '255' or '0xFF' depending on which format was used.

I don't think I am wrong. But you can sow dissension if you feel differently.
 
I do not mean to sow dissension, but I read the guide differently and apply type according to the connector that is ultimately exposed to the user, irrespective of any intermediate cabling, whereas you stop at motherboard level.
Industry standard 9-pin USB 2 and 19-pin USB 3 headers are not quite "proprietary connectors", are they?

Going back to @UtterDisbelief's guide, the final map uses "USB3" connector (type 3) for HS07,HS08,SS08 from an internal 19-pin header; "Internal" is only used for HS14, the Bluetooth controller.

[…]

Here are the two plans I made for my Z370M-D3H motherboard:

mb-4-png.434772

[…]

The final list is as follows:

h5-jpg.434777

So I feel I'm in good company using types 0/3/9/10 for motherboard headers.
I do agree that type 255 is not only Bluetooth; for instance, internal USB audio devices, as seems to become fashionable with the latest generation of motherboards would also go by type 255, but that's still a non-removable device, not a user-exposed USB port.
May I respectfully suggest that you check the best practice with your fellow moderator UtterDisbelief?
 
Last edited:
You should have entries for "BoardSerialNumber", "SerialNumber" and "SmUUID" under "SMBIOS" key. Delete those to avoid that someone with the same board finds your EFI and takes the lazy road of using it as it is, without changing the serial numbers—that would land both of you in trouble when Apple sees two different computers logging in to the App store with the same serial number.
I´m searching in the config.plist file and the only thing I have like that is: Board-ID.

If this is the only thing I have to delete I´ll upload the file.
 
That's strange because you cannot boot without those. Maybe the entries have a different name in the version of Clover that your hack uses (I'm not familiar with Clover but I occasionally look at uploaded EFIs).
As a last move you may search in config.plist for your serial number itself, as reported by "About this Mac…". The board serial and system UUID should not be too far away from the serial number.
 
In Clover these elements will all be in the SMBIOS section of the config.plist, if they are present.
  • If you mount the EFI partition on your macOS drive.
    • Navigate to the /EFI/CLOVER folder you should see your config.plist.
  • Open the config.plist using Clover Configurator.
    • Navigate to the SMBIOS tab (listed on the left hand side of the Clover Configurator app), you should have a fully populated SMBIOS for a Mac Pro or iMac Pro, whichever you selected/used when creating the config.plist.
Should look something like this example of a Mac Pro 6,1 SMBIOS:
Screenshot 2021-06-19 at 15.55.26.png Relevant elements highlighted
 
Hi, in the config.plist the BIOS Version number doesn´t coincide with the number I see in "About this Mac>System Information", and I have blank fields in Board Serial Number, System Serial Number and System SmUUID:
 

Attachments

  • Captura de pantalla 2021-06-19 a las 18.14.33.png
    Captura de pantalla 2021-06-19 a las 18.14.33.png
    534.4 KB · Views: 30
Status
Not open for further replies.
Back
Top