Привет, Хабражители!
Сегодня мы с вами пройдем полный и достаточно тернистый путь установки на ультрабук Acer операционной системы OS X 10.10 Yosemite. Данная статья будет включать в себя все нюансы, начиная с запуска установщика с флешки и заканчивая патчингом DSDT и SSDT для полной функциональности OS X на данном железе.
Заинтересованы? Добро пожаловать под кат! (Есть картинки)

0. Подготовка


Для начала, давайте изучим пациента. В нашем случае это Acer Aspire V3-371-52FF. Нас интересуют: процессор, графическое ядро, Wi-Fi, Ethernet, звуковая подсистема.
Характеристики
  • Процессор — Intel Core i5-4210U
  • Графическое ядро — Intel HD 4400
  • Wi-Fi — Atheros AR5BW222
  • Ethernet — Realtek RTL8111
  • Звуковая подсистема — Realtek ACL863


По этим данным я нашел следующее:
  • Процессор заводится без плясок с бубном
  • Для включения аппаратного ускорения графики, регулировки яркости нужно патчить DSDT, SSDT и добавлять опции в загрузчик
  • Беспроводная сеть для нас недоступна — кекстов нет, порта с BSD тоже
  • Проводная сеть заводится простым добавлением соответствующего кекста
  • Для получения звука надо патчить DSDT и ставить патченный AppleHDA.kext. На нашем сдвоенном входе не будет работать микрофон.

Грустно будет без встроенного Wi-Fi, но, к счастью, у меня уже наготове Asus N-13 rev. B, оторый отлично работает в Хаке.
С подготовкой разобрались, идем дальше.

1. Скачать, записать, дополнить


Скачать установочник Хакинтоша весьма просто — он есть почти на каждом трекере. Я скачал Yosemite 10.10.3-14D136 с rutracker.org (если сюда можно вставить ссылку — напишите в комментариях), по инструкции в раздаче развернул его на флешку. Полдела сделанно.
Далее начинаем искать необходимые файлы для комфортного запуска установщика. Нам нужно:

После разворачивания на флешку дистрибутива у нас появится раздел EFI. Захдим на него, в папку EFI\CLOVER. В ее корень скидываем config.plist и распаковываем архив с драйверами. Все кексты сбрасываем в папку kexts\Other. Все остальные подпапки в kexts можно удалить (обычно это папки 10.9, 10.10 и т.д.).
Готово. Вставляем флешку в бук и перезагружаемся с флешки.

2. Загрузить, установить, войти


На экране загрузчика стрелками переходим на пункт 10.10.3, жмем пробел и выбираем Boot Mac OS X in verbose mode. Жмем энтер. Хак начнет грузится в режиме отладки. Если он загрузился без ошибок и вывалил вас на экран выбора языка — все супер, мы молодцы. Если же нет — фотографируйте экран и присылайте в комментарии, будем разбираться.
Выбираем русский, жмем стрелку на экране, далее сверху выбираем Утилиты — Дисковая утилита и подготавливаем свой жесткий диск. После выходим из нее, нажимаем Продолжить, принимаем лицензионное соглашение, выбираем созданный раздел как место установки и жмем продолжить. Ждем, пока установка завершится.
После установки происходит перезагрузка, но нам вновь надо загрузиться с флешки. В загрузчике выбираем пункт с названием созданного ранее раздела и снова через пробел выбираем режим отладки. Ждем конечной загрузки и настраиваем параметры нашего Хака. Итак, мы сделали 1/3 всей работы, УРА!

В картинках








3. Загрузчик, кексты, патчи


После этого начинается самая большая и интересная часть. Начнем с малого. У нас есть проводная сеть. Если вы можете подключиться проводом к буку — можно качать файлы прямо с Хака, нет — дергаем извне и сливаем на флешку.
Качаем установщик Clover, запускаем. При открытии ругнется на безопасность запуска, отключаем через Настройки — Защита и безопасность (жмем на замочек, вводим пароль, выбираем Для любого источника и подтверждаем). В установщике жмем два раза Продолжить, Настроить и выбираем Установить Clover на EFI раздел и Установить системные RC скрипты на основной раздел. Нажимаем Установить, вводим пароль, ждем. После установки заходим на раздел EFI со значком жесткого диска и в папке EFI удаляем папку CLOVER. После идем в раздел EFI со значком съемного диска и копируем папку CLOVER оттуда на предыдущий раздел в соответствующую папку.

С этого момента установочную флешку можно вытащить и грузиться с системного диска. Перезагружаемся.

Теперь раздел EFI нужно монтировать самостоятельно, руками. Давайте убъем двух зайцев сразу. Качаем Clover Configurator, запускаем. Слева выбираем Mount EFI, жмем кнопку Mount EFI Partition. Вуаля, раздел примонтирован. Ну а сама программа дальше позволит нам с легкостью редактировать конфигурацию загрузчика.

Пришло время патчить DSDT.
Качаем MaciASL. Нам нужен сам MaciASL и patchmatic. После качаем iasl. Запускаем терминал, пишем следующее:

sudo cp ~/Downloads/patchmatic /usr/local/bin/patchmatic
sudo cp ~/Downloads/iasl /usr/local/bin/iasl
mkdir ~/Desktop/ACPI
cd ~/Desktop/ACPI
patchmatic -extract
iasl -da -dl *.aml
rm *.aml

Из папки ACPI на Рабочем столе открываем файл DSDT.dsl. Он откроется в MaciASL. Заходим в Preferences, на вкладке iASL выбираем пункт ACPI 5.0, переходим во вкладку Sources, убираем имеющийся пункт, а через плюсик добавляем новый с названием RehabMan Laptop и URL http://raw.github.com/RehabMan/Laptop-DSDT-Patch/master. Закрываем окно настроек программы. Нажимаем Patch, выбираем необходимый патч слева, жмем Apply, выбираем следующий. Необходимый порядок для DSDT:
  • Remove _DSM methods
  • Audio Layout 12 — в строке "layout-id", Buffer() {12, 0x00, 0x00, 0x00},\n меняем 12 на 86
  • Add IMEI
  • Fix _WAK Arg0 v2
  • Fix Mutex with non-zero SyncLevel
  • Fix PNOT/PPNT
  • Fix HPET
  • Fix IRQ
  • OS Check Fix (Windows 8)
  • RTC Fix
  • SMBUS Fix
  • 7-series/8-series USB
  • USB3 _PRW(0x0D) and Rename XHC to XHC1
  • Rename GFX0 to IGPU

После этого нам нужно применить патч для функционирования клавиш регулировки яркости экрана (Fn+Arrow Left, Fn+Arrow Right). В поле Patch копируем следующее:

into method label _Q1D replace_content
begin
// Brightness Down\n
    Notify(\_SB.PCI0.LPCB.KBD0, 0x0205)\n
    Notify(\_SB.PCI0.LPCB.KBD0, 0x0285)\n
end;
into method label _Q1C replace_content
begin
// Brightness Up\n
    Notify(\_SB.PCI0.LPCB.KBD0, 0x0206)\n
    Notify(\_SB.PCI0.LPCB.KBD0, 0x0286)\n
end;

Далее нажимаем Close, жмем Compile и любуемся на 2 ошибки syntax error, unexpected PARSEOP_STORE. Переходим левой кнопкой мыши на первую и удаляем следующее:

Store (REG6, Local1)
Store (0x00F0F000, REG6)
Store (\_GPE.MMTB (Local2, \_GPE.OSUP (Local2)), Store (Local1, REG6))
Release (OSUM)

Далее переходим на вторую и удаляем еще один фрагмент:

Store (REG6, Local2)
Store (0x00F0F000, REG6)
Store (\_GPE.MMTB (Local3, \_GPE.OSUP (Local3)), Store (Local2, REG6))
Release (OSUM)
Acquire (WFDM, 0xFFFF)
Store (One, WKFN)
Release (WFDM)

После этого компилируем еще раз и получаем еще несколько ошибок. Строки с этими ошибками просто удаляем. У меня это строки под номерами 77, 79. После этого выбираем File — Save As — File Format: ACPI Machine Language Binary — Save

Далее надо пропатчить SSDT, который содержит секцию графического ядра. На данной конфигурации это должен быть SSDT-3.dsl, ткрываем его. Патчим в следующем порядке:
  • Remove _DSM methods
  • Rename GFX0 to IGPU
  • Haswell HD4600 Yosemite
  • Brightness fix (Haswell)

Сохраняем аналогично DSDT. Теперь в папке ACPI у нас появилось два файла: DSDT.aml и SSDT-3.aml. Осталось сгенерировать файл SSDT, положить все это на загрузочный раздел и включить опцию в загрузчике. Поехали.

Качаем ssdtPRGen, в терминале пишем:

cd ~/Downloads/ssdtPRGen.sh-master/
./ssdtPRGen.sh

На первый вопрос нажимаем n, на второй — y. В открывшемся текстовом редакторе выбираем Файл — Переместить в — Другое и находим папку ACPI на рабочем столе. Соглашаемся на замену, закрываем редактор. Открываем файл SSDT.dsl из папки ACPI, сохраняем как и все предыдущие файлы dsl, но имя файла пишем капсом — SSDT.

Далее запускаем Clover Configurator, монтируем раздел EFI (как делали выше), жмем кнопку Open Partition. Файлы DSDT.aml, SSDT.aml и SSDT-3.aml копируем на раздел в папку EFI/CLOVER/ACPI/patched. В Clover Configurator жмем кнопку Домой (в нижнем левом углу программы иконка домика), на новом экране внизу выбираем файл EFI->EFI->CLOVER->config.plist. После открытия конфига на вкладке Acpi ставим галочку Drop OEM, а в поле DSDT name пишем DSDT.aml
На вкладке Boot снимаем галочки dart=0, -gux_defer_usb2 и nv_disable=1. В поле Default Boot Volume выбираем LastBootedVolume. Сохраняем, перезагружаемся. Если загрузка пройдет успешно, а в настройках монитора (Системное настройки — Мониторы) появится регулятор яркости — патчи встали успешно и теперь у нас есть полное ускорение графики, регулировка яркости и сон. 1/2 дела сделана.

4. Батарея, звук, TRIM


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

config.plist содержит патчи для звука, включает TRIM на SSD и фиксит мерцания логотипа Apple при загрузке. Монтируем EFI и кидаем его в EFI/CLOVER.
ACPIBatteryManager и ACPIBacklight бросаем в EFI/CLOVER/kexts/Other.
CodecCommander и AppleHDA_ALC283 перетягиваем на Kext Utility — она установит их по системному пути (/System/Library/Extensions) и обновит кэш кекстов. Перезагружаемся. В итоге получаем рабочий звук, индикатор батареи, работающий TRIM.

Результат



5. SMBIOS, iCloud или прикидываемся MacBook


Запускаем терминал, пишем uuidgen. Копируем сгенерированный UUID. Далее открываем Clover Configurator, монтируем EFI, открываем файл EFI/CLOVER/config.plist. Во вкладке SMBIOS жмем на волшебную палочку, выбираем MacBook Pro, в появившемся окне в выпадающем списке сверху выбираем MacBook Pro Retina (11,1) — Core i5/i7 (Haswell). Справа есть две кнопки shake — жмем каждую пару раз, они сгенерируют серийный номер Мака. Жмем Ok. В поле SmUUID вставляем сгенерированный ранее UUID, а из поля Serial Number копируем значение и вставляем его в поле на этой странице. Если в ответ вам выпадет We're sorry, the number you have provided cannot be found in our records — все хорошо, серийника в базе данных нет. Если вам выдало страницу существующего МакБука — снова жмете волшебную палочку и клацаете по кнопкам shake.

Во вкладке Rt Variables в выпадающем списке ROM выбираем UseMacAddr0. Сохраняем, перезагружаемся.

Качаем скрипт, открываем терминал, пишем sh ~/Downloads/simpleMLB.sh. Скрипт выдаст значение MLB, копируем его. Далее в последний раз заходим в Clover Configurator, монтируем EFI, открываем кофигурационный файл и на вкладке Rt Variables в поле MLB вставляем скопированное значение. Сохраняем, перезагружаем.

Результат



После этого можно заходить в iCloud. iMessage и FaceTime скорее всего скажут вам, что нужно потверждение через телефон, выдадут номер обращения — смело звоните, указывайте номер, а как причину обращения назовите «Перестал работать iMessage, почему — не знаю». Вас могут спросить серийный номер Хака и его модель, что легко узнать из пункта рабочего стола Об этом Mac

6. Результаты, выводы и ссылки


Вот мы и добрались до конца, а в результате — у нас на руках ноутбук с полностью рабочим и отзывчивым Хакинтошем (не беру в расчет Wi-Fi + Bluetooth). Хак вполне себе способен тянуть на этой машине CS: GO, Фотошоп и рабочее место веб-разработчика. Пользуюсь им для работы около полугода и очень сильно доволен, чего и вам желаю. За сим разрешите откланяться, а так же приглашаю устроить обсуждение в комментариях!

Ссылки:
Intel HD4200/HD4400/HD4600 Mobile on Yosemite
Patching LAPTOP DSDT/SSDT
Patching DSDT/SSDT for LAPTOP backlight control
Booting the OS X installer on LAPTOPS with Clover

Комментарии (1)


  1. tyderh
    03.07.2015 03:33
    +5

    Без беспроводной сети зачем оно нужно-то?

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

    Сколько получается жить от батареи? На линуксе с минимальной яркостью и с выключенным радио у меня получалось выжимать 8 часов.