Скачать утилиты (Tools)

Самое главное, что нужно понять перед началом построения карты USB портов:
– Каждый USB порт на вашем ПК, имеет одновременно и 2.0 (HS) и 3.0 (SS). В противном случае, любая внешняя 2.0 периферия, просто бы не читалась в USB 3.0/3.1/3.2 портах.
*Исключением являются только 2.0 USB порты.
– Обратите внимание, что допустим Bluetooth, находится на 2.0 (HS) и будет виден в IOREG отчёте, а значит если вы удалите соответствующий ему HS порт, то Bluetooth перестанет работать.
*Это касается любой внутренней, аппаратной части, находящейся на USB порте.
– Открыв IOREG отчёт, до раздела XHC, нужно прокрутить колесом мыши, а не пользоваться поисковой строкой!
– Суммарное количество USB (HS + SS) не должно превышать лимит 15 портов.

Начнём!
ESP Mounter Pro — данной программой, монтируете EFI раздел диска с системой где находится загрузчик. Любые plist файлы редактируете в программе — PlistEdit Pro.

Откройте файл config.plist вашего загрузчика, который находится на разделе EFI диска, и поиском найдите ключ "XhciPortLimit", выставьте значение - NO.  Сохранить и закрыть файл. Если данное значение ключа уже установлено как NO, приступаем к следующему этапу.

На разделе EFI диска с установленной системой, по пути EFI\CLOVER\kexts\Other или EFI\OC\kexts, находится codeless kext - XHC(I)-"macmodel"-injector.kext. В нём прописаны все возможные порты, и работают совместно с патчем на лимит портов в config.plist(без него максимум 15 портов). Пришло время обходиться без патча, для этого инструкция ниже:

Откройте программу IORegistryExplorer. Найдите в программе устройство XHC, как на картинке ниже, и начинайте подключать устройство USB2.0 в каждый порт поочередно. Смотрите соответствие портов HSx в IOReg к какому порту он привязан на материнской плате. Записывая результат на бумаге или как вам удобно.

Когда закончили подключать все USB порты, можно удалить их из кекста XHC(I)-"macmodel"-injector.kext на основе составленной вами карты. Те порты HSx, что в IOReg никак не идентифицировались - удаляем и перезагружаем ПК.

Далее, на освободившееся место в лимит из 15 портов, подтянутся порты SSx (USB3.0). Но не все, а столько, сколько для них хватило места. Например удалили 7 портов HSx, на их место придут 7 портов SSx. Делаете аналогичную процедуру, только уже с устройством USB3.0, получаете финальный результат.

Для удобства, можно выписать все порты и их соответствие, на подобной схеме.

Найденные порты в IOReg и их соответствие на материнской плате.

Редактирование XHC(I)-"macmodel"-injector.kext: заходим в kext через ПКМ - показать содержимое пакета - Contents - открыть Info.plist.

IOKitPersonalities - имя макмодели(например iMac19,1)-XHC - IOProviderMergeProperties - ports. Тут удаляем ненужные порты, которые при поиске не были активны в IOReg.

Убраны SS01, SS02 - т.к. проводные мышка и клавиатура сидят в этих портах на HS01, HS02

Убраны HS03, HS04 - т.к. это порты на передней панели, которые отданы только для USB3.0 (SS03, SS04)

HS11, HS12, HS14, SS06 - убраны, т.к. не используются совсем.

UsbConnector (можно прописать на все порты - 3):

0 - внешний USB1 и USB2 на OHCx и EHCx.
3 - внешний USB2 и USB3 на XHC.
9 - внешний USB Type-C.
255 - внутренний USB (например: встроенная в ноутбук web-камера, встроенный в ноутбук блютуз).

Сохраняем, перезагружаем, смотрим результат.

5/5 - (2 голоса)

3 Replies to “Патч на лимит USB портов 10.12 - 12.x. Создание собственного legacy kext'а для своей материнской платы.

  1. Здравствуйте! После успешной модификации кекста по данной инструкции требуется ли удалить/отключить "патч на лимит USB 3.0 портов"?

    1. Здравствуйте, не обязательно, их наличие или отсутствие в конфиге на последней версии системы, никак не влияет на неё.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

9 + 6 =