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

hackintosh3Пришла пора продолжить наш разговор о премудростях хакинтоша. В сегодняшней статье об установке 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 и пр.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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