Сложно не заметить любовь разработчиков и дизайнеров к продукции Mac. Стоит только открыть фотографии из офисов успешных IT-компаний и стартапов… Возникает желание попробовать хваленую систему самому, но серьезный ценник тут же остужает пыл. Однако выход есть!

Компьютеры Apple Macintosh всегда были элитными и в нашей стране скорее представляют собой экзотику. Люди либо ничего про них не знают, либо восхищаются их красотой и удобством. Даже среди тех, кто все-таки знает, что это, многие не могут себе позволить такой компьютер, в первую очередь из-за стоимости. Еще больший аргумент против — якобы большие проблемы с программным обеспечением в России.

Впрочем, некоторые компании стали продавать так называемые клоны системы, собранные на самом обычном железе, но при этом — с предустановленной MacOSX. Такая система практически неотличима от оригинальной, на ней можно запускать любые программы и даже обновлять ее в онлайне. Мы решили разобраться, как им такое удалось и как собирается хакинтош. А заодно – какие отличия имеются с оригинальной фирменной системой.

Итак, устанавливаем на домашний PC, наряду с Windows, еще и MacOS (ХакОС) в пробных целях. В любой момент можно вернуться в привычную среду (и как там становится тоскливо после такого праздника жизни!).
Выбор конфигурации

На какое железо реально поставить МакОС? Не на любое!
1. Процессор

Оптимальным выбором будет Intel Core 2 Duo, но от Интел подойдут и Core Duo, Core Solo (Yonah), Core 2 Quad, Xeon, Pentium M (новой серии), Core i5, i7, Atom. Важно, чтобы они поддерживали набор инструкций SSE3; впрочем, с процессорами SSE2 (Pentium M (старый), Pentium 4) тоже реально, но с определенными проблемами. Аналогично можно попытаться поставить систему на AMD, но — используя специальное ядро, созданное для этих целей. Насчет Атома возникли новые сложности, впрочем, уже преодолеваемые хакинтош-сообществом.
2. Системная плата

На оригинальных Маках используются чипсеты Intel и nForce. Есть сведения о простой установке на чипсеты Intel 945, 975x, 965P, EP31, EP45 и другие. Более важно понятие южного моста: ICH7,8,10 поддерживаются оригинальными драйверами, ICH9 требует некоторых патчей, MCP79 тоже относится к родным мостам. Перечислить, какие есть платы на рынке с такими же чипсетами, нереально, да и сопоставить модель материнской платы с используемым южным мостом — тоже непростая задача. По производителям можно утверждать, что популярные ASUS и Gigabyte для этих целей вполне пригодны. Нужно понимать, что другие чипсеты nForce, VIA, SIS, AMD/ATI использовать скорее нельзя, чем можно, хотя есть и такие работающие хакинтоши.
3. Память

Ничего особого. Если у тебя работает WindowsXP, то MacOSX тем более будет работать.
4. Жесткий диск

Опять же, ничего необычного. Предпочтительнее с интерфейсом SATA, хотя и старый IDE интерфейс вполне пригоден. Размер – современный: 10 Гб достаточно для установки системы, которая еще займет место для виртуальной памяти, для файла гибернации и собственных кешей, но всегда хочется чего-то большего, и программ поставить, и музыки, и фильмов... Модель значения не имеет.
5. Видеокарта

Принципиально, что драйвера для видеокарт существуют только для современных Nvidia, ATI и Intel. И то не все модели. VIA Chrome, SIS, Matrox и большинство устаревших карт шансов не имеют. Более старые модели возможно использовать с MacOSX Tiger, а для современной Snow Leopard перечень приблизительно таков:

Nvidia Geforce 7x00-9x00, GT120 – GT295 (x не меньше 3)
ATI Radeon X1300, X1600, X1900, HD2400, HD2600, HD3800, HD4500, HD4600, HD4800.
Intel GMA950, X3100 – версии для мобильных компьютеров.

Мобильные версии nVidia и ATI – очень большие проблемы.
6. Звуковая карта

Для устаревшего стандарта AC97 есть драйвер, подходящий для большинства карт производства Realtek и Analog Devices. Для нового стандарта HDA (High Definition Audio) есть варианты практически для всех встроенных карт. А вот с PCI-картами нужно выяснять индивидуально.
7. Сетевой адаптер

Практически любые на чипах Realtek или Marvell, несколько сложнее — с Intel и 3Com, также есть драйвера на некоторые карты Broadcom (440x, 5701). Приходится оговариваться, ибо есть проблемы с модификациями, например, Marvell 8071 или Intel 82567. А усилиями хак-сообщества созданы драйвера под некоторые модификации nForceLAN.
8. WiFi-адаптер

Вопрос актуален для владельцев ноутбуков. Работают адаптеры на чипах Atheros и Broadcom. Ниже по тексту будет пример оживления адаптера Broadcom 4315.
9. USB-устройства

Видеокамера, блютус, ТВ-тюнер, флеш-накопитель, WiFi, принтер, сканер, клавиатура и мышь работают практически все.
10. DVD-RW привод

Тоже работают практически все, как с интерфейсом SATA, так и с ATA. Но последний вызовет некоторые проблемы при инсталляции.
Подводя черту под этим обзором, следует сказать, что всегда есть риск, что какое-то устройство в системе окажется неподдерживаемым. Ты можешь поискать решение в интернете, либо смириться, мол, пробуя МакОС, и не рассчитывал, что оно понадобится.

Видеокарта, даже если она не поддерживается, все равно будет показывать изображение в одном из стандартных режимов VESA, например, 1024х768, но отсутствие поддержки OpenGL ограничит тебя в списке программ, которые можно использовать. К примеру, не будут запускаться системные шахматы и DVD-player.

Итак, в пробной конфигурации мы выбрали десктоп на основе системной платы Gigabyte EP45-UD3LR с процессором Intel Core 2Duo E7400, память 2х1 Гб, звуковая карта встроенная Realtek ALC888, сетевой адаптер Realtek 8168, видеокарта Palit Geforce 9600GT, жесткий диск SATA 250 Гб, DVD-RW Optiarc. В целом - современный середнячок эконом-класса.
Выбор операционной системы

На Интел-совместимых компьютерах можно запустить MacOSX 10.4.x Tiger, MacOSX 10.5.x Leopard и новейшую MacOSX 10.6.x Snow Leopard. Разумеется, предпочесть стоит последнюю, но при этом:
Видеокарты Radeon 7500 – 9700 возможно полноценно запустить только в Тигре.
Видеокарты nVidia Geforce 5x00 – 6x00 еще возможно запустить в Леопарде.
Снежный Барс пока не является хорошо отлаженной стабильной системой.

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

Вместе с развитием операционной системы трудилось и хак-сообщество, обеспечивая совместимость ОС со стандартными компьютерами. Так, для установки Тигра требовалось подменять ядро системы и ряд жизненно важных программ на модифицированные версии. В Леопарде появилось понятие ванильного ядра, т.е. оригинальное ядро от самой Эппл. Система стала родной, немодифицированной, только с небольшими добавками. В Снежном Барсе количество необходимых добавок убавилось, ниже мы расскажем, почему. Впрочем, эти трюки применимы и к Леопарду, просто они разработаны уже с выходом системы 10.6. По каждой из этих версий требуется отдельный рассказ, но речь пойдет только про последнюю, самую современную версию операционной системы с названием Snow Leopard (он же Барсик).
Выбор дистрибутива

Оригинальные компьютеры Apple Macintosh комплектуются дисками с операционной системой, однако эти диски являются модельно-зависимыми, и, стало быть, непригодны для наших целей. Пригодным будет диск с пометкой Retail, который является общим для всех моделей. Просто поставить с него систему на хакинтош не удастся, потому что он также рассчитан на оригинальный компьютер. В отличие от Microsoft Windows, Apple MacOSX не требует ввода серийного номера и активации, подразумевается, что подлинность компьютера заложена в нем самом. В компьютерах Apple модель и серийный номер, а также свойства установленных устройств (аудио, видео и других) заложены в EFI (http://en.wikipedia.org/wiki/Extensible … _Interface), в отличие от БИОСа большинства наших компьютеров. Некоторые файлы в системе зашифрованы, и ключ шифрования заложен в специальной микросхеме.

Отсюда легко сделать вывод: для установки системы MacOSX на неоригинальный компьютер, эту защиту следует обходить еще на старте установки системы, т.е. старт должен быть с другого источника.

Вариант: переделать сам установочный диск, чтобы он содержал в себе обход этой защиты, да еще и набор дополнительных драйверов, чтобы систему можно было поставить на более широкий круг компьютеров. Такой диск называется сборкой, и есть люди, которые их производят, возможно, и в коммерческих целях, а чаще за просьбу о пожертвовании. В чем минусы? Поскольку сборку делали не мы сами, то не знаем, что конкретно там изменено, и остается только верить, что исправления нужные и безопасные. Возможны изменения внешнего вида и логотипов — дескать, система неоригинальная и будьте добры видеть логотип создателя сборки. Не очень корректно, все же, сама система создана компанией Apple и ее стоит уважать. Для подобных случаев существует пакет Restore_Desktop_Settings, который нетрудно найти в интернете и с ним вернуть оригинальный вид оболочки. Еще один минус - версия системы. Сборки чаще всего имеют устаревшую версию. Впрочем, если постараться (о чем рассказано ниже), можно подправить систему таким образом, что ее реально будет апдейтить официальными пакетами от Apple. Плюс же сборки очевиден: установить систему получится за 10-20 минут, даже не имея никакого опыта в хакинтошестроении.

Установка Ритейла потребует немалых усилий и знаний. Вкратце путь таков: скачать из Сети образ загрузочного диска или флеш-накопителя, содержащего минимальную ОС с минимальным набором драйверов, загрузиться с него в режим командной строки, вставить в привод ДВД инсталляционный диск Ритейл, смонтировать его и запустить с него инсталляцию.

Широкое хождение имеет сборка 10А432 от dan1234, которая представляет собой тот же дистрибутив Ритейл, но с нужным загрузчиком, инсталляционным скриптом и набором драйверов. Выбрав эту сборку, ты можешь стартовать прямо с нее и иметь тот же результат с меньшим количеством усилий.
Процесс инсталляции

Может быть, на твоем компьютере уже стоит система Windows, и ты не хочешь ее уничтожать, а может быть, ты планируешь ее только поставить. В этом случае начинать следует с нее. Во-первых, МакОС требует, чтобы SATA-винчестер работал в режиме AHCI. Для южного моста ICH7 этого не требуется, а вот для других – более чем желательно. И если для Windows Vista в этом нет проблемы, то для Windows XP не все так гладко. Сам дистрибутив Windows XP SP2 не содержит драйвера AHCI и не пожелает устанавливаться на HDD в таком режиме, а после установки системы драйвер RAID/AHCI не хочет приниматься системой, потому что такое устройство не включено в БИОСе. Попытка же включения в БИОСе режима приводит к синему экрану при загрузке XP. Тупик?! Для южного моста ICH8 существует корректный инсталлятор драйвера, — ищи на прилагаемом диске, его также можно модифицировать для инсталляции на ICH9 путем редактирования inf-файла, заменой 2829 на 2929. Для других вариантов придется искать другие пути.

Что ж, с этой проблемой ты справился, и Windows у тебя работает с винчестером в режиме AHCI. Преимущество скорости очевидно. Менее очевидно, но для нас важнее – совместимость с МакОС. Теперь следует выделить раздел для установки OSX. Раздел должен быть первичным, а не логическим диском в расширенном разделе! Простейший способ: щелкнуть правой клавишей мыши по значку «Мой компьютер», выбрать «Управление» —> «Накопители» и произвести стандартные действия по созданию нового первичного раздела в формате FAT32. Если это невозможно, то можно воспользоваться одной из программ управления разделами: Partition Magic, Paragon Partition Manager, Acronis. Существует и бесплатный, хорошо работающий способ: загрузиться с Ubuntu LiveCD, но не запускать инсталляцию Линукса, а набрать в терминале команду sudo gparted, пароль вводить не нужно. Программа gparted поможет совершенно корректно, без потерь данных, изменить размеры разделов и их расположение, создать новый раздел и отформатировать его. Итак, хороший вариант разбивки на разделы:
WindowsHD, первичный, активный раздел, NTFS.
SnowHD, первичный, пока FAT32.
Расширенный раздел, где можно организовать логические разделы, если необходимо.

Теперь вставляем нашу загрузочную систему либо сразу сборку и грузимся с нее. На экране появляется сообщение про Darwin boot и приглашение нажать <F8>. Это стоит сделать для диагностики. В появившейся командной строке набираем -v, что означает «Verbose boot» - до загрузки графической оболочки мы будем видеть на экране пошаговый процесс загрузки системы. Хорошо, поскольку в случае неудачи ты будешь знать, на чем все дело остановилось. К примеру, одна из известнейших ошибок «till waiting for root device...» означает, что в загрузочной системе отсутствует драйвер контроллера DVD-накопителя. Один из вариантов – присоединить DVD-накопитель через USB-интерфейс, таким способом устанавливали Тигра на всевозможные конфигурации. Либо искать другую загрузочную систему :(.

После пробега белых букв по черному экрану он, наконец, очистился, побелел, посинел, и перед нами приглашение на установку MacOSX, с его лицензионным соглашением. Не торопись! Сверху есть меню с утилитами, там следует выбрать Disk Utility, и с помощью него произвести форматирование выбранного раздела в формат Mac OS Extended (journaled). После завершения Disk Utility мы возвращаемся в инсталлятор, указываем, куда ставить систему, выбираем опции установки — и в добрый путь! Заметим, что сборки содержат очень много опций, в том числе модифицированные ядра, БИОСы, драйвера для всевозможных встроенных устройств, «очень полезные» или даже «необходимые» драйвера, а также набор утилит. Все это задумано не зря и не во вред пользователю, однако, если ты не уверен, что тот или иной драйвер подойдет, лучше их не выбирать, наверняка в интернете найдешь более современный вариант. А вот утилиты взять можно, их наличие системе не мешает. В упомянутой выше сборке от dan1234 есть еще загадочный шаг по изготовлению и установке файла DSDT (Differential System Description Table). Шаг обязательно стоит выполнить, если ты не готов сделать его по-другому. Ниже мы обсудим, что это и зачем. Словом, система установилась успешно, на что ей потребовалось 10 минут, и попросила перезагрузки... И здесь нас ждет «кернел паника», скорее всего, не последняя. Выглядит, как таблица цифр и некоторые буквенные идентификаторы. Иногда из этого можно понять причину краха.

В данном случае система не сформировала правильный mkext (multiple kernel extensions, в первом приближении это архив драйверов). Продвинутые хакеры изготавливают его сами, подставляют в систему, после чего она грузится дальше. На вкладке приведен текст скрипта, который создает mkext.

Правда, в этом варианте предполагается, что ты имеешь установленную систему MacOSX на другом разделе, с которой можешь загрузиться, и выполнить этот скрипт. Следующий вариант тоже требует наличия MacOSX, но уже необязательно на том же компьютере. Суть в том, что, так или иначе загрузчик, установленный по умолчанию, необходимо менять, а вот с новейшим загрузчиком Chameleon-2 RC3 паники ядра уже нет, система сама создает мкекст. Загрузчик создан по лицензии OpenSource, потому доступен в интернете. Надо заметить, созданы его хорошие модификации, к примеру, PC-EFI 10.3 – 10.5 by Netkas. В архиве содержится много файлов, в данный момент интересны три из них:
boot0 – должен быть записан в нулевой сектор диска. Это – главная загрузочная запись.
boot1h - должен быть записан в нулевой сектор раздела.
boot – должен быть расположен в корневой директории раздела с системой.

Сделать это можно в любой операционной системе, к примеру, так это делается в MacOSX

Один из вариантов, как можно сделать:
Записать файлы на флешку.
Загрузиться с инсталляционного диска, как мы это уже проделывали, выбрать из меню «терминал».
Смонтировать флешку командой /sbin/mount -o nosuid -w -m 755 /dev/disk1s1 /tmp
Установить загрузчик указанными выше командами.
Для загрузчика Chameleon-2 также необходима папка /Extra в корне раздела, где находятся файлы com.apple.Boot.plist и smbios.plist. Первый содержит флаги загрузки: Timeout в 15 секунд дает тебе возможность сообразить, не хочешь ли ты загрузить другую систему или с другими флагами; system-id должен быть уникален, для этого существует UUIDGenerator.

В файле smbios.plist самый интересный пункт — SMProductName. Как выяснилось, от того, как ты назовешь свой компьютер, он и работать будет по-разному. Тема, опять-таки, очень емкая, но для указанного выше десктопа оптимальным выбором является MacPro3,1.
С новым загрузчиком мы снова можем попытаться загрузиться в новую систему. В некоторых конфигурациях это удается, в других будет новая «кернел-паника», на этот раз с указанием на IOATAFamily.kext, т.е. драйвер ATA-контроллера. Проблема уже изучена, лечится подменой родного кекста патченным, взятым из интернета. Еще, если у тебя клавиатура PS2, к ней и драйвер понадобится новый, например, VoodooPS2.kext

В дальнейшем можно будет вернуться к родному кексту, исправив DSDT. Подменить одни файлы другими проще всего из Windows, только там нужно установить программу MacDrive, позволяющую писать в раздел, отформатированный в HFS+. Доступна 30-дневная рабочая версия, для этих целей вполне достаточно.

Загружаемся в новую систему с ключами загрузки -v -f arch=i386. Пояснения:
-v – мы должны видеть в текстовом виде, что происходит.
-f – обновить кеш драйверов.
arch=i386 – для начала выбираем режим 32 бита, переход на 64 бита сделаем, когда будем готовы к этому шагу.

Наконец-то! Экран приветствия, настройки нового пользователя, регистрация (не надо сообщать в Эппл свои данные, так что отключи интернет). Ты в системе.
Дальнейшая адаптация системы

Описанная выше процедура не всегда бывает успешной, но даже в тех случаях, когда система все же загружается, чаще всего, успех еще не полный. Дальнейшие инструкции помогут разобраться, что нужно сделать, если система не работает или работает неполноценно.
В первую очередь необходимо разобраться с DSDT — небольшой программой (~20 кб), работающей ВНЕ операционной системы. Подсистема ACPI (Advanced Computer Powermanagement Interface) закладывается производителем материнской платы в БИОСе. Проблема в том, что MacOSX ориентирована на использование ACPI, а производители PC не предусмотрели, что на таком компьютере будет установлена ХакОС. Вот, к примеру, отрывок из этой программы:

В этом списке наблюдается даже такая экзотика, как OpenVMS, но MacOSX здесь отсутствует, и поведение программы просто не определено. Наиболее общий совет – сделать так, будто мы работает в системе Windows XP SP3.

Да! Наша система идентифицируется ACPI как Darwin.

Вернемся к тому, откуда этот текст, как его получить и использовать. Как видите, это программа, написанная на языке, сходном с С. БИОС, при старте компьютера, генерирует dsdt.aml, который исполняется где-то в фоновом режиме вне операционной системы. Эту программу можно сохранить в бинарном виде в файле в любой ОС, в том числе в Windows. Для этого существует DSDT GUI patcher for Windows. Если у тебя уже есть MacOSX, можно проделать эту операцию и в нем. Для этого необходимо создать такой скрипт:

Вызываем программу «Terminal». Создаем папку DSDT:

Помещаем туда этот скрипт, назовем его dumpACPI.sh. Помещаем в эту же папку утилиту IASL (версию для Mac находим в интернете или на диске к журналу). И запускаем скрипт на исполнение:

Файл dsl можно редактировать обычным текстовым редактором (но не виндусовыми Notepad, Wordpad, они создают другой конец строки, и текст будет капитально испорчен!), чтобы исправить алгоритм программы. Исправленный файл откомпилировать (iasl -ta dsdt.dsl), и отправить в корень диска:

После перезагрузки системы изменения вступят в силу.

Файл DSDT всегда индивидуален, чужой взять нельзя. Тот, что создан БИОСом, не рассчитан на работу с ХакОС, и даже не только в смысле идентификации системы, но и потому, что для MacOSX требуется больше информации об устройствах и иное распределение прерываний. Все это вместе — большая и достаточно сложная тема, в интернете выложены многостраничные инструкции в каких случаях и что нужно менять в этом файле. Краткий перечень:
Отменить прерывания таймеров HPET, RTC, TMR и добавить IRQ2 для IPIC. Много проблем решается именно здесь.
Инициализировать IDE timing registers. Теперь можно использовать родной IOATAFamily.kext.
Прописать свойства звуковой карточки, сетевой и видео, чтобы заработали драйвера для них.
Прописать устройства, которые не были предусмотрены в БИОС.
Скорректировать события засыпания/пробуждения – тема актуальна для владельцаев ноутбуков.
Описать методы и свойства процессора. Таким способом удается заставить работать управление питанием и частотой процессора (Intel SpeedStep). В простое процессор работает на низкой частоте, при нагрузке – на максимальной, тем самым гораздо меньше нагревается. Опять таки, очень актуально для ноутбуков.
Шина USB будет работать либо со специальной версией драйвера, либо с DSDT-патчем на все порты USB.

Ну и, напоследок, приведем список необходимых драйверов, которые следует поставить в систему:
IOPCIFamily.kext – родная версия почему-то не соответствует стандартным PC.
OpenHaltRestart.kext – без него система не выключается и не перезагружается.
Natit.kext – для включения видеокарт (разные вариации, возможна замена на DSDT patch).
AppleACPIPS2Nub.kext + ApplePS2Controller.kext (rebuilded) или VoodooPS2.kext – если у тебя клавиатура, мышь или трекпад подключены как PS2.
AppleACPIBatteryManager.kext – для показа батарейки на ноутбуках.
Fakesmc.kext – сообщает системе необходимую приватную информацию. dsmos.kext можно удалить.
VoodooHDA.kext – драйвер, подходящий для большинства звуковых карт стандарта High Definition Audio. При этом AppleHDA.kext обязательно следует удалить.

Установка любого драйвера осуществляется из терминала командой

Внимание! Копирование текста с помощью мыши не приводит к его корректной инсталляции, такой файл будет иметь неправильные права и не примется системой.
Идентификация устройств

Каждое PCI-устройство имеет идентификаторы DeviceID и VendorID, каждое USB-устройство - idProduct и idVendor, каждое ACPI-устройство – имя типа PNPxxxx или ACPIxxxx. Во многих случаях патч родных драйверов заключается в подмене идентификаторов родных на свои. К примеру, установлен WiFi Adapter Broadcom 4315. Открываем в виндоусе «Диспетчер Устройств», находим его и смотрим сведения, совместимые коды оборудования. Узнаем, что DeviceID=4315 и VendorID=14e4.

Затем смотрим в системную папку и находим похожий драйвер для Broadcom 4311, изучаем его info.plist

И вот что в нем:

Таким образом, драйвер рассчитан на разные варианты адаптеров, но не на 4315. А что, если вручную его туда прописать по образцу? Да! И это очень часто работает. В частности, в рассматриваемом варианте такая подстановка приводит к полноценно работающему драйверу.
Обновление системы

Выполняя обновление системы, непосредственно через Software Update... или просто загрузив Combo Update с официального сайта Apple, важно помнить, что именно ты менял в системе, чтобы после апдейта «привести ее в чувство». В частности, в вышеприведенном примере с WiFi после апдейта цифру 4315 придется вводить заново. Если ты используешь VoodooHDA, предварительно удалив AppleHDA, то после апдейта он появится вновь, и конфликт приведет к краху системы. Чтобы этого избежать, перед обновлением следует переместить VoodooHDA в безопасное место, а после успешного обновления вновь его установить. Аналогичные рекомендации будут и относительно других родных кекстов, которые ты по той или иной причине удалил. Существует вариант Disabler.kext, который позволяет не удалять родные кексты, а просто отменить их загрузку, в этом варианте обновлению вообще ничего не мешает.
Переход на настоящий Mac

Устанавливая таким образом MacOS X, теряешь одну из главных фишек системы – чрезвычайную продуманность, всецело избавляющую пользователя от головной боли по поводу чего-либо. Однако гиков такими проблемами не испугать. В принципе, с тем же успехом можно было взять готовую сборку ХакОС и получить систему за 15 минут. Поэтому наша цель была глубже, и теперь мы не только знаем, каким образом устанавливается MacOSX на обычный компьютер, но и каким образом может на нем работать. Впрочем, привыкнув к системе, очень скоро понимаешь, что надо покупать оригинальный Mac и не идти ни на какие компромиссы :).