Что такое dsdt autopatcher mac os

Содержание
  1. Установка Хакинтоша методом редактирования DSDT
  2. Внимание
  3. Что такое dsdt autopatcher mac os
  4. Установка Mac OS X на PC. Часть 6: DSDT
  5. В чём преимущества использования DSDT?
  6. Для чего подойдёт DSDT?
  7. DSDT — это замена драйверам?
  8. Но ведь выше написано, что DSDT позволяет сократить количество кекстов! Как же так?
  9. А зачем возиться с DSDT, если со «всякими инжекторами» отлично всё работает?
  10. Неужели DSDT никогда не придётся менять?
  11. Где взять это чудо?
  12. А как происходит правка?
  13. Чем опасны эксперименты с DSDT?
  14. Dsdt autopatcher mac os
  15. Очередь просмотра
  16. Очередь
  17. Хотите сохраните это видео?
  18. Пожаловаться на видео?
  19. Понравилось?
  20. Не понравилось?
  21. Текст видео
  22. 1. Извлечение оригинальных файлов.
  23. 2. Дизассемблирование ACPI-файлов.
  24. Дизассемблирование refs.txt.
  25. 3. Фильтрация ACPI файлов.
  26. 4. Исправление ошибок (Патчинг).
  27. Дополнительные сведения о патчинге.
  28. Минимальные фиксы.
  29. Проблема с моментальным пробуждением.
  30. Работа с USB.
  31. Чипсет.
  32. Немного о переименовании.
  33. Информация относительно идентификаторов дубликатов.
  34. Исправления конкретных проблем.
  35. Примите во внимание!
  36. Патчи для AppleHDA.
  37. 5. Компиляция и установка файлов.
  38. Использование файлов загрузчиком.
  39. “Плавающие” регионы.
  40. Описание

Установка Хакинтоша методом редактирования DSDT

Внимание

Итак, что такое DSDT и с чем его едят. Differentiated System Description Table — ну или таблица системных устройств, аля Дерево устройств, аля DSDT.aml — этот файл располагается в корне диска, где установлена Mac OS X. В этом файле записана информация об устройствах вашего компьютера, о выделении им памяти, об их IRQ и другая системная информация. И если его хорошенько потрепать, то у нас полцчиться сделать этакий клон BIOS но только адаптированый под Хакинтош, и вашу собственную машину.
Заготовкой будет служить dsdt.dsl, выдраный из прошивки BIOS’а

Где 0316 — версия Биоса.
Так же можно использовать EVEREST, или BIOS Cheker с сайта производителя Материнской Платы, они так же способны определить текущую версию БИОСа.
Итак, включаем ACPI Patcher. Выбираем Типа BIOS указываем где лежит сырьевая заготовка (должна быть с расширением ROM), и указываем папку куда будет сохранен фаил DSDT.

Открываем папку с полученым фаилом DSL и переименовываем его например в Base.DSL или как угодно. Снова возвращаемся в ACPI Patcher, и теперь переходим на вкладку D/C DSDT. Ставим все три галочки около HPET Patch, RTC Patch и Aliases Patch.
Отрываем вкладку Network. Тут необходимо указать адрес для инструкций, для этого придется дюже покопатся в фаиле DSDT.dsl с помощью Notepad++, или использовать IORegistryExplorer (второй вариант лучше), указываем адрес и выбираем LAN0 или GIGE при этом не забываем про Fix GP9 + Time Machine Fix.

Теперь переходим на Graphics.

Выбираем свою Видеокарту, и ее обьем памяти. Ели у ва nVidia то ставим разьемы в зеленой графе, а так же отмечаем Use DSDT GFX. Если у вас ATI, то заполняем лишь красные поля. Аналогично Сетевой карте отмечаем ее местоположение с помощью IORegistryExplorer

Переходим на вкладку Audio и отмечаем вашу аудиокарту, или наиболее близкую к ней. Если у вас так же есть шина HD-Audio ставим галочку на HDEF Audio.

Источник

Что такое dsdt autopatcher mac os

Работа с DSDT.aml
Извлечение оригинальных файлов | Дизассемблирование ACPI-файлов | Исправление ошибок | Патчинг

Программа для редактирования и патчинга DSDT.aml — MaciASL
Следите за тем какая версия ACPI в редакторе, в версии 1.4 почему то ACPI 4.0 по умолчанию
Программа для компилирования — iASL
Положить на «рабочий стол» скачанный файл(iasl), и в терминале выполнить команду: sudo mv

/Desktop/iasl /usr/local/bin/ что бы переместить файл в /usr/bin

Добавление репозиториев в MaciASL:

  • Открыть MaciASL;
  • Настройки;
  • Выберите “Sources”;
  • Нажмите на [+];
  • Впишите имя репозитория, к примеру «Laptop-DSDT-Patch»;
  • И вставьте ссылку:

Примечание: Не пытайтесь разобрать другие ACPI файлы с помощью флага “-da“.

Method (_CRS, 0, NotSerialized)
<
If (IGDS)
<
Return (CRS)
>

Fix ( depending on the size Tag mismatch: 1 bit = CreateBitField, 8 bits = CreateByteField, 16 bits = CreateWordField, 32 bits = CreateDwordField, 64 bits = CreateQwordField ) :

Удалить Return (RP00)

Путь к патченному файлу DSDT.aml в Clover: EFI/Clover/ACPI/patched/

Сообщение отредактировал WinSSLioN — 06.01.21, 09:43

Мануал по заводу не будешь писать самого инструмента и репозиториев.?

Сообщение отредактировал zander42 — 20.01.20, 06:27

Сообщение отредактировал zander42 — 20.01.20, 12:41

Сразу куча вопросов.
Столкнулся с тем, что разные версии DSDT Editor дают разные данные об ошибка в DSDT, MaciASL вообще третье. Кому верить?

Источник

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

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

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

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

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

DSDT выступает посредником между драйверами и оборудованием, и это своего рода «подкладка» под BIOS. Специальный загрузчик Mac OS X при включении подгружает таблицу DSDT, и система думает, что имеет дело с немного другим BIOS. Файл с таблицей DSDT имеет расширение .aml, и работать с ним могут практически все современные загрузчики для хакинтоша: Chameleon, PC EFI, Boot Think и пр.

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

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

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

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

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

  • видеокарточка сможет работать без каких-либо сторонних кекстов
  • процессор от Intel сможет работать с профилями управления питанием и производительностью Apple (иными словами, не потребуется кекст NullCpuPowerManagement.kext)
  • вы избавитесь от всевозможных проблем с USB
  • выключение и перезагрузка компьютера будут работать без каких-либо дополнительных драйверов
  • значительно повысятся шансы иметь работающий режим сна

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

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

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

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

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

Читайте также:  Installing windows on the machine

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

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

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

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

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

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

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

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

Пример DSDT-кода

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

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

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

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

Источник

Dsdt autopatcher mac os

Очередь просмотра

Очередь

Хотите сохраните это видео?

Пожаловаться на видео?

Выполните вход, чтобы сообщить о неприемлемом контенте.

Понравилось?

Не понравилось?

Текст видео

Патч DSDT с помощью программы DSDTAutoPatcher

В этом видео показан один из способов как пропатчить файл DSDT.aml, в операционных системах Windows 8.1 и OS X Yosemite 10.10.3.

На развитие канала: Yandex: 410015543790232
WMR: R139705298096
WMZ: Z751576129049

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

Статью нужно читать минимум 3 раза. Первый – просто пробежаться глазами, второй – с ручкой, бумагой, вынося все основные моменты на бумагу, и третий – приступая к работе. С первого раза у вас вряд ли получится.

Надеемся, всё готово. Приятного чтения!

Для того, чтобы завести некоторые функции в OS X (в особенности на ноутбуках), мы вынуждены прибегать к изменению DSDT и SSDT. В этом мануале мы расскажем основополагающие понятия работы с вашими оригинальными файлами ACPI.

Вы, конечно, можете использовать чужой DSDT и прочие файлы (config.plist, какие-то кастомные кексты), но это не гарантирует полноценной работоспособности, и даже наоборот приводит к непонятным, жутким, дичайшим багам. Вы банально не можете проверить происхождение этих файлов, и разобраться в них вы тоже вряд ли сможете. Любое маленькое изменение в настройках биоса, любое маленькое отличие по железу (будь то даже жёсткий диск другой модели), приводит к трагическим последствиям, вплоть до чрезмерного накала процессора, ведущего к износу компонентов железа.

Поэтому, давайте договоримся сразу – используем только оригинальные файлы, к которым причастны только производитель и мы.

Основные, и в то же время эталонные принципы работы с DSDT:

  1. Всегда использовать только оригинальные таблицы;
    Нельзя брать таблицы из программ, наподобие AIDA64 или подобных, поскольку они подхватывают DSDT, который уже отредактирован загрузчиком операционной системы, а так же нельзя использовать патченный DSDT какими-либо программами, типа DSDTPatcher. Только оригинал, правленный руками, может выступать в качестве вашей основы для корректировки.
  2. Никогда не брать чужие DSDT в сети;
    Потому что даже из-за одного несовпадения значения в биосе, дсдт может работать криво, и вы не разберетесь в синтаксисе другого человека. А бед это может принести немало.
  3. Используйте только MaciASL;
    Никаких DSDTEditor, DSDTPatcher, и прочих программ. Ничего, кроме MaciASL. Актуальная версия лежит здесь.

Процесс патчинга происходит в несколько этапов:

  1. Извлечение оригинальных файлов;
  2. Разбор ( disassembling ) нативных файлов;
  3. Анализ и фильтрация;
  4. Патчинг;
  5. Компилирование , и установка файлов.

Также, в статье есть несколько лайфхаков, как можно подправить некоторые вещи. Список “Якорей”:

1. Извлечение оригинальных файлов.

Любой биос сообщает ACPI-таблицы операционной системе. Следовательно, их можно извлечь из любой ОС , для дальнейшей работы по корректировке файлов.
Успешное извлечение возможно в Linux, OS X, Windows, а так же с помощью Clover’а. Нативные файлы в целом идентичны, но могут иметь различные названия (в зависимости от софта). В этой статье мы сфокусируемся на трёх методах извлечения: Используя patchmatic в OS X; Используя Clover; Используя Debian-образный Linux.

Рекомендуем ознакомиться со всеми, чтобы выбрать для себя что-то наиболее подходящее.

Если вы уже установили OS X, но вы не использовали опции загрузчика по корректировке ACPI, вы можете извлечь нативные DSDT/SSDT через patchmatic. Скачайте Patchmatic здесь: https://github.com/RehabMan/OS-X-MaciASL-patchmatic. Для большей лёгкости использования в терминале, положите копию (необходимо разархивировать) в директорию “/usr/bin”.
После установки patchmatic’а, вызывайте терминал, и вводите следующее:

Patchmatic извлечёт все загруженные ACPI-таблицы и поместит их в прописанную директорию. Если вы использовали какие-нибудь патчи на DSDT/SSDT, то у вас будет уже не нативные файлы, которые будут непригодны для использования нами в дальнейшем. Для примера, если вы использовали ключ DropSSDT=yes (Хамелеон), или параметр DropOem=true (Клевер), нативные SSDT будут отброшены до загрузки, и вы получите совершенно другой “выхлоп”, и, как следствие, вся дальнейшая работа пойдёт насмарку. Отключите все генерации SSDT в клевере, все фиксы на DSDT, и вообще любые проявления изменения таблиц. Даже отключите дроп Cpu0lst и CpuPM.

Именно по всем этим причинам, часто легче извлекать с помощью Linux или с помощью Clover.

В GUI* Clover’а мы должны нажать клавишу F4, после чего клевер сохранит все OEM таблицы по пути /EFI/Clover/ACPI/origin. А так же приложит DumpLog.txt, который поможет разобраться, какие из таблиц сохранены, какую длину они имеют, и ещё много интересных вещей. Примечание: на некоторых ноутбуках функциональные клавиши срабатывают по нажатию Fn+F1-12. Следовательно, нам необходимо нажать именно Fn+F4, если на ноутбуке инверсия фн. клавиш.

Это не сработает, если диск, на котором установлен клевер, имеет файловую систему, отличную от FAT32. Говоря простым языком – у клевера должны быть права не только на чтение, но и на запись. Для нашей цели подойдёт либо клевер, установленный на ESP (EFI System Partition), либо чистая флешка, отформатированная в FAT32 (В OS X эта файловая система называется MS-DOS FAT), на которую установлен клевер.

Время от времени, клевер грешит тем, что дублирует SSDT. Эти дубликаты могут создать проблемы для дизассемблирования. Мы просто сверяем все таблицы, и избавляемся от дубликатов. В этом плане, мне больше нравится использовать Linux, так как я никогда не видел, чтобы Linux показывал дубликаты SSDT.

Читайте также:  Mac with os x mavericks

В Linux’е нативные файлы просто лежат на жёстком диске по путям /sys/firmware/acpi/tables и /sys/firmware/acpi/tables/dynamic. Просто идите и заберите их на флешку, скиньте себе архивом, или заберите их на OS X любыми другими способами!

Для этого даже не нужно устанавливать Linux, можно просто воспользоваться live-загрузкой: http://www.ubuntu.com/download/desktop

2. Дизассемблирование ACPI-файлов.

Хотя извлеченные родные файлы могут быть открыты непосредственно в MaciASL, это не рекомендуется. Открытие файла .aml непосредственно в MaciASL заставит MaciASL разобрать файл, и сделать его автономным. И, если .aml имеет упоминания других .aml, он неправильно его разберёт. Из-за чего вы будете мучатся, исправляя кучу ошибок. Особенно сильно это касается синтаксиса.

Как результат, лучше разобрать все файлы в виде группы с помощью iASL в Терминале. Подготовим файлы: соберите все DSDT и SSDT файлы в одной папке (не копируйте ACPI файлы, которые не начинаются с DSDT или SSDT), и измените имена, таким образом, чтобы они имели .aml расширение (если это не так). Вам понадобится последняя версия iASL, чтобы правильно их разобрать, которая лежит здесь: https://bitbucket.org/RehabMan/acpica/downloads. Вы можете положить iASL так, чтобы был быстрый доступ из терминала (Опять же, ZIP в /usr/bin).

В терминале OS X:

Примечание: Не пытайтесь разобрать другие ACPI файлы с помощью флага “-da“. Это банально не будет работать.

Примечание: Вы так же можете собрать последнюю версию iASL из гитхаба RehabMan’а. Для этого должен быть установлен Xcode:

После чего, вы уже можете его установить:

С этого момента, вы будете работать исключительно с вытекающими *.dsl файлами при помощи MaciASL. Конечно, чтобы использовать их необходимо сохранить как “ACPI Machine Language Binary” с расширением .aml, и разместить их, где они будут загружены клевером (

/EFI/Clover/ACPI/patched). Но, мы рекомендуем иметь исправленные файлы .dsl, на случай необходимости изменить что-либо в будущем.

Позвольте мне заявить довольно понятным языком (потому что это самая частая ошибка, которая происходит из-за невнимательности, и после чего приходит много жалоб): Если вы открываете файл .aml непосредственно в MaciASL, и нажимаете “Compile”, вы делаете это НЕПРАВИЛЬНО. Пусть это сохранится в вашем сером веществе между ушами в течение минуты. (Оригинальная мысль автора сохранена).

Дизассемблирование refs.txt.

Иногда бывают дополнительные обращения к внешним названиям (названия, которые находятся в таблице, отличной от DSDT/SSDT). iASL дизассемблер будет пытаться к ним обратиться, но это далеко не всегда срабатывает. Вы можете исправить это, предоставляя компилятору информацию о них в текстовом файле. К примеру, вот некоторые внешние названия (будь то метод, или девайс): SGPO, ECRD, ECWT, и MMTB.

Для начала создайте файл refs.txt в той же папке, где лежат ваши DSDT/SSDT файлы, с следующим содержимым:

После чего мы его сохраняем, и дизассемблируем, подобно тому, что мы делали во втором пункте:

В терминале OS X:

iASL дизассемблер будет учитывать эти обращения к внешним таблицам для всего кода. В то же время, это не есть хорошо. Большую часть времени вам необходимо будет таскать внешние файлы за собой, вместо того, чтобы они были просто частью кода. Это станет очевидно, как только вы получите ошибку от внешнего обращения к файлу, который отсутствует в refs.txt.

3. Фильтрация ACPI файлов.

Для старых компьютеров (Sandy Bridge и старее), SSDT, связанные с CPU, могут вызвать проблемы. Если дело обстоит именно так (подразумевается, что вы уже попробовали альтернативные методы дропа таблиц), то вы не должны оставлять такие SSDT в

Я бы включил все SSDT в их первоначальном виде, и патчить их надлежащим образом, если известно, что они не вызывают проблем.

Примечание: таблицы с пометкой “X” для клевера, а так же таблицы, взятые из папки динамических таблиц в Linux, являются динамичными таблицами, которые являются изменёнными в процессе загрузки (и из-за других параметров). Такие таблицы никогда не кладутся в

После того как вы успешно дизассемблировали свои файлы, рассмотрим каждый из них, в попытке определить роль того или иного SSDT. Если это SSDT процессора, которые, как известно, любят вызывать проблемы, откиньте их в сторону, и не кладите их в свой окончательный набор для инжекции через загрузчик. По большей части, SSDT, которые имеют в оглавлении “_PR.CPUx”, и есть SSDT процессора.

Вот типичные SSDT, которые вы можете найти:

  • CPU: уже обсуждалось выше. Включить в набор, если проблем не возникает.
  • SATA: можете включить, а можете и не включать. На ваш выбор.
  • PTID: обычно этот файл бесполезен OS X, и, к тому же, содержит много ошибок. В редких случаях (например, на ноутбуках Acer и HP), это может дать информацию системе, как читать скорость вентилятора, температуру, и другие датчики.
  • IAOE: Если это SSDT присутствует, то он, как правило, является выходцем из DSDT (метод _WAK). Без него сон может не работать, или работать кривым образом.
  • GFX0: Обычно SSDT с GFX0 существует для интегрированной графики. Этот SSDT вы патчите для контроля подсветки. На старых ноутбуках, GFX0 обычно находится в DSDT. А в ноутбуках Haswell и выше, она обычно находится в SSDT (хотя она также может быть и в DSDT).
  • PEGP: PEGP обычно существует для дискретной карты в конфигурациях с двумя GPU. Таких SSDT может быть более одного, и обычно вы должны будете включить всю группу, чтобы достигнуть каких-либо значимых исправлений. Эти SSDT должны быть исправлены, если вы хотите отключить дискретную карту при запуске OS X. (см. Optimus)
  • Остальные SSDT следует рассматривать в отдельности. Если, конечно, они вам встретились.

Как мне кажется, было бы неплохо вести заметки о том, какие SSDT вам нужно дропнуть, какие SSDT вам нужно модифицировать, а какие SSDT вам нужно оставить неизменными.

4. Исправление ошибок (Патчинг).

Даже когда вы дизассемблировали все таблицы сразу (iASL с флагом -da), оригинальные файлы по-прежнему могут содержать ошибки. В дизассемблированном состоянии файлы имеют ошибки, связанные с изменениями в самом iASL (обновления), недостатками в iASL, и различии в компиляции среды между нашими компьютерами и производителем. Распространенной причиной ошибок (согласно моей теории), например, в том, что некоторые из упомянутых методов, на самом деле, существуют только внутри Windows (Например, MMTB и MDBG (их, кстати, можно смело удалять, если вы не планируете использовать эти таблицы и для Windows)). Также существуют случаи, когда были допущены ошибки в коде, или же код был написан умышленно неправильно (иногда трудно отличить).

Так что… После определения того, какие файлы вам нужны, вы должны исправить их, чтобы они скомпилировались без ошибок. Есть много общих патчей для таких ошибок, в репозиториях патчей для MaciASL.

Примечание: Мы не проверяем патчи с помощью DSDT Editor. Он имеет слишком много ошибок, и очень старую версию iASL. Пожалуйста, не спрашивайте нас и RehabMan’а об этом.

Чтобы быть уверенным, всегда читайте README, чтобы загружать из правильного места, и для того, чтобы настройки MaciASL были правильными. Патчи для задач синтаксисических ошибок начинаются с “[syn]” в названии. Типичные примеры для старых DSDT: “Fix _PLD Buffer/Package Error”, “Fix TNOT Error”, and “Fix FPED Parse Error”. Для того чтобы определить, какие патчи вам нужны, вы можете посмотреть на сообщение об ошибке, поступающей из iASL компилятора, и кода, на какой линии была обнаружена ошибка. Вы можете также попытаться применить патч, чтобы посмотреть, вносит ли он изменения, как показано в окне предварительного просмотра в MaciASL. Если вы не знакомы с ошибками, это может занять некоторое время, полное экспериментов, проб и ошибок.

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

Читайте также:  Canon mf3010 драйвер принтера windows 10 x64

Эти занятия помогают приобрести опыт в ACPI-спецификациях, и просто опыт программирования. А нынче, этот опыт очень полезен, согласитесь 🙂

Ваша цель – получить каждый файл .dsl, в котором не будет ошибок (Предупреждения/примечания/оптимизации приемлемы. Тем не менее, исправить предупреждения, всё-таки желательно.). Если у вас есть файлы, которые компилируются без ошибок, вы можете переходить к патчингу. А после патчинга, вы можете повторно установить OS X, с грамотными таблицами. И, как следствие, с грамотным NVRAM-переменными, и прочими прелестями.

Дополнительные сведения о патчинге.

Минимальные фиксы.

Как правило, DSDT патч применяется только после выявления его необходимой пользы. Но есть несколько патчей, которые необходимы по дефолту, и, обычно, не вызывают никаких проблем. Они находятся в репоизтории перечислены здесь:

  • Fix _WAK Arg0 v2;
  • HPET Fix;
  • SMBUS Fix;
  • IRQ Fix;
  • RTC Fix;
    *Очень сильно любит делать вид, что патч необходим, хотя нет отличий между Before и After в меню патчинга. Будьте внимательны.
  • OS Check Fix;
    *Не имеет ничего общего с версией Windows. Изучите описание, которое прилагается в MaciASL, а после решите – нужен ли вам патч.
  • Fix Mutex with non-zero SyncLevel;
  • Fix PNOT/PPNT;
    *Используется только при дропе CPU SSDT.
  • Add IMEI.

Проблема с моментальным пробуждением.

Патчи на USB убирают просыпания после секунды сна, если в консоли присутствует сообщение “Wake Reason: USB”, “Wake Reason: EHC1/2”, или же “Wake Reason: XHC”. Если у вас есть такая же проблема, но проблема не в USB, то попробуйте применить это:

Если вы испытываете проблемы с пробуждением компьютера или ноутбука, воспользуйтесь следующим методом:

  1. Откройте DSDT, нажимаете cmd+f, и в поиске ищите “_PRW”;
  2. Ищите его в устройстве, которое вызывает пробуждение. Пусть это будет XHC. Вот кусок кода:
  3. И меняем это:

И так проделать со всеми устройствами, что пробуждают компьютер.

Работа с USB.

Следующие патчи используйте только в соответствии с вашим железом:

Мультиплекс-патч на USB3 исправляет работу AppleUSBXHCI.kext, чтобы не прибегать к использованию GenericUSBXHCI.kext. Он основан на информации, опубликованной Mieze. Большинство DSDT нуждаются в этом патче. А так же, ProBook, например, использует модифицированную версию этого патча. А вот Lenovo U310/U410 может использовать его как есть. Ах, да. Имя патчу: “7-series USB3 Multiplex“.

Если вы используете GenericUSBXHCI.kext на 10.10, убедитесь, что вы используете только его. Кроме того, чтобы избежать мгновенного пробуждения, вам может понадобиться флаг ядра ‘-gux_defer_usb2′.

Чипсет.

На хасвелле существуют некоторые проблемы с подгрузкой AppleLPC.kext. Если у вас в загруженных кекстах нет AppleLPC, то примените этот патч: “Haswell LPC

Немного о переименовании.

Переименовывание должно быть “сбалансированным”. То есть, переименование должно быть в равной степени как в DSDT, так и в SSDT. А так же это нужно, чтобы лучше соответствовать требованиям OS X (пример “Rename GFX0 to IGPU” для правильного управления питанием IGPU). В этом случае, во всех DSDT/SSDT, где есть ссылки на это имя, также должны быть переименованы.

Информация относительно идентификаторов дубликатов.

Вы должны быть уверены, что ваши патченные файлы не содержат дубликатов. Общим правилом можно считать добавление метода _DSM в один из SSDT, где производитель определил _DSM в другой SSDT. Чтобы избежать этой проблемы, можно использовать патч “Remove _DSM methods”, в качестве одного из самых первых патчей, который вы применяете для всех DSDT/SSDT.

Исправления конкретных проблем.

Скоро будет перевод статей, а пока:

Примите во внимание!

Многие патчи образуют синергию с config’ом и кекстами, а по одиночке не имеют никакого смысла.

Патчи для AppleHDA.

С патченным AppleHDA, есть два момента, которые необходимо соблюсти:

  • IRQ Fix;
  • Audio Layout 12.
    *Изменяйте цифру на ту, что нужна вам, в соответствии с описанием кекстов.

5. Компиляция и установка файлов.

Использование файлов загрузчиком.

Для того, чтобы использовать свои патченные DSDT/SSDT файлы, необходимо сохранить в то место, откуда их подхватит загрузчик, и начнёт подгружать. Файлы должны быть сохранены в “ACPI Machine Language Binary” (MaciASL -> Сохранить как…). Сохранение файла .dsl с расширением .aml просто вызвает панику, или же очень странное поведение OS X.

Clover: сохраняем наши .dsl в .aml, и подкладываем все нужные файлы по пути

/EFI/CLOVER/ACPI/patched. Клевер подхватит все .aml файлы, которые лежат по этому пути (начиная с версии 3062).

Для SSDT очень важен порядок в цифрах в названии. То есть, SSDT-1.aml, после всех изменений, должен быть именно SSDT-1.aml, а SSDT-5.aml – SSDT-5.aml. Это необходимо, потому что патченные файлы заменяют те, что подхватываются из биоса. Если назвать неправильно, то произойдёт дубляж одного и того же SSDT, что неминуемо приведёт к панике ядра.

В то же время, для DSDT порядок несколько иной – имя файла DSDT, который необходимо подхватывать, должен быть указан в config.plist, по пути Config.plist/ACPI/DSDT/Name, тип значения “string”. К тому же, можно положить несколько DSDT с разными именами, например DSDT.aml, DSDT-original.aml, DSDT-test.aml, и прямо из GUI выбирать, с каким DSDT нужно загрузиться. Это удобно для тестов: если что-то пошло не так, можно просто взять и поменять название на один из лежащих вариантов, или же вообще загрузить оригинальный, указав имя BIOS.aml.
Примечание: если указано неверное имя, будет грузиться оригинальный DSDT, взятый из биоса.

“Плавающие” регионы.

В ACPI есть такая вещь, как регионы-операторы (Например: MMIO-регион, SystemMemory регион, EmbeddedControl регион, и т.д.). Эти регионы имеют фиксированные адреса, которые зависят только от компьютера, модели биоса, и настроек биоса. Малейшее изменение этих регионов приводит к краху весь дсдт, и как итог мы имеем паники, или неправильно работающую OS X. Это и называется “плавающие” регионы.

Так, исправляя DSDT/SSDT, мы делаем снимок этих адресов в тот момент, когда мы снимали таблицы. Они не могут совпасть, если вы меняли параметры биоса, меняли компоненты железа, и производили подобные операции. Такие регионы останутся, но будут доступны по другому адресу. Если это так, то вы заметите, что некоторые вещи начинают работать криво, или возникают другие проблемы со стабильностью. Которые, к слову, кажутся случайностью.

Чтобы избежать этого, нам необходимо использовать фикс клевера “Fix_Regions”, который сравнивает регионы при каждой загрузке, и, при несовпадении, исправляет. Находится этот фикс рядом с остальными фиксами DSDT, а именно: Config.plist/ACPI/DSDT/Fixes.

Вот только с SSDT таких хитростей пока что не придумано. Лечения, следовательно, тоже нет. Единственное, что хочется отметить – регионы в SSDT не так сильно играют роль в поведении OS X, из-за чего сильного удара по юзабилити не предвидится. А исследования методов исправления выходит далеко за рамки этого мануала.

Описание

Access and modify the DSDT components by opening them in the editing suite modeled after DSDT Editor. Its main function is applying already existing or custom-created patches and repairing non-functional features. Basic live editing is also an option.

DSDT Auto-Patcher 0.7 для macOS можно бесплатно скачать с нашего сайта. Самая популярная версия среди пользователей программы 0.7.

Программа относится к категории Системные утилиты. Уникальный идентификатор для этого приложения — dsdtparser.DSDTParserApp.

Эта бесплатная программа для Mac OS X принадлежит Cassandro Davi Emer. Наиболее часто используемое название файла установки программы: dsdt_auto-patcher.tar.bz2.

DSDT Auto-Pacher is a simplified version of DSDT Editor.

Мы предлагаем вам также рассмотреть другие Мак приложения, такие как Display Rotation Menu, AppLaunch или PSPWare, которые часто используются вместе с DSDT Auto-Patcher.

Источник

Оцените статью