Поговорим о представленных на сайте Custom DSDT. Вот вы нашли от своей материнской платы файл DSDT(dsl) — это по сути текстовый файл, и в таком виде, в жизни вашего хакинтош, он участвует косвенно, до момента, пока с ним не поступят должным образом.

Что же с ним делать, рассмотрим в данной статье, и возможные нюансы.

  • Положить на «рабочий стол» скачанный файл(iasl), и в терминале выполнить команду: sudo mv ~/Desktop/iasl /usr/bin/

Теперь можно компилировать нужный dsl файл, лучше всего показать как это должно выглядеть в терминале:

Переход в папку Downloads, где лежит Asus P8B75-V.dsl файл, и его компилирование.
На выходе получаем DSDT.aml

Для просмотра DSL файла, рекомендуем использовать редактор MaciASL.

Полученный DSDT.aml должен лежать по пути: EFI\EFI\CLOVER\ACPI\patched\

Нюансы:

Когда вы работаете с кастомным DSDT, в конфиге не должно быть никаких патчей и фиксов, всё что нужно, уже присутствует в нашем DSDT.

Единственный фикс DSDT, который может понадобится — это FixRegions, но во многих представленных DSDT, отсутствует зависимость от адресов OperationRegion.

Если нужно, включаем в config.plist: ACPI — DSDT — Fixes — FixRegions — YES

Так же наличие в config.plist — раздела Patches, влияет на текущий DSDT.aml. Т.е. если делаете переименование устройства через раздел Patches (например EHC1 -> EH01), то в DSDT.aml устройство будет уже иметь имя не EHC1, а EH01, и тут нужно понимание, что это переименование делаете собственноручно и осознанно.

На этом пожалуй всё.

Good Hack

14 ответа к “Компиляция DSDT

  1. А если есть готовый dsdt.aml,от моей материнской платы,точно такой-же ревизии и версии bios?

    1. DSDT есть всегда и готовый, в момент выпуска матери с завода.
      Только он под винду, для мака достаточно патчей коловером.
      Так вот тут на сайте — есть кастомные дсдт, где вырезан лишний код, и оставлен тот, который нужен только для Макос.
      Т.е. вместо оригинального дсдт длинной 50 тыс. строк, здесь лежит опыт и знания, готовые кастомные дсдт длинной кода — в 1 тыс. строк.
      Это в 50 раз меньше оригинала:)

      1. Спасибо за совет! Я посмотрел,но вроде у вас нет под Asrock Z87 Extreme6…по-этому и задал этот вопрос.

    1. Нет, для macOS можно сказать не меняется.
      Если говорить о чём то более конкретном, то возьмём Z370, и версию биос F4, всё отлично грузилось без патчей в конфиге.
      И вот выходит версия F12 с поддержкой процессоров 9ххх, при этом получаем стоп при загрузке.
      Что изменилось? — Device (RTC)
      При кастомном дсдт, после обновы биоса, проблема бы не всплыла, но на таких чипсетах смысл в дсдт несколько отпал.
      В общем DSDT меняется, но не в лучшую сторону как правило.
      А что касается operationregion, адреса которого могут поплыть с новым биос, то это решается соответствующим фиксом в конфиге.

  2. «Полученный DSDT.aml должен лажать по пути: EFI\EFI\CLOVER\ACPI\patched\»

    Он там может и лАжать, но лучше бы просто лЕжал))

  3. ..а зачем при компиляции в команде iasl -oi Asus\ P8B75-V.dsl обратный слеш в имени файла??..у меня не получается скомпилировать, ругается на ошибку((
    GIGABYTE GAB75MD3H.dsl 21: DefinitionBlock («DSDT.aml», «DSDT», 2, «GIGABYTE», «B75MD3H», 0x00000012)
    Error 6156 — Invalid OEM ID ^ (Length cannot exceed 6 characters)

    1. 1.Потренируйтесь в терминале походить по директориям, все директории где в названии есть пробел, ставится перед пробелом обратный.
      2. Переведите в гугле «Length cannot exceed 6 characters». Название GIGABYTE и B75MD3H — сократите до 6 букв. Старый компилятор позволял это, в новом надо приводить к 6 буквам. Эти названия не влияют ни на что можно что угодно писать.

  4. Здравствуйте, после первой в статье команды выдаёт: mv: rename /Users/user/Desktop/iasl to /usr/bin/iasl: Read-only file system
    Что делать

  5. Вообще-то, в мире unix-подобных систем к которым, несомненно, относится и macOS, не принято устанавливать утилиты сторонних разработчиков в /usr/bin. Там должно находиться только то, что поставляется разработчиком системы. А для утилит сторонних разработчиков предназначен /usr/local/bin. Вот там самое место для iasl. Прошу прощения за некоторый перфекционизм.)

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

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

один + 8 =