Puertos USB en Z390 Aorus Elite (macOS)

Ajustar los puertos USB de la placa base Z390 Aorus Elite para que no superen el límite impuesto por macOS Catalina (15 puertos) y asignar correctamente el tipo de cada puerto para que funcione a la velocidad correcta. Siguiendo el método propuesto en la ayuda integrada en la herramienta Hackintool de headkaze.

macOS Catalina tiene por diseño un límite de 15 puertos USB que puede manejar. Ningún Mac supera o se acerca siquiera a ese número pero cualquier placa base de las que utilizamos para construir un Hackintosh supera ese número, bastantes de ellas ampliamente. Por ejemplo, mi placa Z390 Aorus Elite viene con 4 puertos USB2 + 1 puerto USB3 tipo C + 7 puertos USB3 + 2 hubs USB2 en la placa.

Para contar los puertos con vistas al límite hay que tener en cuenta que cada puerto USB2 cuenta como 1 pero cada puerto USB3 (clásico o tipo C) cuenta como 2, la parte USB2 y la parte USB3. Así que mi placa en realidad viene con 14 puertos USB3 (7 USB3 + 7 USB2) + 3 puertos USB2 + 2 puertos en el tipo C (1 USB3 + 1 USB2) + 2 hubs USB2, total 21 puertos. Se puede dejar que el sistema trabaje así pero lo más probable es que algunos puertos no funcionen bien o no lo hagan a la velocidad adecuada e incluso que esto repercuta en otras funciones como el encendido o el reposo.

Nota: Los puertos USB2 se muestran como HSxx (HighSpeed) y los USB3 como SS (SuperSpeed). Los hubs USB2 integrados en la placa se muestran como PRxx o como USRxx.

RehabMan tiene una extensión, USBInjectAll.kext, que utilizada junto con el parche, escrito por pmheart y otros, que elimina el límite de 15 puertos (Port-Limit Removal Patch, PLRP en adelante), permite cargar todos los puertos de la placa base por elevado que sea su número. Algunos usuarios utilizan su sistema con esta configuración por la comodidad de disponer de todos los puertos de la placa pero es una configuración inestable pensada únicamente para trabajar durante la asignación de puertos pero no de forma permanente. USBInjectAll junto al PLRP son la opción más ampliamente utilizada para configurar y asignar los puertos dejando el número en 15 y con sus velocidades correctas. Para seguir este método hay una guía excelente de UtterDisbelief titulada «The New Beginner’s Guide to USB Port Configuration» en tonymacx86.

En este artículo voy a comentar otro método, el que se propone en las instrucciones de la ayuda de Hackintool que, si bien recurre a USBInjectAll, en cambio no utiliza PLRP sino comandos incluidos en USBInjectAll para excluir grupos de puertos al arrancar de manera que podemos arrancar solamente con los USB2 o con los USB3 activos y realizar la asignación de puertos sobre cada uno de los 2 grupos por separado.

Agradecimientos a headkaze, Rehabman, pmheart, UtterDisbelief y otros que hacen posible estas modificaciones.

Requisito previo: esta placa lleva el controlador «Canon Lake PCH USB 3.1 xHCI» con identificador de dispositivo A36D (8086:A36D) por lo que requiere tener instalada la extensión XHCI-unsupported.kext para que el controlador sea bien reconocido.

  1. USBInjectAll

Hay que copiar la extensión USBInjectAll a la carpeta EFI/CLOVER/kexts/Other. USBInjectAll requiere que tengamos en Clover> DSDT parches para cambiar de nombre XHCI a XHC – XHC1 a XHC – EHC1 a EH01 – EHC2 a EH02. Desde Skylake en adelante no existen controladores EHCI por lo que en mi sistema (Coffee Lake) este cambio no es necesario. Tampoco se requiere renombrar XHC1 a XHC. El único cambio que puede ser útil es el de XHCI a XHC aunque yo he probado con y sin él y no he observado diferencias. Para renombrar XHCI a XHC hay que añadir estas líneas en la sección DSDT> Patches:

		<key>DSDT</key>
		<dict>
			<key>Patches</key>
			<array>
				<dict>
					<key>Find</key>
					<data>WEhDSQ==</data>
					<key>Replace</key>
					<data>WEhDXw==</data>
					<key>Disabled</key>
					<false/>
					<key>Comment</key>
					<string>change XHCI to XHC</string>
				</dict>
			</array>

Después hay que reiniciar.

  1. Hackintool

En la pestaña USB has de anotar los puertos en los que tienes conectados de forma permanente el ratón y el teclado y tal vez el bluetooth (por ejemplo HS11, HS12 y HS13 en mi caso). Has de seleccionar todos los puertos, pulsar el botón Delete y después el botón Refresh que rellenará la lista de puertos con todos los que detecta la herramienta, sin límite.

En Clover Configurator> Boot> Boot Arguments añade este comando para que al arrancar se descarten los puertos USB3 y se incluyan los que hemos anotado para teclado, ratón, etc.:

-uia_exclude_ss uia_include=HS11,HS12,HS13

Después hay que reiniciar.

Volvemos a Hackintool> pestaña USB. Hay que conectar y desconectar un dispositivo USB2 en cada uno de los puertos de la placa. Al terminar, los puertos activos están resaltados en verde. Selecciona los que NO están resaltados en verde y pulsa el botón Delete.

En Clover Configurator> Boot> Boot Arguments borra el comando añadido en el paso anterior y añade este comando para que al arrancar se descarten los puertos USB2 y se incluyan los que hemos anotado para teclado, ratón, etc.:

-uia_exclude_hs uia_include=HS11,HS12,HS13

Después hay que reiniciar.

Volvemos a Hackintool > pestaña USB. Hay que conectar y desconectar un dispositivo USB3 en cada uno de los puertos de la placa. Si utilizas el conector Type C también has de conectar un dispositivo Type C en ese puerto, recuerda conectarlo en ambos sentidos. Al terminar, los puertos activos están resaltados en verde. Selecciona los que NO están resaltados en verde y pulsa el botón Delete.

En la lista que hemos completado ahora es el turno de asignar a cada puerto el tipo de conector adecuado:

  • los puertos que tienen un dispositivo conectado permanentemente (ej: bluetooth) se ponen como «Internal«
  • los puertos HS conectados a puertos USB3 se ponen como «USB3«
  • los puertos SS se ponen como «USB3«
  • el puerto Type C puede utilizar idénticos HSxx/SSxx en ambos sentidos en cuyo caso se pone como “TypeC+Sw” pero si utiliza diferentes HSxx/SSxx en cada orientación se pone como «TypeC«.

Si el número de elementos de la lista es mayor de 15 has de elegir puertos para descartar. Para mantenerme en el número 15 yo he borrado los puertos HS03 y HS04 (USB2) de los conectores rojos traseros que con este cambio solamente reconocerán dispositivos USB3.

Pulsa en el botón Export para generar en el Escritorio unos archivos de los que vamos a coger 3: SSDT-EC-USBX.aml, SSDT-UIAC.aml y USBPorts.kext. Los archivos .aml han de copiarse a la carpeta EFI/CLOVER/ACPI/patched y la extensión a la carpeta EFI/CLOVER/kexts/Other. La extensión USBPorts.kext y el archivo SSDT-UIAC.aml son redundantes y ambos realizan la misma modificación, yo utilizo solamente USBPorts y desecho SSDT-UIAC.

En Clover Configurator> Boot> Boot Arguments borra el comando añadido para excluir puertos y también borra la extensión USBInjectAll.kext.

Después hay que reiniciar.

Volvemos a Hackintool > pestaña USB. Selecciona todos los elementos que aparecen en la lista de puertos, pulsa el botón Delete y después el botón Refresh para cargar la configuración actual. Aquí puedes comprobar que todo funcione correctamente. Si necesitas realizar alguna corrección hay que exportar los archivos de nuevo y reemplazar los existentes.

En la imagen están numerados los puertos de mi placa Z390 Aorus Elite. Imagen modificada de un original de u/afchvs en el sitio Reddit.

9 comentarios en «Puertos USB en Z390 Aorus Elite (macOS)»

  1. Curiosamente y no lo encuentro y lo necesito para mis vídeos antes decía que su uso sólo era experimental y no para dejarlo puesto no sé si por Big Sur o Monterey lo han quitado y en algunos casos es necesario su uso. Pero en mi caso para un i5 9400 no me hace falta usarlo. Si sabes donde esta esa información te agradecería me lo pusieras o comentaras, gracias por tu tiempo.

    Responder
  2. Voy a poner en práctica todo la información que me brindas y te aviso cómo va. Ojalá se solucione el problema. Gracias por tu tiempo, Pol.

    Responder
  3. La tarjeta Fenvi vino con su cable Usb, lo conecté al puerto interno pero no da BT, el puerto creo que está muerto. Tengo Clover instalado, ahora estoy utilizando UsbInjectAll.kext. Ojalá puedas ayudarme.
    Gracias.

    Responder
    • Hace más de 1 año que uso OpenCore por lo que en Clover soy más ignorante. Vamos por partes. Dices que has probado los 2 puertos internos que se corresponden con HS11 y ninguno da BT. Antes de pensar en un fallo de hardware (avería de esos 2 conectores) vamos a pensar en la configuración de Clover.

      Cuando se utiliza UsbInjectAll, lo que hacemos es intentar forzar a macOS a que cargue todos los puertos USB de la placa base aunque sean más de 15. Por qué digo 15? Porque macOS por diseño tiene un límite de 15 puertos por controlador USB, más de 15 no los activa. Ningún Mac real tiene más de 15 puertos por lo que ahí no es problema. Pero nuestras placas sí tienen más de 15. Cada puerto USB2 cuenta como 1 pero cada puerto USB3 cuenta como 2. Más los puertos internos. Como ves, es fácil superar los 15 puertos.
      Pero UsbInjectAll por sí sola no consigue lo que busca porque macOS sigue limitando el nº a 15. Hay que utilizar alguno de los parches que hay para impedir que macOS limite el nº a 15. Los tienes instalados en Clover? Si no los tienes, esto es lo primero que hay que probar. Si ya los tienes, hay que probar otras cosas.

      Los parches para Catalina que eliminan el límite de 15 son estos (por si acaso no los tienes en Clover):
      https://www.insanelymac.com/forum/topic/339980-audiogods-aorus-z390-pro-patched-dsdt-mini-guide-and-discussion/

      Estudia este artículo sobre un hackintosh con tu placa, puede ser de mucha ayuda:
      https://www.insanelymac.com/forum/topic/339980-audiogods-aorus-z390-pro-patched-dsdt-mini-guide-and-discussion/

      Y otra opción es probar con esta EFI, es para tu modelo de placa base y lleva incluida la kext mapa de puertos USB, reemplazas una por otra y pruebas a ver si todo funciona bien. NOTA: para usar esta EFI tienes que:
      1. añadir números de serie de iMacPro1,1 (van en blanco)
      2. desactivar la tarjeta gráfica integrada en la BIOS.

      Responder
  4. Hola, disculpa la demora, sí viene con su cable, lo conecto al puerto interno pero nada de nada, no da señal, mi mobo viene con 2 puertos internos (HS11), igual no funcionan. Tengo instalado Clover, el kext es UsbInjectAll.kext.
    Todo funciona bien sin problemas menos los puertos internos.

    Responder
  5. Hola, amigo,
    llevo buscando ayuda, ojalá puedas ayudarme, soy nuevo en hackintosh, me monté una pc, una z390 Aorus Pro i9 RX 590 16gb 1tb m.2. Catalina,
    Mi problema es que el USB interno (HS11) no corre con nada, no me coge el bluetooth porque no hay corriente, tengo una Fenvi, wifi y BT, el wifi coge normal pero BT nada de nada, hice mapeo de puertos, cambié configuraciones y nada,
    No sé si puedas ayudarme, me estoy volviendo, loco xD.
    Gracias de antemano.

    Responder
    • Por ahora solamente una pregunta de algo que siempre hay que saber con seguridad antes de seguir. La tarjeta Fenvi viene con un cable que termina en el conector que hay que introducir en el puerto USB interno. Sin este cable, BT no funciona pero Wifi sí. Tienes conectado este cable?
      Si la respuesta es sí, necesito más información:

      • bootloader que estás utilizando, Clover u OpenCore
      • si es OpenCore, qué versión
      • si estás utilizando kexts para mapear los USB (USBPorts.kexts o USBMap.kext) o si estás utilizando UsbInjectAll.kext
      • si usas OpenCore, la clave Kernel > Quirks > XhciPorLimit es True o False?
      Responder

Responder a pol