Ssdt что это hackintosh

Установка Mac OS X на PC. Часть 6: DSDT

Ssdt что это hackintosh. hackintosh32. Ssdt что это hackintosh фото. Ssdt что это hackintosh-hackintosh32. картинка Ssdt что это hackintosh. картинка hackintosh32Пришла пора продолжить наш разговор о премудростях хакинтоша. В сегодняшней статье об установке Mac OS на PC мы поговорим о смысле аббревиатуры DSDT, которую всё чаще можно встретить в различных мануалах, касающихся инсталляции и настройки системы.

DSDT — сравнительно молодой метод в искусстве хакинтоша: он зародился пару лет назад, и сегодня стал практически незаменимым подспорьем для любого владельца «хака». Тем не менее, многие пользователи, слышавшие о хакинтоше, смутно представляют себе сущность DSDT. Ещё больше заблуждений касаются его возможностей. Сегодня мы рассмотрим случаи, в которых метод DSDT действительно полезен, и ситуации, когда он совершенно бессилен.

Для начала — расшифровка, которая, увы, мало что вам объяснит. DSDT означает Differentiated System Description Table. Эта «дифференцированная таблица описания системы» содержит сведения обо всех ключевых устройствах, из которых состоит компьютер, а также о параметрах и режимах их функционирования.

Зачем это всё нужно на хакинтоше? Не секрет, что Маки и PC устроены по-разному, и сильно отличаются по целому ряду технических параметров. Начать можно с BIOS — на Маках его вообще нет, а в качестве замены выступает EFI. И хотя появление полноценного эмулятора EFI для PC не за горами, пока приходится сглаживать это различие другими способами. Если бы не было DSDT, то для корректной работы целого ряда устройств ПК с драйверами, входящими в состав Mac OS X, потребовались бы значительные усилия: например, пропатчивание BIOS.

Ssdt что это hackintosh. . Ssdt что это hackintosh фото. Ssdt что это hackintosh-. картинка Ssdt что это hackintosh. картинкаБудем считать всё вышенаписанное небольшим вступлением, и перейдём к практической части в формате FAQ.

В чём преимущества использования DSDT?

В том, что Mac OS X сможет значительно лучше взаимодействовать с рядом устройств, что благополучно скажется на стабильности и производительности системы.

Для чего подойдёт DSDT?

Вот неполный список:

Поработав над правкой DSDT, можно добиться поразительных результатов. Например, на компьютере автора установлен только один дополнительный кекст — FakeSMC.kext. Всё остальное — от Apple, и отлично работает.

DSDT — это замена драйверам?

Это самое распространённое заблуждение. Нет. DSDT — не драйвер, это способ указать системным драйверам Apple, как надо работать с вашими устройствами. Таким образом, если какое-нибудь устройство даже чисто теоретически несовместимо ни с одним из кекстов Mac OS X, то никакой DSDT-патчинг делу не поможет.

Но ведь выше написано, что DSDT позволяет сократить количество кекстов! Как же так?

Противоречия нет. DSDT поможет вам избавиться от мусора вроде всяких инжекторов — для звука, графики, твиков для правильного управления питанием и пр. Но настоящие драйверы, через которые идёт работа системы с устройствами, заменить нереально.

А зачем возиться с DSDT, если со «всякими инжекторами» отлично всё работает?

Довода два. Первый — сугубо практический. Чем меньше посторонних кекстов, тем проще будет переустановить систему. Второй — для людей, думающих о будущем. Есть вероятность, то с выходом очередного обновления Mac OS X инжекторы перестанут работать. А вот с DSDT такого не произойдёт — таблица делается раз и навсегда. Подложив один небольшой файлик с ней загрузчику, вы избавите себя от рутины по установке и подстройке многих кекстов.

Неужели DSDT никогда не придётся менять?

Увы, ничто не вечно. Стоит вам заменить процессор, нарастить количество оперативки или прикупить новую видеокарточку, как DSDT утратит актуальность, и его придётся переделать.

Где взять это чудо?

Лучше нигде не брать. Строго говоря, все DSDT-таблицы уникальны. Вы можете извлечь таблицу, актуальную именно для вашего компьютера. Тем не менее, если вам попалась DSDT-таблица от вашей же материнской платы, то можете смело пробовать. Для извлечения DSDT есть целый ряд инструментов, из которого особо выделим DSDTSE.

А как происходит правка?

Для правки полученный файл нужно декомпилировать, переведя его из языка, понятного машинам, в нормальный текст. Затем, по особым принципам правки, этот текст редактируется, туда добавляются куски, удаляется ненужное, и происходит обратный процесс — компиляция.

Ssdt что это hackintosh. dsdt. Ssdt что это hackintosh фото. Ssdt что это hackintosh-dsdt. картинка Ssdt что это hackintosh. картинка dsdtПример DSDT-кода

Чем опасны эксперименты с DSDT?

Во-первых, система может перестать грузиться. Это лечится достаточно просто — нужно всегда иметь на диске две копии DSDT — ту, с которой всё работает и ту, с которой вы экспериментируете. В случае проблем можно указать в загрузчике другую таблицу и всё починить.

Во-вторых, можно доиграться и до аппаратных проблем. Теоретически, отклонения от нужных значений некоторых настроек могут погубить устройства, например, испортить видеокарточку. Поэтому никогда не редактируйте в DSDT то, что не знаете.

Таким образом, DSDT — мощный инструмент, открывающий большие горизонты. Каждый месяц появляются новые открытия, и польза от DSDT только растёт. Постепенно наличие DSDT становится необходимостью: например, без него установка Snow Leopard на PC будет сопряжена с дополнительными проблемами.

Источник

Хакинтош: разворачиваем macOS Sierra на Intel-PC подробно и понятно

Если вы НЕ МОЖЕТЕ распаковать файлы на флешку, пожалуйста, отойдите от кливиатуры и срочно прочитайте книгу «Компьютер для чайников: подробное пособие как пользоваться ПК».

1. Все файлы залиты на МЕГУ. Кто испытывает с ней проблемы — в комментариях перезалили на торрент.
2. Пожалуйста, не спрашивайте меня про установку Мака на ноутбуки. Прошу вас. Пожалуйста. Это очень геморройный процесс. Поставьте себе убунту и подключите тему Мака. Тот же экспириенс получите
3. Я на хабре редко отвечаю, пишите в вк по всем вопросам.

Теперь, разберемся в том, что же такое Хакинтош (Hackintosh): слово «хакинтош» образовалось от слияния двух слов «Macintosh» и «Hack», что по сути означает «взломанный макинтош», хотя ничего общего со «взломом» тут нет.

В данном гайде рассмотрим создание установочной флешки из-под Windows (так как это наиболее популярная система среди «начинающих хакинтошников»), установку системы на чистый диск, расширения ядра под ваше железо и, собственно, установку и настройку загрузчика (именно на этом моменте и многих и возникают проблемы)

Также хочу обратить внимание, что в этой статье работа идет с видеокартами NVidia и UEFI BIOS’ом.

Шаг 1. Оценка и анализ железа

Да, несмотря на то, что Хакинтош так или иначе запускается на почти любых конфигурациях, делает он это всегда по-разному. Поэтому сразу стоит проанализировать наше железо.

Процессоры

Итак, начнем с того, что на машинах на процессорах AMD система работать НЕ БУДЕТ (то предсмертное состояние агонии, в котором она будет прибывать, «работой» назвать очень сложно). Да, по сути, можно поставить кастомное ядро, перепрошить его и так далее, но смысл изобретать велосипед из палок, если так или иначе он все равно сломается. Система встает без проблем на процессоры Intel, начиная с Core i3 (мы говорим конкретно про macOS Sierra 10.12, предыдущие выпуски могут встать также и на процессорах Core 2 Duo и Pentium). В моем случае выпал камень i5 4460 (4 ядра, 4 потока, турбобуст до 3,4 ГГц).

Видеокарты

Далее, определяемся с графикой. Если вы пользуетесь встроенной графикой Intel (в моем случае это HD4600), то скорее всего понадобится отдельный «завод» графики (хотя могут завестись нативно).

Радеоны (AMD) заводятся, но опять же с треском. Например, новые карточки (RX-4**), а также всем известная R9 380 или R9 380x могут просто вывести загрузку в черный экран.

В этом мануале рассматривать завод графики AMD не будем, так как все это сводится к патчам фрэймбуффера и подменам Device ID в загрузчике (что для каждого индивидуально). Подробнее о картах AMD тут: тык (English).

Совсем другое дело обстоит с карточками от NVidia. Заводятся почти все, за исключением некоторых особо-одаренных. Проблемы наблюдаются на 10-ой серии, но, скорее всего, их не скоро будетУже все норм. На картах GTX графика заводится с полпинка, карты выпуска GT тоже не отстают, хотя там и есть некоторые исключения.

Более чем уверен, что вы найдете в списке свою карту.

Сетевой контроллер

Думаю, не нужно разжевывать, как можно определить свою сетевую карту…

Открываем Диспетчер задач → вкладка «производительность» → Ethernet (Windows 10), там большими черными буквами будет сетевуха.

Ssdt что это hackintosh. ba3613ca080257bfe7d0a727ebad5544. Ssdt что это hackintosh фото. Ssdt что это hackintosh-ba3613ca080257bfe7d0a727ebad5544. картинка Ssdt что это hackintosh. картинка ba3613ca080257bfe7d0a727ebad5544

К слову, еще можно в BIOS’e посмотреть

Так или иначе, на этом подробно останавливаться не будем. Сетевую карту в любом случае придется заводить, так что просто предоставлю список поддерживаемых сетевых карт.

Intel Gigabit

5 Series – 82578LM/82578LC/82578DM/82578DC
6 and 7 Series – 82579LM/82579V
8 and 9 Series – I217LM/I217V/I218LM/I218V/I218LM2/I218V2/I218LM3

Realtek

RTL8111, 8168, 8101E, 8102E, 8131E, 8169, 8110SC, 8169SC
RTL8111/8168 B/C/D/E/F/G
RTL8101E/8102E/8102E/8103E/8103E/8103E/8401E/8105E/8402/8106E/8106EUS
RTL8105/8111E/8111F/8136/8168E/8168F

Atheros

AR8121, 8113, 8114, 8131, 8151, 8161, 8171, 8132,8151, 8152, 8162, 8172
AR816x, AR817x поддерживаются

Broadcom

BCM5722, 5752, 5754, 5754M, 5755, 5755M, 5761, 5761e, 57780, 57781, 57785,5784M, 5787, 5787M, 5906, 5906M, 57788, 5784M

Marvell

88E8035, 88E8036, 88E8038, 88E8039, 88E8056, 88E8001

Killer

Память

Ограничений нет. Система запускается на двух гигабайтах. Рекомендовано 4. Автор рекомендует 8.

С железом, собственно, разобрались. Если на этом этапе вы не передумали, идем дальше.

Шаг 2. Делаем загрузочную флешку и развертываем на нее установщик

Итак, вот мы и подошли к практике. Напомню, что делаем мы все это из-под Windows. Сразу говорю, что мы не будем использовать образы с рутрекера, которые так яро советуют люди, у которых все работает хакинтошники «до 18». Для начала нам потребуется утилита BDU (BootDiskUtiliy).

Потребуется флешка >8 ГБ. Любая.

1. Запускаем утилиту
2. Destination disk → выбираем нашу флешку
3. Format disk

Теперь ждем. Флешка отформатируется в Apple HFS и разобьется на два раздела, на один из которых будет установлен загрузчик (CLOVER), а второй останется чистым для того, чтобы туда можно было развернуть установщик.

После выполненных манипуляций получаем примерно следующую картину:

Ssdt что это hackintosh. image loader. Ssdt что это hackintosh фото. Ssdt что это hackintosh-image loader. картинка Ssdt что это hackintosh. картинка image loader

1. Достаем из архива HFS Partition File (HFS+), файл с расширением .hfs.
2. В окне утилиты BDU «Destination disk» выбираем Part 2 нашей разбитой флешки.
3. Открываем «Restore partiton».
4. Ищем и выбираем наш *.hfs-файл. Обратите внимание, что он должен быть не больше PART 2 раздела.
5. Ждем его распаковки.
Все, установщик на флешке распакован и готов к работе.

Теперь нам потребуются некоторые файлы для вашей системы. Все необходимое я собрал в этом архиве. Позже объясню, что и для чего.

Также потребуется еще этот кекст, его тоже скачиваем: тык. Распаковываем папку из архива в корень раздела с Clover’ом, а кекст в папку, которую мы распаковали. Все, готово. Флешка сделана. Идем дальше.

Шаг 3. Установка macOS Sierra на Intel-PC

Проверяем, что флешка вставлена в 2.0 порт. Перезагружаемся, заходим в BIOS. Напомню, что BIOS у нас — UEFI. Отключаем виртуализацию (Intel Virtualization). В приоритет загрузки (BOOT) указываем нашу флешку. Убедитесь, что она будет грузится именно в режиме UEFI. Сохраняем и применяем настройки, перезагружаемся. Попадаем в меню Clover’а.

Clover («Клевер») — загрузчик хакинтоша, а также его установщика.

Нажимаем стрелочку вниз до того момента, пока не попадем на меню Options. Нажимаем Enter. Все, что нам нужно здесь — это вот эта строка:

Ssdt что это hackintosh. image loader. Ssdt что это hackintosh фото. Ssdt что это hackintosh-image loader. картинка Ssdt что это hackintosh. картинка image loader

Прописываем в нее следующее:

Объясню, что делает каждый из этих аргументов:

kext-dev-mode=1 — необходимый арг, без которого не запустится хак. Позволяет загружать в систему кексты (Изначально, FakeSMC.kext).
rootless=0 — отключает SIP (System Integrity Protection). Необходимый арг.
-v — «Verbose mode». Вместо красивого яблочка мы увидем «консольную» загрузку, чтобы можно было опознать ошибку, если таковая появится.
npci=0x2000 (или 0x3000, в зависимости от версии PCI-e) — по желанию. Предупреждаем остановку загрузки на этапе сканирования PCI. Можно не прописывать.
nv_disable=1 — по желанию. Чтобы избежать артефактов при загрузке и прочего мусора, отключаем графическую оболочку. Грузимся в нативном режиме графики в православном 144p разрешении. Можно не прописывать.

Применяем аргументы, нажимая Enter. Выбираем Boot Mac OS Sierra from OS X Base System. И вот, пошла родимая загрузка. Сразу разберем некоторые ошибки: still waiting for root device — не успевает подключиться IDE-контроллер.

Missing Bluetooth controller transport — не включилась видеокарта, либо не подрубился FakeSMC.kext. Проверьте, что в папке kexts/other есть FakeSMC.kext. Синезуб тут не при чем.

Если такие ошибки все же остались, то пробуем грузится так:

В иных случаях помогут только гуглы, хотя эти фиксы должны решать эти проблемы.

Ждем. На некоторых моментах может подвисать. Если зависает больше чем на минуту — ребут. Должно помочь в некоторых случаях.

И вот мы, собственно, в установщике. Выбираем язык и кликаем на стрелочку. Пойдет подгрузка языкового пакета (может подвиснуть на минуту). Теперь открываем Утилиты>Дисковая утилита, нам нужно форматировать диск под macOS. Выбираем нужный диск, нажимаем «Стереть». Для удобства называем новый диск «Macintosh HD». Форматируем, закрываем дисковую утилиту. Далее выбираем диск, на который будем устанавливать систему (в нашем случае, Macintosh HD), устанавливаем.

Установка занимает от 15 до 30 минут, все зависит от скорости записи на диск. После установки система предложит нам настроить интернет подключение — пропускаем, это сделаем позже. Делаем пользователя. Готово, мы в системе. Вернее, в ее обрубке. Пока у нас еще ничего не работает. Если вы перезагрузите машину, то попасть в систему будет невозможно (ввиду отсутствия загрузчика).

Шаг 4. Базовая настройка системы и установка кекстов

Итак, вот мы в системе. Пока она умеет мало, в интернет мы не выйдем, графика не работает, да и вообще все выглядит как-то ну очень плохо. Это нужно исправлять.

Разберемся, что такое кексты.

Kext (Kernel Extension) — расширения ядра, запускающие то или иное несовместимое с оригинальным маком оборудование (Например, откуда в аймаке мы найдем сетевую карту от Realtek или звуковую карту?). Вот они нам сейчас и понадобятся.

Для начала нам потребуется папка PostInstall, которую вы распаковали в раздел CLOVER на загрузочную флешку. Оттуда нам нужна, в первую очередь, утилита Kext Utility, которая позволяет устанавливать кексты в систему. Запускаем ее, вводим пароль от пользователя, ждем, пока увидем надпись «All done».

Ssdt что это hackintosh. 58ba5f79c43ba6d87da48234fc584ed0. Ssdt что это hackintosh фото. Ssdt что это hackintosh-58ba5f79c43ba6d87da48234fc584ed0. картинка Ssdt что это hackintosh. картинка 58ba5f79c43ba6d87da48234fc584ed0

Устанавливаем кекст на сетевую карту (Папка Network, там по папкам рассортировал под каждую сетевую карту), просто перетаскиваем его в окно программы. Ждем, пока появится надпись «All done». Далее, заходим в раздел CLOVER нашей флешки, далее в kexts, далее в Other. Копируем оттуда FakeSMC.kext в любое место (Лучше в ту же PostInstall), далее тем же путем, что и кекст на сетевую карту, устанавливаем его. Также потребуется кекст на USB 3.0. Он был в архиве Legacy_13.2_EHC1.kext.zip, который вы распаковали в PostInstall. Устанавливаем его.

Готово, мы завели интернет, USB и позволили системе вообще загружаться (FakeSMC.kext имитирует чип System Management Control, который присутствует только на материнских платах Apple. Без этого кекста система просто не стартанет).

Теперь установим загрузчик. Заходим в папку PostInstall → Clover_v2.3k_r3949. Там есть *.pkg файл, открываем его.

Ssdt что это hackintosh. 2705f9b2a2c932e2cbe6b60337a21a62. Ssdt что это hackintosh фото. Ssdt что это hackintosh-2705f9b2a2c932e2cbe6b60337a21a62. картинка Ssdt что это hackintosh. картинка 2705f9b2a2c932e2cbe6b60337a21a62

Кликаем продолжить, читаем инфу о загрузчике (вру, тоже нажимайте продолжить). Далее, в левом нижнем углу нажимаем «Настроить».

Для UEFI-загрузки выставляем следующие настройки:

Ssdt что это hackintosh. 5df892db3291aa4c0fc742c3730d19ac. Ssdt что это hackintosh фото. Ssdt что это hackintosh-5df892db3291aa4c0fc742c3730d19ac. картинка Ssdt что это hackintosh. картинка 5df892db3291aa4c0fc742c3730d19ac

О легаси-загрузке поговорим позже, так как там все немного сложнее и придется патчить DSDT.
Нажимаем «Установить». Пойдем процесс установки загрузчика.
Готово, загрузчик установлен.

Шаг 5. Настройка загрузчика

После установки мы получим чистый, ненастроенный загрузчик Clover, который необходимо немного подконфигурировать. Открываем Clover Configurator (в будущем не советую пользоваться данной программой для точечного редактирования конфига загрузчика).

Далее нажимаем Open Partition. Откроет «папка» с нужным разделом. Переходим EFI>CLOVER. Копируем plist.config в папку PostInstall, для удобства. Также на всякий случай копируем его еще куда-нибудь, так как тот, который мы только что скопировали, будем редактировать. А еще один для бэкапа. Копируем, открываем plist.config.

Видим примерно следующее:

Ssdt что это hackintosh. 5724eff47f99cbe4017a35951abbe957. Ssdt что это hackintosh фото. Ssdt что это hackintosh-5724eff47f99cbe4017a35951abbe957. картинка Ssdt что это hackintosh. картинка 5724eff47f99cbe4017a35951abbe957

ACPI — Фиксы не трогаем, дропаем (DropOEM) нашу видеокарту (DropOEM_DSM работает, когда встречаются два DSDT патча. Поэтому оставляем оригинальный метод автопатча загрузчиком, а наш, если таковой появится, отключаем).
Переходим в секцию BOOT.

Ssdt что это hackintosh. f82e462059bfd23467fec9edf253d0b1. Ssdt что это hackintosh фото. Ssdt что это hackintosh-f82e462059bfd23467fec9edf253d0b1. картинка Ssdt что это hackintosh. картинка f82e462059bfd23467fec9edf253d0b1

Итак, вот тут нам следует покопаться. Аргументы выставляем сами, в зависимости от системы.

-v (verbose) — уже знакомый «текстовый» режим загрузки. Лучше не включать, а прописывать вручную при необходимости.
arch — архитектура. В моем случае x86_64
npci — уже известный нам ключ. Выставляем при необходимости. Рекомендую первую загрузку делать без него, но в Verbose mode.
darkwake — отвечает за режим сна и гибернацию. Имеет 7 режимов. Если сон не заведется изменением hibernatemode в терминале, то рекомендую методом проб и ошибок найти нужный режим дарквэйка.
cpus=1 — запуск с использованием только одного ядра. Не рекомендую выбирать.
nvda_drv=1 — активация вебдрайвера НВидии, который мы поставим чуть позже. Выбираем, если у вас nVidia.
nv_disable=1 — отключение графики невидии и запуск на нативном драйвере мака. Лучше не выбирать, но при необхожимости вручную прописывать.
kext-dev-mode=1 и rootless=0 уже объяснялись ранее.

Переходим в правую подсекцию.

Секцию CPU пропускаем, загрузчик сам подцепит нужные значения. Devices также лучше пропустить, если вам нечего «фэйкать». Disable Drivers — отключение ненужных драйверов при загрузке. GUI — настройка внешнего вида загрузчика. Думаю, пояснять тут ничего не нужно, особых параметров тут нет. Разрешение экрана, язык и тема меню. Все просто. Graphics — настройка и инжекты графики.

Параметр Inject NVidia не трогать! На запуске будут артефакты. Он предназначен для запуска старых карт линейки GT

Kernel and Kext Patches — патчи и кастомизация ядра. По-умолчанию выбран Apple RTC. Лучше не трогать. SMBIOS — самый сок, кастомизация и подделка «мака».

Ssdt что это hackintosh. b9afb5352c2cb3708cb92d53ca25f1bd. Ssdt что это hackintosh фото. Ssdt что это hackintosh-b9afb5352c2cb3708cb92d53ca25f1bd. картинка Ssdt что это hackintosh. картинка b9afb5352c2cb3708cb92d53ca25f1bd

Для настройки заводской информации нажимаем на иконку волшебной палочки. Далее выбираем iMac (Если ПК) или MacBook (если ноут).

Не добавляйте ничего в Memory и Slots. Это чисто косметические параметры, которые кловер подцепляет на этапе загрузке. Неправильно выставленные параметры могут вызвать конфликты.

В AppleGraphicsControl.kext/Contents/PlugIns/AppleGraphicsDevicePolicy.kext/Contents/info.plist исправляем Config1 на none вот тут:

Ssdt что это hackintosh. 0ba248772f51a4031c2a3598433e6751. Ssdt что это hackintosh фото. Ssdt что это hackintosh-0ba248772f51a4031c2a3598433e6751. картинка Ssdt что это hackintosh. картинка 0ba248772f51a4031c2a3598433e6751

Теперь должно работать.

Готово. Больше не трогаем ничего, базовые настройки мы сделали. Сохраняем наш файл. Теперь копируем его в папку CLOVER раздела EFI, авторизируемся, заменяем. Напомню, что перед этим вы должны были сделать бэкап.

Шаг 6. Установка графического драйвера и первая перезагрузка

Вот мы почти у цели. Теперь осталось только завести видеокарту. В папке PostInstall лежит пакет WebDriver*.pkg. Открываем его, устанавливаем. Далее он предлагает нам перезагрузится. Перезагружаемся.

Теперь удостоверимся, что мы загружаемся не с флешки, а с жесткого диска в режиме UEFI. Выбираем Boot macOS Sierra from Macintosh HD. Запускаемся.

Готово, вот мы и в системе. На картинке я примерно показал, как будет выглядеть ось после всех настроек. Обратите внимание на то, как система поняла ваш «мак», а также на частоту процессора.

Ssdt что это hackintosh. a3c608f8c147229833b53df4c0ad16df. Ssdt что это hackintosh фото. Ssdt что это hackintosh-a3c608f8c147229833b53df4c0ad16df. картинка Ssdt что это hackintosh. картинка a3c608f8c147229833b53df4c0ad16df

Верным признаком работы драйвера нвидии будет ее логотип на панели задач. Я его отключил, к слову, так как он мешается, но получить доступ к панели управления невидией можно через «Системные настройки. ». Интернет можем проверить через Сафари. USB 3.0 банально воткнув флешку в 3.0 порт.

Дополнительно

Касаемо звука дело обстоит иначе. Если у вас внешняя звуковая карта, то просто скачайте драйвера для нее с сайта производителя (аналоговые устройства, типа микшерных пультов, не требуют драйверов и заводятся сразу). Для встроенной звуковой карты используйте один из этих кекстов:

VoodoHDA. Народные умельцы запилили инструкцию по его настройке. Не буду ее копипастить, а просто дам ссылку на архив.

P.S. Автор рекомендует перемещать кекст руками, однако, это все можно сделать через Kext Utility.

Необходимо выполнить следующие условия, чтобы он заработал:

Собственно, это все. После мы получаем готовую к работе macOS Sierra.

Источник

[Guide] Patching LAPTOP DSDT/SSDTs

Ssdt что это hackintosh. 429483. Ssdt что это hackintosh фото. Ssdt что это hackintosh-429483. картинка Ssdt что это hackintosh. картинка 429483

RehabMan

Moderator

In order to make many OS X features work well on a laptop, you will always need a properly patched DSDT (and maybe some of the SSDTs). The purpose of this guide is to provide a foundation for proper patching of your OEM DSDT/SSDTs.

Although you may be tempted to use a DSDT from another computer, it will almost always end in failure. You simply cannot be certain it is valid to use ACPI files from another computer. Even minor differences in hardware configuration (BIOS version, amount of memory installed, BIOS options selected, and other hardware differences such as which WiFi card is installed) can make for differences that cause instability and weird bugs if you use foreign ACPI files. Such differences can make various OperationRegion addresses different, which makes a patched DSDT for one system incompatible with another. It is also not uncommon for the same laptop model to be produced in different runs with different motherboards, and potentially incompatible ACPI files.

Keep in mind that even changes you make to your own system (BIOS, hardware, etc.) will require re-extract, re-patch.

If any of the following is changed, you must re-extract, re-patch, as these changes may cause significant changes to the native ACPI (especially SystemMemory regions):
— updating BIOS
— changing any BIOS option
— changing hardware or memory configuration

The process of patching involves several steps:
— extracting native files
— disassembling the native files
— analyzing the native files
— patching
— saving (compiling) and installing

Extracting native ACPI files

All BIOS implementations provide ACPI files to the OS. So, on any OS, you can extract them for patching later. Extraction can therefore be done on Linux, OS X, Windows, or even in the Clover bootloader. Native files extracted are generally identical, although because of the software used to extract, they may be named differently.

This guide will focus on three methods of extraction: using F4 with Clover, using patchmatic in OS X, or using Linux.
Only the first is the recommended method. The others are provided for your information only.

Extracting with Clover F4 (recommended):

Extracting with Clover F4 is recommended, due to ease of extraction, and due to ease of comparison between ACPI/origin and ACPI/patched (for troubleshooting).

At the main Clover bootloader screen, you can press F4 and Clover will dump the native ACPI files to EFI/Clover/ACPI/origin. You can then access them after you boot OS X to disassemble them and patch. Note that some BIOS implementations reverse the function of Fn+F4 with F4, so when in doubt, press both Fn+F4 and F4. There is no feedback during or after the dump, just a slight delay as the files are written. The delay is more noticeable if they are being written to USB, as would be the case when booting from a Clover USB.

Sometimes, Clover F4 will write duplicate SSDTs. These duplicates will cause problems during disassembly. If you run into issues (duplicate definitions) during disassembly, you will need to analyse all SSDTs to eliminate the files which are duplicate. It is easy to see which are duplicates by looking at the file sizes. Files with equal size are likely duplicates.

You can see file sizes in bytes of all SSDTs in Terminal:

Extracting with ‘patchmatic’ (NOT recommended):

If you’ve already installed OS X, provided you’re not currently booting with any patched ACPI files, you can extract your native DSDT/SSDT with patchmatic. Download the patchmatic binary here: https://github.com/RehabMan/OS-X-MaciASL-patchmatic (be sure to read the README as the download location is linked from it). For ease of use in Terminal, you should copy the binary (inside the ZIP) to /usr/bin.

After installing patchmatic, you can invoke it in Terminal, as such:

It is for all those reasons, it is often easier to extract via Linux or using Clover F4.

Extracting with Linux (NOT recommended):

In Linux, the native ACPI files are available directly from the file system. You can find them at /sys/firmware/acpi/tables and /sys/firmware/acpi/tables/dynamic. It is possible to copy the entire set with a single command in Terminal.

You should copy the files to a FAT32 formatted USB. Using FAT32 avoids permissions issues as FAT32 has no file permissions. The value of DEST for an auto-mounted USB will depend on the version of Linux you’re using and how you booted it. You can see the mount-point by typing ‘mount’ in Terminal, or hover your mouse over the volume name in the Linux file explorer.

Preparing tools for disassembly

To properly disassemble your extracted files, you need the iasl compiler, which is run from Terminal.

You will need a recent build of iasl to disassemble them properly. There is an appropriate version available here: https://bitbucket.org/RehabMan/acpica/downloads/. It is a good idea to copy the iasl binary to your path (eg. /usr/bin), so it is easily accessed from Terminal.

For example, if you downloaded it to

/Downloads/iasl.zip, you can extract and copy it in Terminal:

Building the latest iasl from github

You can also build the latest version of my iasl from my github. The newer version of iasl will eventually be available at the bitbucket link, but for those who want to be on the «bleeding edge», you can build it yourself. The latest version always tends to have experimental and not well tested code.

Assuming you have Xcode installed:

Disassembling ACPI files

Although the extracted native files can be opened directly in MaciASL, it is not recommended. Opening an AML file directly in MaciASL will cause MaciASL to disassemble the file (with iasl) standalone, and if the AML has complex references to other AMLs, it will not disassemble it correctly. You’ll be left with many hard to fix errors.

Then disassemble in OS X Terminal:

Note: Also read the section below regarding refs.txt. Using refs.txt takes little more effort, but can eliminate many common errors.

Let me state it quite simply (because this comes up a lot): If you are opening an AML file directly in MaciASL and clicking Compile, you are doing it WRONG. Let that soak into the gray matter between your ears for a minute. The only exception to this rule is AML files compiled with a recent enough iasl that places embedded External opcodes in the file. This includes files you compiled yourself with the current iasl and native ACPI compiled by the OEM (generally, Skylake and later).

Note regarding Snow Leopard ACPI implementation: Unfortunately, the 10.6.8 ACPI is old enough that it chokes on AMLs with the external opcode. If you are planning to use your ACPI files with Snow Leopard use the undocumented «-oe» switch to iasl when you compile your AML files. This option is not set when you compile (Save As) from MaciASL, so you will need to compile your files in Terminal. The «-oe» option disables generation of the external opcode in the output AML files.

Disassembly with refs.txt

Sometimes there are additional unresolved externals (symbols not defined in any file). The iasl disassembler will attempt to guess the number of arguments, but often it guesses poorly. You can correct it, by providing the External declarations in a text file. Some common unresolved symbols are SGPO, ECRD, ECWT, and MMTB.

The following refs.txt content has some common (and not so common) missing symbols (as reported by users in this thread) that the disassembler tends to be confused by.

First create refs.txt in the directory where your DSDT/SSDT files are:

A handy way to create refs.txt is to use pbpaste in Terminal. Copy the text above to the clipboard (I’m assuming you know how to do that), then:

That will create refs.txt in your current working directory.

Then use it during disassembly:

Analyzing native ACPI

Except for patching to disable the discrete graphics device, it is not necessary to patch any SSDTs as the common renames are already done by the plists provided in the Clover laptop guide (https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/). And renaming is best accomplished via config.plist/ACPI/DSDT/Patches as it can avoid a lot of mistakes compared with patching for renames manually.

For the most part, you should be focused on only DSDT.aml.

So.. after determining which files you need, you must patch them so they compile without errors. There are many common patches for such errors in my laptop patch repository for MaciASL.

Note: I do not test my patches with DSDT Editor. It has too many bugs and a very old version of iasl. Please do not ask me about it.

Be certain to always read the README, in order to download from the correct location and in order to setup MaciASL correctly. The patches for syntax/error problems begin with «[syn]» in the name. Common examples for older DSDTs are «Fix _PLD Buffer/Package Error», «Fix TNOT Error», and «Fix FPED Parse Error». In order to determine which patch you need, you can look at the error message coming from the iasl compiler and the code at the line the error was detected. You can also attempt to apply a patch just to see if it makes changes as shown in the Preview window in MaciASL. If you’re not familiar with each type of error, it can take some experimentation and trial/error.

For some errors, you can simply remove the line of code causing the error. But, it depends on whether the line is necessary for proper operation of the code or not. For example, errors caused by ‘External’ declarations can generally be removed to fix the error. If you wish, you can create automated patches of your own to remove these lines.

It helps to have some experience with the ACPI spec and some programming experience.

It is very common to have extraneous/unnecessary External declarations. For example a recent DSDT I looked at had quite a few «Name already exists in scope» errors. For DTSE, DTS1, DTS2, DTS4, BNUM, PDTS, PKGA, SPST.

The fix is to simply comment out the related External declarations.
For example:

Another common error in recent DSDT is with ECRW (in a _CRS method). It is a very common error caused by an iasl bug. I’m not going to add a MaciASL patch for it, since it will eventually be fixed by Intel (it is a regression).

Generally, a DSDT patch should only be applied after finding a need for that specific fix. But there are several patches that are commonly needed and that have only a small chance of causing a problem. They are in my laptop repo and are listed here:
«Fix _WAK Arg0 v2»
«HPET Fix»
«SMBUS Fix»
«IRQ Fix»
«RTC Fix»
«OS Check Fix»
«Fix Mutex with non-zero SyncLevel»
«Fix PNOT/PPNT» (use only if you’re dropping CPU related SSDTs)
«Add IMEI» (do not use if your DSDT or SSDTs already have IMEI/HECI/MEI device)

Note: The OS Check Fix patch you use has nothing to do with the version of Windows the laptop came with, nor with the version of Windows you’re currently using.

Note: Do not use the «Fix PNOT/PPNT» patch if you’re including all OEM SSDTs. It is intended only for the case you omit the OEM CPU related SSDTs.

These patches can be used to inject power properties for USB:
«6-series USB»
«7-series/8-series USB»

The _PRW patches can be used to fix «instant wake» where the laptop will not sleep without waking up seconds after sleep begins. Use only «USB _PRW 0x6D (instant wake)» or «USB _PRW 0x0D (instant wake)» as it relates to existing code in your DSDT (also note specific versions of these patches for Skylake and later). You should examine your DSDT to determine what the relevant _PRW methods return to be certain the patch is appropriate for your DSDT.

If you have a Haswell CPU/8-series chipset, and AppleLPC.kext is not loading, you should use this patch to inject a compatible ID that will allow it to load:
«Haswell LPC»

If you have a Skylake CPU/100-series chipset, and AppleLPC.kext is not loading, you should use this patch to inject a compatible ID that will allow it to load:
«Skylake LPC»
Note: AppleLPC not likely needed with Skylake and later.

Note regarding renames: Renames must be «balanced.» It is common to rename objects to better match what OS X expects (example «Rename GFX0 to IGPU» for proper IGPU power management). In such cases, all DSDT/SSDTs with references to that name must also be renamed. This is why renames are best accomplished with config.plist/ACPI/DSDT/Patches.

Note regarding duplicate identifiers: You must be sure that your patched files do not contain duplicate identifiers. A common case would be adding a _DSM method to a given path in one SSDT, where the OEM has defined a _DSM at the same path in another SSDT. To avoid this problem, you can use the «Remove _DSM methods» patch as one of the first patches you do to all DSDT/SSDTs. Also, «Rename _DSM methods to XDSM» is an alternative (sometimes «Remove _DSM methods» exposes a bug in MaciASL).

Problem specific patching

When following a guide for a specific laptop, it may instruct you to apply a patch that is provided in the post itself. You will recognize it as the syntax used will look similar to other patches you’ve seen in the repository (eg. ‘into_all method label FOO code_regex xxyy removeall_matched;’). These patches are intended to be pasted directly into the patch window in MaciASL so they can be applied.

If you’re interested in writing your own patches, read the documentation on MaciASL patch grammar: http://sourceforge.net/p/maciasl/wiki/Patching Syntax Grammar/

Note: In many cases, DSDT patches are used in conjunction with additional kexts, patched kexts, or Clover config.plist patches that patch the system kexts as they are loaded.

Patches for using patched AppleHDA

With patched AppleHDA, there are two patches that are needed in conjunction with the kext:
«Audio Layout 12» (change the layout-id from 12 to the one used by your DSDT)
«IRQ Fix»

Note that you must have an AppleHDA that matches your codec, and must determine which layout-id was chosen. The layout-id is an arbitrary choice by the creator of the patched AppleHDA.

To determine the layout-id used by a particular patched AppleHDA: First you need to know your codec id in decimal (eg. 0x10ec0269 = 283902569). Then look in the Info.plist for AppleHDAHardwareConfigDriver.kext (at AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/Info.plist), find your codec id under HDAConfigDefault (there may be many entries in a sloppy patched AppleHDA or only one). The LayoutID that matches your codec id is the layout id you need. It is possible that a patched AppleHDA contains more than one layout-id for a given codec. In that case, choose the one you want to use.

Saving files for loading by the bootloader

In order to use your patched DSDT/SSDTs, you must save them where the bootloader can load them. Each bootloader location is unique and has different requirements for naming. Files must be saved in «ACPI Machine Language Binary» (MaciASL->Save As). Saving a text file (dsl) with an AML extension will likely cause panic or very strange behavior in OS X.

Clover: Files should be placed on the Clover bootloader partition (usually the EFI partition), in EFI/Clover/ACPI/patched. DSDT.aml, if present, will automatically replace the OEM DSDT. This guide (and other guides linked from this guide) assumes you are using config.plist/ACPI/AutoMerge=true, config.plist/ACPI/SSDT/DropOem=false. With AutoMerge=true, patched SSDTs can be placed in ACPI/patched with their original name (from ACPI/origin) and they will be inserted such that the original order of SSDTs is not disturbed. It is not necessary (or advised) to use SortedOrder with AutoMerge=true. Other configurations are covered below in «Recommended configurations».

As mentioned above, a new feature in the RehabMan fork of Clover allows you to replace OEM SSDTs without using DropOem=true, and without using SortedOrder, all the while maintaining original order of the unpatched and patched SSDTs as injected by Clover. By setting config.plist/ACPI/AutoMerge=true, this feature is enabled. The SSDT must retain its original numbering scheme when placed in ACPI/patched. This feature is fully working as of 2017-12-15, Clover_v2.4k_r4359.RM-4506.c5fc0346.zip, on the RehabMan bitbucket site. The required changes are implemented in the official Clover (on sourceforge) as of r4334 (but there are bugs you may run into, use the RehabMan build). Each of the plists linked by the main laptop guide uses AutoMerge=true by default.

Although you can use patched DSDT and patched SSDTs in Chameleon, this guide will not cover it. Chameleon is not recommended. Use Clover instead.

The following are valid configurations, anything else is likely wrong (there are some edge cases I’d rather not get into, hence the use of ‘likely’).

Configurations listed first are more desirable.

Full hotpatch:
— all patching is done via config.plist
— only add-on SSDTs in ACPI/patched (eg. no patched DSDT, no patched SSDTs)
— SortedOrder can be left unspecified
— DropOem=false

Partial hotpatch:
— patched DSDT.aml in ACPI/patched
— only add-on SSDTs in ACPI/patched (eg. no patched SSDTs)
— renames (applies to DSDT.aml in ACPI/patched and native SSDTs) done with config.plist
— SortedOrder left unspecified
— DropOem=false

Partial hotpatch with patched SSDTs:
— RehabMan Clover required
— patched DSDT.aml in ACPI/patched
— select patched SSDTs in ACPI/patched (must be named as extracted to ACPI/origin)
— add-on SSDTs also placed in ACPI/patched
— renames can still be done with config.plist
— SortedOrder left unspecified
— config.plist/ACPI/AutoMerge=true
— DropOem=false

Full patched DSDT + SSDTs:
— patched DSDT.aml in ACPI/patched
— full set of static patched OEM SSDTs in ACPI/patched (original names as from ACPI/origin)
— add-on SSDTs also placed in ACPI/patched
— renames in config.plist not recommended (they will apply only to DSDT.aml)
— SortedOrder required to set SSDT load order
— DropOem=true

In ACPI, an OperationRegion can define a MMIO region, SystemMemory region, EmbeddedControl region, etc. These regions usually have fixed addresses dependent only on the machine configuration, BIOS version, or BIOS options. Sometimes, these regions can change randomly or unexpectedly. This is referred to as «floating regions».

Since by patching DSDT and/or SSDTs, we are providing a snapshot of these addresses at a given point in time, they may not match up should the BIOS decide to place such regions at a different address. If this is the case, you may notice that certain features are intermittently working, or other stability issues that appear to be random.

If you have randomly floating regions, you can try Clover’s FixRegions feature (config.plist/ACPI/DSDT/Fixes/FixRegions=true). You can find the details in the Clover Wiki. Note: Only floating regions in DSDT can be fixed by FixRegions. Floating regions in SSDTs are problematic and there is no good solution other than to not provide patched SSDTs for SSDTs subject to randomly floating regions. Working around floating regions in patched SSDTs is beyond the scope of this guide. Note that FixRegions is relatively buggy. It cannot fix all regions and it can sometimes «fix» regions incorrectly.

Do not treat this thread as your private troubleshooting thread. If you have a specific problem with your specific laptop, open a separate thread. If you see something here that is in error, or wish to make a contribution, please reply to this thread.

Problem Reporting

Please read above «Providing Feedback». It is best to open a separate thread.

In that separate thread, describe you problem clearly. And provide relevant data.

Источник

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

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