Ajuste de puertos USB en Z390 Aorus Elite

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. En teoría la extensión USBPorts.kext y el archivo SSDT-UIAC.aml son redundantes y ambos realizan la misma modificación desde lugares diferentes pero en la práctica a mí me ha dado mejor resultado emplear ambos.

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.

Deja un comentario