USB-порты на Hackintosh после установки системы часто работают нестабильно: встроенный Bluetooth отваливается после сна, фронтальные разъёмы корпуса не видят флешки, а USB 3.0-устройства определяются только как USB 2.0. Причина почти всегда одна — система macOS жёстко ограничивает количество USB-портов одного контроллера 15 портами, а типичная материнская плата на чипсете Intel предоставляет их значительно больше, поскольку каждый физический разъём USB 3.x занимает сразу два логических порта (HS и SS).
Процедура USB mapping решает эту проблему: вы вручную составляете карту реально используемых портов, отключаете лишние и указываете для каждого корректный тип. Без этого шага сборка Hackintosh считается незавершённой, даже если «всё вроде бы работает» — проблемы проявятся позже, чаще всего в виде нестабильного сна и отказа Bluetooth-модулей.
Почему macOS требует не более 15 портов
Ограничение в 15 портов зашито в драйвер AppleUSBXHCI на уровне кода операционной системы. Каждый контроллер XHCI может «показать» системе до 26 портов (стандартное значение для многих чипсетов Intel), но macOS инициализирует только первые пятнадцать. Какие именно порты попадут в эту пятнадцатку — определяется порядком перечисления, а не вашими пожеланиями.
На практике это выглядит так: физический разъём USB 3.x на задней панели занимает два логических порта — HS (High Speed, USB 2.0) и SS (SuperSpeed, USB 3.x). Плата с восемью разъёмами USB 3.x и парой USB 2.0 легко превышает лимит. Часть портов просто обрезается, причём часто отрезаются именно внутренние порты, на которых «висят» Bluetooth-модуль или разъёмы передней панели.
⚠️ Внимание: временные обходные пути вроде загрузочного аргумента -uia_exclude_hs или повышения лимита через патчи XhciPortLimit подходят только для этапа установки и диагностики. Оставлять систему в таком состоянии постоянно нельзя — это нарушает стабильность работы USB-стека и ломается при обновлениях macOS.
Инструменты для создания карты портов
Существует несколько рабочих подходов, и выбор зависит от того, на каком этапе находится ваша сборка и какая ОС вам доступна прямо сейчас.
- 🛠️ USBMap (скрипт от CorpNewt) — классический инструмент, работает в терминале macOS, создаёт готовый
USBMap.kext. Требует, чтобы система уже загружалась. - 🪟 USBToolBox — позволяет составить карту портов из Windows до установки macOS, что особенно удобно для новых сборок. Результат — файл
UTBMap.kextв связке сUSBToolBox.kext. - 📋 Ручное редактирование SSDT — метод через SSDT-UIAC и
USBInjectAll.kext. Более гибкий, но требует понимания ACPI и аккуратности. - 🔍 Hackintool — утилита для визуального определения портов: показывает, какие из них активны, и позволяет экспортировать конфигурацию.
Подготовка: определение активных портов
Перед созданием карты нужно выяснить, какие логические порты реально задействованы. Для этого на этапе диагностики используется USBInjectAll.kext вместе со снятым лимитом портов — так система увидит все порты контроллера, а не только первые пятнадцать.
Дальше действуйте методично. Откройте Hackintool на вкладке USB (либо запустите USBMap) и по очереди втыкайте в каждый физический разъём сначала устройство USB 2.0, затем устройство USB 3.x. Активные порты подсветятся в списке. Записывайте, какому физическому разъёму какой логический порт соответствует — эта таблица станет основой карты.
Не забудьте про внутренние разъёмы: Bluetooth-модуль, хаб передней панели, RGB-контроллеры и подобные устройства тоже занимают порты. Определить их можно по тому, что порт активен постоянно, даже когда во внешние разъёмы ничего не вставлено.
Ведите простую таблицу на бумаге или в заметках: «разъём на плате → логический порт → тип». Это сильно упростит финальную настройку и поможет, если придётся переделывать карту после замены корпуса или платы.
Типы портов: почему это критично
При создании карты каждому порту присваивается тип — connector type. От него зависит не только корректное отображение в системе, но и работа сна, скорость зарядки и стабильность устройств.
| Тип (значение) | Назначение | Типичное применение |
|---|---|---|
| 0 (USB 2.0) | Порт только стандарта USB 2.0 | Старые разъёмы, внутренние хабы |
| 3 (USB 3.x) | Порт с поддержкой SuperSpeed | Основные разъёмы задней панели |
| 9 (Type-C + Switch) | Type-C с определением ориентации | Разъёмы USB-C на плате |
| 10 (Type-C без Switch) | Упрощённый Type-C | Если ориентация не определяется |
| 255 (Internal) | Внутренний порт | Bluetooth, встроенные хабы |
Особое внимание уделите Bluetooth: его порт обязательно должен быть помечен как Internal (255). Если оставить его обычным внешним портом, macOS будет пытаться «безопасно извлечь» Bluetooth при засыпании — отсюда классический симптом, когда после пробуждения мышь и клавиатура по Bluetooth не подключаются.
Карта портов — это не опция, а обязательная часть грамотной настройки Hackintosh: без неё система работает на временных патчах, которые ломаются при обновлениях macOS.
Пошаговое создание карты через USBMap
Ниже — общая логика процесса для скрипта USBMap. Точные пункты меню могут немного отличаться между версиями, поэтому сверяйтесь с документацией инструмента, которым пользуетесь.
☑️ Чек-лист создания USB-карты
Запустите скрипт в терминале и выберите режим обнаружения портов. Пройдитесь по всем разъёмам тестовыми устройствами, затем вернитесь в меню и отметьте порты, которые войдут в финальную карту. Здесь придётся выбирать: если активных портов больше пятнадцати, часть придётся отключить — обычно жертвуют редко используемыми разъёмами или HS-половиной порта, которым пользуются редко.
После назначения типов скрипт сгенерирует USBMap.kext. Поместите его в папку EFI/OC/Kexts (для OpenCore), добавьте запись в config.plist в разделе Kernel → Add, а USBInjectAll.kext и патчи XhciPortLimit — отключите или удалите. Перезагрузитесь и проверьте результат.
⚠️ Внимание: перед любыми изменениями в EFI сделайте резервную копию раздела EFI на флешку и держите под рукой загрузочную флешку с рабочей конфигурацией. Ошибка в карте портов может оставить вас без клавиатуры и мыши прямо в процессе загрузки.
Проверка результата и типичные ошибки
После перезагрузки откройте Hackintool или «Информацию о системе» в разделе USB. Должны отображаться только порты из вашей карты — не более пятнадцати, каждый с правильным типом. Проверьте каждый физический разъём обоими типами устройств, а затем отправьте систему в сон и разбудите: Bluetooth и все порты должны остаться рабочими.
Если что-то пошло не так, чаще всего виноваты следующие моменты:
- 🔌 Порт не работает вообще — он не попал в карту или был отключён при укладке в лимит. Пересоберите карту и включите нужный порт.
- 😴 Bluetooth пропадает после сна — порт Bluetooth не помечен как Internal (255). Исправьте тип и перегенерируйте kext.
- ⚡ USB 3.x-устройство работает на скорости USB 2.0 — в карту не включён SS-порт этого разъёма или он обрезан лимитом.
- 🔄 После обновления macOS порты слетели — в системе остались временные патчи XhciPortLimit вместо полноценной карты.
Что делать, если после установки USBMap.kext не работают клавиатура и мышь
Загрузитесь с резервной EFI-флешки, удалите или отключите USBMap.kext в config.plist, верните USBInjectAll и временный снятый лимит портов. После восстановления доступа перепроверьте карту: скорее всего, порт, к которому подключён USB-хаб с клавиатурой и мышью, был ошибочно исключён или ему присвоен неверный тип.
Особенности для AMD и новых чипсетов Intel
На платформе AMD ситуация сложнее: USB-контроллеры там часто разнесены между процессором и чипсетом, и порты могут принадлежать разным контроллерам с собственными ACPI-именами. Универсальной инструкции здесь нет — нужно определять, какой контроллер за какие разъёмы отвечает, и маппить каждый отдельно. Ориентируйтесь на гайды под конкретную платформу и версию macOS.
На свежих чипсетах Intel также встречаются нюансы с размещением портов, а поддержка конкретных поколений зависит от версии macOS. Перед началом работы уточните в актуальной документации OpenCore и профильных гайдах, какие кексты и методы рекомендуются именно для вашей связки «плата + версия системы» — рекомендации со временем меняются.
Храните готовый USBMap.kext отдельно от EFI — в облаке или на другом диске. Он привязан к железу, а не к версии macOS, поэтому пригодится при любой переустановке системы на той же плате.
Часто задаваемые вопросы
Можно ли пользоваться Hackintosh без USB mapping?
Технически система загрузится и будет работать на временных патчах, но это нестабильное состояние: часть портов обрезается лимитом, сон и Bluetooth работают непредсказуемо, а обновления macOS могут сломать патчи. Полноценная карта портов — обязательный этап настройки.
Нужно ли переделывать карту после обновления macOS?
Как правило, нет: USBMap.kext привязан к аппаратной конфигурации, а не к версии системы. Переделывать карту нужно при смене материнской платы, переподключении внутренних разъёмов или замене корпуса с другой передней панелью.
Чем USBToolBox отличается от USBMap?
USBToolBox позволяет составить карту из Windows, до установки macOS, что удобно для чистой сборки. USBMap работает внутри уже установленной macOS. Оба инструмента дают сопоставимый результат — выбор зависит от того, на каком этапе находится ваша система.
Что делать, если портов больше 15 и все нужны?
Придётся расставить приоритеты: обычно отключают HS-половину редко используемых разъёмов (тогда они работают только в режиме USB 3.x) или неиспользуемые внутренние порты. Полностью обойти лимит без потерь нельзя — это ограничение самой macOS.
Ломается ли карта портов при сбросе BIOS или обновлении прошивки платы?
Обновление BIOS иногда меняет ACPI-имена контроллеров или конфигурацию портов, из-за чего карта может частично перестать работать. После обновления прошивки проверьте все разъёмы и при необходимости пересоберите карту заново.