Установка Mac OS X на PC. Часть 17: Clover
Мы давно собирались написать в нашем хакинтошном цикле статей о замечательном загрузчике Clover. На самом деле, мы следим за этим проектом с самого момента его создания — с каждым месяцем Clover становится всё более функциональным, и уже в самом скором будущем его можно будет объявить лучшим из современных загрузчиков.
Но главное в Кловере — то, что его создаёт наш с вами соотечественник, slice. С ним можно пообщаться на форуме applelife.ru, рассказать ему о багах, предложить новые функции, и шанс быть услышанным гораздо больше, нежеле в случае с Chameleon или XPC.
Про Clover можно рассказывать достаточно долго, поэтому сегодня мы ограничимся кратким обзором возможностей, достоинств и недостатков загрузчика.
Предыстория Clover простая: модный ранее загрузчик XPC никак не хотел работать на ноутбуке slice, в связи с чем он решил заняться созданием собственного, менее придирчивого к оборудованию хакинтошного загрузчика, заодно развив накопленные наработки в области запуска EFI на BIOS-платах.
На сегодняшний день Clover — динамично развивающийся EFI-загрузчик, который догнал и перегнал по возможностям конкурентов. С совместимостью тоже всё в порядке: попробовать его в действии могут обладатели большинства современных материнок на базе Intel-процессоров.
Функции Clover можно разделить на две группы — то, что умеют и должны уметь все подобные загрузчики, и то, что умеет только данный загрузчик. К первой группе относятся:
- поддержка EFI-загрузки Mac OS X и Windows
- подгрузка пропатченной таблицы DSDT
- возможность селективной загрузки отдельных ACPI-таблиц
- генерация P-States и С-States для процессора (это избавляет вас от необходимости прописывать процессорную секцию в DSDT)
- загрузка кекстов из сторонней директории
- инжектирование видеокарточек, звука и Ethernet
- возможность подмены UUID компьютера
- пропатчивание USB
Но куда интереснее отличительные особенности Clover:
- с этим загрузчиком у вас будет по-человечески работать панель настроек «Загрузочный том». Вы сможете переключаться между установленными системами так же, как на реальном Маке
- Clover, хотя и является EFI-загрузчиком, умеет грузить Legacy-системы, которые другие EFI-загрузчики видеть отказываются. Например, если вы ставили Windows не через EFI-окружение, Clover всё равно сумеет загрузить систему
- Clover умеет грузить Linux, причём не только в Legacy-режиме, но и через EFI-среду
- Clover умеет извлекать и патчить DSDT на лету! Правда, на момент написания статьи данная фишка находится в стадии активного допиливания, но мы не сомневаемся, что скоро она заработает полноценно. Эта возможность позволяет пользователю вообще обойтись без мороки с DSDT. Загрузчик всё сделает сам
- на материнских платах с UEFI Clover умеет грузиться напрямую из UEFI-среды, ничего не эмулируя. Таким образом, воплощается в реальность давняя мечта многих хакинтошников — использовать на PC-платах самые настоящие EFI-модули
- внешний вид Clover очень гибко настраивается. Можно менять не только значки, логотипы и фон, но даже шрифты
- Clover позволяет делать скриншоты прямо из своего графического интерфейса (F10), а также умеет записывать доскональный лог процедуры загрузки (F2)
- Clover разрешает хранение на одном загрузочном носителе независимых конфигураций для разных компьютеров. Например, вы сможете создать чудо-флешку, которая одинаково успешно будет грузить и десктоп, и ноутбук
Clover ставится примерно так же, как Chameleon — нужно будет заменять загрузочные сектора. Поддерживается установка на флешки, жёсткие диски и скрытый EFI-раздел GPT-дисков. Удобный PKG-установщик избавляет пользователя от необходимости вводить команды в Терминале, всё отлично автоматизировано.
Clover селится в папке EFI того раздела, загрузочные сектора которого заменены. Структура файлов и папок следующая:
Ваш пропатченный файл DSDT нужно положить в папку EFI/ACPI/patched. Дополнительные EFI-модули располагаются в папках drivers32 и drivers64. Драйверы для различных систем (в т.ч. и Mountain Lion) кладутся в папку kexts согласно её версиям систем. Наборы настроек для различных компьютеров лежат в подпапках внутри EFI/OEM.
Главных файлов настроек в Clover два:
- EFI/BOOT/config.plist отвечает за всё, что связано с хакинтошем. Все базовые параметры задаются здесь
- EFI/BOOT/refit.conf — настройки внешнего вида Clover
Темы для Clover распаковываются в папку EFI/BOOT/themes. Кроме того, каждой теме обычно соответствует свой файл refit.conf. Кстати, тем для Кловера накопилось уже достачно, вот лишь несколько примеров:
Но красивости — дело вторичное, самое главное — чтобы Clover нормально работал на вашей конфигурации оборудования. А для этого придётся повозиться с файлом config.plist. Названия ключей в этом файле отличаются от форматов, принятых в Chameleon, iBoot или XPC, так что без правки обойтись не получится. Вот пример содержимого config.plist:
SystemParameters
boot-args
darkwake=0
prev-lang:kbd
ru:0
DefaultBootVolume
Lion
CustomUUID
8A2EBD6C-8F0D-58AC-8745-92С4A1FD177A
InjectSystemID
No
SMBIOS
BiosVendor
Apple Inc.
BiosVersion
MP51.007F.B00.0903051113
BiosReleaseDate
10/28/10
Manufacturer
Apple Inc.
ProductName
MacPro5,1
Version
1.5
Family
Mac
SerialNumber
G8031788GWR
BoardManufacturer
Apple Inc.
BoardSerialNumber
C020321R035DC771H
Board-ID
Mac-F221BEC8
CPU
ProcessorType
0x0601
CpuFrequencyMHz
2667
BusSpeedkHz
133330
QPI
2500
Graphics
GraphicsInjector
No
PCI
StringInjector
Yes
DeviceProperties
PCIRootUID
0
HDAInjection
Detect
LpcTune
Yes
ACPI
DropOemSSDT
No
GenerateCStates
No
GeneratePStates
No
smartUPS
No
PatchNMI
No
FixDsdtMask
0x0000
В верхней секции задаются флаги загрузки, язык компьютера по умолчанию, загрузочный том (по названию), UUID оборудования.
Секция SMBIOS предназначена для прописывания информации о модели Мака, под которую косит ваш хакинтош. Все параметры отсюда идентичны сведениям, которые вводятся в других загрузчиках.
В секции CPU вводится информация о вашем процессоре — его шестнадцатиричный идентификатор, частота, скорость шины (обратите внимание — в килогерцах) и QPI.
Секция Graphics позволяет прописать информацию о вашей видеокарте. Вы можете ввести объём памяти (ключ VRAM), количество видеовыходов (VideoPorts), фреймбуффер (только для AMD-карт, ключ FBName), NVCAP карты и значение display-cfg.
Секция PCI позволяет инжектировать стринги, изменить номер PCI Root, включить или отключить патчи HDA и LPC.
Наконец, секция ACPI содержит множество параметров, касающихся параметров работы процессора (С-States, P-States), режима сна, патча NMI. Патч DSDT на лету включается здесь же — вместо 0x0000 нужно ввести шестнадцатиричную маску, соответствующую сумме кодов нужных вам фиксов. Подробности см. здесь.
Подробный FAQ по установке и настройке Clover вы можете найти на форуме AppleLife.
У Clover предостаточно плюсов, думаем, из написанного выше это понятно. Но есть и несколько досадных недостатков:
- долгая загрузка. Увы, Clover грузится гораздо дольше XPC (практически в три раза). На материнках с UEFI ситуация получше
- проблемы с iCloud. Многие пользователи сетуют на невозможность залогиниться в iCloud. Не помогают абсолютно никакие фиксы. Вероятно, проблема связана с механизмом инжектирования UUID — либо Clover подставляет его не везде, либо там, где подставлять не нужно
- проблемы с EFI-системами. Пока Clover не очень дружит с Windows 8, могут случаться синие экраны смерти, компьютер может зависать при выключении либо при входе в режим сна. Конечно, хочется обвинить в этом корявую Винду, но в данном случае это точно не её вина 😉
В остальном Clover — прекрасный вариант для начинающего хакинтошника, который не хочет тратить время и силы на тщательную доводку системы. Clover автоматизирует множество рутинных задач, ранее стоявших перед желающими организовать хакинтош. Это загрузчик действительно делает хакинтоши ещё на шаг ближе к реальным Макам.
Источник
Clover mac os что это
Установка Clover установщиком
Ручная установка
/Desktop/BootSectors
sudo ./fdisk440 -f boot0 -u -y /dev/rdiskD
sudo dd if=/dev/rdiskDs1 count=1 bs=512 of=origbs
sudo cp boot1f32 newbs
sudo dd if=origbs of=newbs skip=3 seek=3 bs=1 count=87 conv=notrunc
sudo dd if=newbs of=/dev/rdiskDs1 count=1 bs=512
Выглядеть все должно вот так:
- Господа, прошу обратить внимание на то, что у меня схема разделов в примере GUID, и нет ни одного раздела в FAT32 кроме самого EFI. Если же вы решите оставить MBR и отформатировать всю флешку в FAT32 то вам может потребоваться для успешного старта загрузчика сделать раздел активным (этот случай будет рассмотрен ниже).
- Монтируем раздел, на который только что установили загрузочный сектор sudo mkdir /Volumes/EFI/
sudo mount_msdos /dev/diskDsP/ /Volumes/EFI/
Все это должно выглядеть следующим образом:
Сам Clover лежит в корне раздела EFI с именем файла BOOT
/Volumes/EFI/BOOT
DSDT кладется в
/Volumes/EFI/EFI/acpi/patched/DSDT.aml
GUI Clover’а CLOVERX64.efi основанный на rEFIt находится в
/Volumes/EFI/EFI/BOOT/CLOVERX64.efi
Настройка всех параметров Clover производится в
/Volumes/EFI/EFI/config.plist
Здесь приведен старый вариант этого файла, но сути это не меняет. (Далее рассмотрим новый образец и его структурe)
для меня на данном этапе достаточно было прописать данные SMBios мак модели.
/Users/amoureux/Desktop/CloverV2/boot32.zip 32-битная версия кловера
/Users/amoureux/Desktop/CloverV2/BOOT64.zip 64-битная версия кловера
/Users/amoureux/Desktop/CloverV2/EFI/BOOT/CLOVERIA32.efi GUI для 32-битной версии
/Users/amoureux/Desktop/CloverV2/EFI/BOOT/CLOVERX64.efi GUI для 64-битной версии
использовать либо только 32-битные версии, либо только 64-битные.
Настройка
Как исправить DSDT cпомощью Clover
Маски 0x00FF:
0000 0000 0000 0001 = 0x0001 = FIX_DTGP
0000 0000 0000 0010 = 0x0002 = FIX_WARNING
0000 0000 0000 0100 = 0x0004 = FIX_SHUTDOWN
0000 0000 0000 1000 = 0x0008 = FIX_MCHC
0000 0000 0001 0000 = 0x0010 = FIX_HPET
0000 0000 0010 0000 = 0x0020 = FIX_LPC
0000 0000 0100 0000 = 0x0040 = FIX_IPIC
0000 0000 1000 0000 = 0x0080 = FIX_SBUS
Маски 0xFF00:
0000 0001 0000 0000 = 0x0100 = FIX_DISPLAY
0000 0010 0000 0000 = 0x0200 = FIX_IDE
0000 0100 0000 0000 = 0x0400 = FIX_SATA
0000 1000 0000 0000 = 0x0800 = FIX_FIREWIRE
0001 0000 0000 0000 = 0x1000 = FIX_USB
0010 0000 0000 0000 = 0x2000 = FIX_LAN
0100 0000 0000 0000 = 0x4000 = FIX_WIFI
1000 0000 0000 0000 = 0x8000 = FIX_HDA
бит(7).
1111 1111 0000 0000 = 0xFF00 = Включение исправления по маске: бит(8)
бит(15). Нужно включить метод DTGP (0xFF01) в первую очередь.
Вы можете исправить DSDT для одной функции. Нужен патч DTGP для работы без DSDT.aml.
0000 0000 0000 1001 = 0x0009 = DTGP + MCHC
0000 0000 0010 0001 = 0x0021 = DTGP + LPC
0000 0000 1000 0001 = 0x0081 = DTGP + SBUS
0000 0001 0000 0001 = 0x0101 = DTGP + DISPLAY
0000 0010 0000 0001 = 0x0201 = DTGP + IDE
0000 0100 0000 0001 = 0x0401 = DTGP + SATA
0000 1000 0000 0001 = 0x0801 = DTGP + FIREWIRE
0001 0000 0000 0001 = 0x1001 = DTGP + USB
0010 0000 0000 0001 = 0x2001 = DTGP + LAN
0100 0000 0000 0001 = 0x4001 = DTGP + WIFI
1000 0000 0000 0001 = 0x8001 = DTGP + HDA
Или исправить DSDT для нескольких функций. Нужен патч DTGP для работы без DSDT.aml.
0000 0101 0000 0001 = 0x0501 = DTGP + DISPLAY + SATA
0011 0001 0000 0001 = 0x3101 = DTGP + DISPLAY + USB + LAN
1011 0101 0000 0001 = 0xB501 = DTGP + DISPLAY + SATA + USB + LAN + HDA
Сборка Clover
Сборка Clover вручную
Для сборки нужно иметь Command Line Tools for Xcode — Скачать
Начало
cd
mkdir src
cd src
curl — -C -L -O ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.4.tar.bz2
curl — -C -L -O ftp://ftp.gnu.org/gnu/mpfr/mpfr-3.1.0.tar.bz2
curl — -C -L -O http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
/Downloads/HFSPlus.efi.zip ./
svn co https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2 edk2
cd edk2
svn co https://cloverefiboot.svn.sourceforge.net/svnroot/cloverefiboot Clover
make -C BaseTools/Source/C
cd Clover
cp
/src/edk2/Clover/HFSPlus/X64/HFSPlus.efi
./cbuild.sh -xcode -ia32 -release
Этот скрипт создает Clover32, но он нужен также и для того, чтобы EDK2 сконфигурировалась. Теперь мы эту конфигурацию должны скорректировать.
/src/gmp-5.0.4
mkdir build
cd build
../configure —prefix=/opt/local
make
sudo make install
cd
/src/mpfr-3.1.0
mkdir build
cd build
../configure —prefix=/opt/local —with-gmp=/opt/local
make
sudo make install
cd
/src/mpc-0.9
mkdir build
cd build
../configure —prefix=/opt/local —with-gmp=/opt/local —with-mpfr=/opt/local
make
sudo make install
Источник