Строка XHCI unsupported в логе загрузки OpenCore или Clover означает, что встроенный драйвер USB-контроллера AppleXHCIPCI не смог инициализировать ваш контроллер xHCI — чаще всего из-за нестандартного PCI ID чипсета, который macOS не распознаёт как совместимый. Типичный симптом: установщик macOS зависает, а USB-порты полностью или частично не работают.
Эта проблема особенно характерна для свежих платформ — например, материнских плат на чипсетах Intel новых серий и некоторых плат AMD, где идентификатор контроллера ещё не входит в список поддерживаемых macOS. Ниже разберём, как подтвердить причину, какие кексты понадобятся и какие настройки загрузчика критичны.
Что означает сообщение XHCI Unsupported
Аббревиатура xHCI (eXtensible Host Controller Interface) — это стандартный интерфейс USB-контроллера, через который работают порты USB 3.x. В macOS за него отвечает системный драйвер AppleXHCIPCI. Когда загрузчик выводит XHCI unsupported, это значит, что драйвер проверил PCI ID контроллера и не нашёл его в своей таблице совместимости.
Важно понимать: само сообщение не всегда является фатальной ошибкой. Иногда оно появляется в verbose-логе, но система всё равно загружается, потому что часть портов обслуживается другим контроллером. Однако если установка зависает на этапе Still waiting for root device или USB-клавиатура с флешкой «отваливаются» — проблему нужно решать.
⚠️ Внимание: не путайтеXHCI unsupportedс ошибкойUSB is not enabledили проблемами маппинга портов. Это разные ситуации: первая касается распознавания самого контроллера, вторая — настройки отдельных портов после успешной загрузки системы.
Как подтвердить, что проблема именно в контроллере
Первый диагностический шаг — узнать PCI ID вашего USB-контроллера. В Windows это делается через Диспетчер устройств: найдите контроллер USB в разделе «Контроллеры USB», откройте свойства и на вкладке «Сведения» выберите свойство ИД оборудования. Вас интересует строка вида PCI\VEN_8086&DEV_XXXX.
В Linux тот же идентификатор получается одной командой:
lspci -nn | grep -i usb
Дальше логика простая: сравните полученный device ID с тем, что известно о совместимости вашей платформы в актуальных гайдах по Hackintosh (например, в OpenCore Install Guide — это признанный эталонный источник). Если ваш ID там отмечен как неподдерживаемый нативно — причина подтверждена.
- 🔍 Симптом 1: загрузка останавливается сразу после строки про xHCI;
- ⌨️ Симптом 2: клавиатура и мышь работают в BIOS, но «умирают» в установщике macOS;
- 💾 Симптом 3: установочная флешка перестаёт читаться после передачи управления ядру;
- 🧩 Симптом 4: в логе OpenCore виден PCI ID контроллера рядом с сообщением об ошибке.
Основные способы решения
Универсальной «волшебной кнопки» здесь нет — метод зависит от платформы. Но набор рабочих подходов устоялся, и перебирать их стоит в порядке от простого к сложному.
Первое, что проверяют, — настройки BIOS. Опция XHCI Hand-Off должна быть включена (Enabled): она передаёт управление контроллером операционной системе, а не прошивке материнской платы. Режим EHCI Hand-Off, если он есть отдельно, лучше отключить. Также убедитесь, что USB-контроллер не переведён в устаревший режим Legacy.
Второй шаг — добавление кекста XHCI-unsupported.kext (иногда встречается под именем XHCI-200-series-injector и подобными). Это не драйвер в полном смысле, а инжектор: он не содержит кода, а лишь «подсовывает» системному AppleXHCIPCI дополнительные PCI ID, заставляя его обслуживать ваш контроллер как совместимый. Кекст подключается через config.plist в разделе Kernel → Add.
☑️ Базовая проверка при XHCI unsupported
Настройка загрузчика: лимит портов и патчи
Даже когда контроллер распознан, macOS ограничивает количество USB-портов на контроллер — исторически это 15 портов. Если физических портов больше (что типично для современных плат, где каждый разъём USB 3.x занимает два логических порта), часть из них просто не заработает.
В OpenCore для временного обхода используется quirks XhciPortLimit в разделе Kernel → Quirks — установите значение True. В Clover аналогичную роль играл boot-аргумент -uia_exclude_hs или патч лимита портов. Учтите: снятие лимита — это временная мера для установки системы, а не постоянное решение.
⚠️ Внимание: патч XhciPortLimit несовместим с корректным долгосрочным маппингом портов. После успешной установки системы создайте собственную карту портов через USBMap или USBToolBox и отключите этот quirk — иначе возможны проблемы со сном и стабильностью USB.
| Метод | Когда применять | Риски |
|---|---|---|
| XHCI Hand-Off в BIOS | Всегда, первым шагом | Отсутствуют |
| XHCI-unsupported.kext | Контроллер не распознаётся по PCI ID | Минимальные, это инжектор |
| XhciPortLimit (quirk) | Установка системы, первичная настройка | Проблемы со сном при постоянном использовании |
| Маппинг портов (USBMap) | После установки macOS | Некорректная карта отключит нужные порты |
| SSDТ-патч контроллера | Нестандартные случаи, когда кекст не помог | Требует понимания ACPI |
Особенности для платформ AMD
На AMD ситуация отличается: USB-контроллеры там часто «размазаны» по нескольким узлам — чипсету и самому процессору. Из-за этого один и тот же порт может обслуживаться разными контроллерами в зависимости от ревизии платы. Сообщение XHCI unsupported здесь нередко относится только к одному из контроллеров, и система при этом загружается.
Для AMD важно проверить, какой именно контроллер выдаёт ошибку, и не трогать остальные. Практика показывает, что принудительное внедрение инжекторов на все найденные xHCI-устройства иногда ломает те порты, которые работали нативно. Двигайтесь пошагово и проверяйте результат после каждого изменения.
Почему на AMD контроллеров несколько
В архитектуре Ryzen часть USB-линий выведена напрямую из процессора (Matisse/Vermeer и новее), а часть — из чипсета (B550, X570 и т.д.). macOS видит их как отдельные PCI-устройства, и совместимость каждого определяется индивидуально.
Когда ничего не помогает
Если контроллер принципиально не заводится — например, это экзотический чип на ноутбуке — остаётся обходной путь: PCIe-карта USB-контроллера на совместимом чипе. Карты на базе чипов Renesas/NEC и Fresco Logic исторически считаются наиболее беспроблемными для macOS, хотя перед покупкой стоит свериться с актуальными отчётами сообщества по конкретной модели.
Для ноутбука этот вариант, разумеется, не подходит — там остаются только корректный SSDT-патч, правка DSDT или поиск готового EFI под вашу модель. В таких случаях честнее признать: без точного знания конфигурации конкретного аппарата универсальной инструкции не существует, и ориентироваться нужно на базу гайдов именно под вашу модель ноутбука.
Частые вопросы
Опасен ли кекст XHCI-unsupported для системы?
Нет. Это инжектор без исполняемого кода — он лишь расширяет список PCI ID, которые обслуживает штатный драйвер AppleXHCIPCI. Удалить его можно в любой момент, убрав запись из config.plist.
Можно ли оставить XhciPortLimit включённым навсегда?
Технически система будет работать, но это не рекомендуется: возможны проблемы с выходом из сна, нестабильность портов и конфликты при обновлениях macOS. Правильный путь — создать карту портов и отключить quirk.
Ошибка есть, но система загружается — нужно ли что-то делать?
Если все нужные USB-порты работают, сообщение можно считать информационным: вероятно, оно относится к второстепенному контроллеру. Проверьте работоспособность всех разъёмов и портов корпуса, прежде чем что-то менять.
Где взять XHCI-unsupported.kext?
Кекст распространяется через репозитории сообщества Hackintosh. Скачивайте его только из известных источников (например, профильных репозиториев на GitHub) и проверяйте совместимость версии с вашей версией macOS.
Поможет ли обновление BIOS?
Иногда да: производители плат обновляют микрокод и поведение контроллера. Но гарантий нет — обновление BIOS стоит рассматривать как дополнительную меру, а не основное решение.