Про неработающий iCloud на хакинтошах
Количество писем, в которых обладатели хакинтошей спрашивают у нас, почему у них не работает сервис iCloud, с каждой неделей только растёт. Чтобы не отвечать на каждое письмо одно и то же, попробуем разобраться в проблеме в отдельном материале.
На самом деле, коварство Apple тут не причём – в iCloud нет никакой проверки на то, хакинтош у вас или настоящий Мак. Корни проблемы кроются совершенно в другом и весьма неожиданном месте. Виновник проблемы – неверный идентификатор сетевого интерфейса Ethernet. Это звучит как бред, но причина именно в этом. Как ни странно, если сетевые интерфейсы на вашем компьютере воспринимаются системой в неверном порядке, вы получаете целый букет разнообразных проблем:
- iCloud откажется подключаться
- Mac App Store не будет принимать ваш пароль
- FaceTime не захочет совершать звонки
- Time Machine может выдавать ошибки при бэкапах
Чтобы избежать этих проблем, нужно всего лишь заставить Mac OS X воспринимать Ethernet как встроенный (для этого есть специальное свойство built-in) и присвоить ему идентификатор en0.
Между прочим, на эти же проблемы жалуются многие пользователи реальных Маков, достаточно заглянуть на форумы поддержки Apple и убедиться в этом. Зато у хакинтошников есть гораздо больше действенных способов решения проблемы :)
Способы решения мы расположим в порядке нарастания сложности:
1. Причина номер 1 – отсутствие в настройках загрузчика специальной опции, активирующей патч, присваивающий Ethernet-интерфейсу свойство built-in. Для Chameleon в файле /Extra/org.chameleon.boot.plist нужно добавить секцию:
<key>EthernetBuiltIn</key> <string>Yes</string>
Если вы пользуетесь XPC, то в файле /EFI/XPC/settings.plist нужно добавить или дополнить секцию:
<key>InjectEthernet</key> <dict> <key>Vendor</key> <string>0x10ec</string> <key>Device</key> <string>0x8168</string> </dict>
Поля Vendor и Device надо заменить на идентификаторы производителя и модели Ethernet-карточки. Проще всего узнать их из свойств устройства в Диспетчере задач Windows.
2. В файле настроек вашего загрузчика также важно проверить наличие UUID. Это уникальный идентификатор вашего оборудования, который определяется на основе MAC-адреса сетевой карточки. Учтите, что если UUID меняется, то Mac OS X начинает считать, что это уже другой компьютер. Неприятные последствия этого состоят в сбросе ряда настроек системы, а самое неприятное последствие – сброс авторизации в iTunes Store и App Store. Поэтому перед экспериментами с UUID обязательно деавторизуйтесь в iTunes!
В Chameleon UUID задаётся в файле /Extra/SMBIOS.plist в секции:
<key>SMUUID</key> <string>00000000-0000-1000-8000-000000000000</string>
В XPC за идентификатор отвечает ключ PlatformUUID в файле setting.plist. UUID может включать любые цифры и буквы от A до F. Если не хочется фантазировать, можете ввести нули, а последние цифры заменить на MAC-адрес сетевой карточки. Он узнается в свойствах системы (Яблочко в менюбаре-Об этом компьютере-Подробнее-Отчёт о системе-Сеть-Ethernet-MAC-адрес).
3. Ещё одна вероятная причина – устаревший загрузчик. Если вы используете Chameleon, первым делом обновите его на последние билды. Дело в том, что встроенный в загрузчик патч, присваивавший сетевым интерфейсам правильные номера, в последние месяцы дорабатывался, но стало только хуже. Проблема с этим патчем решилась лишь относительно недавно.
4. Если всё в порядке, а iCloud и другие сервисы Apple всё равно не работают, надо проверить, какие идентификаторы присвоены сетевым интерфейсам. Для этого опять надо заглянуть в свойства сети (Яблочко в менюбаре-Об этом компьютере-Подробнее-Отчёт о системе-Сеть). На нашем скриншоте всё в порядке:
Всё в порядке потому, что Ethernet получил идентификатор en0. Если у вас он получает идентификатор en1 или en2, то с большой долей уверенности можно утверждать, что ничего работать не будет.
Сбросить идентификаторы можно следующим образом:
- отключитесь от всех сетей (сеть электропитания не в счёт :)
- зайдите в настройки системы, в пульт “Сеть”. По очереди слева выберите все пункты и нажимайте минус внизу, пока не удалите все интерфейсы:
- удалите (или переместите в безопасное место) файлы /Библиотеки/Preferences/SystemConfiguration/com.apple.network.identification.plist и /Библиотеки/Preferences/SystemConfiguration/NetworkInterfaces.plist
- перезагрузитесь
- зайдите в пульт настроек “Сеть” и нажмите плюс. Выберите интерфейс “Ethernet”
- перезагрузитесь
- зайдите в свойства сетей и проверьте, получил ли Ethernet идентификатор en0. Если да, можно добавлять остальные интерфейсы в пульте настроек сети
5. Наконец, если ваша сетевая карта прописана в DSDT, убедитесь, что в её свойствах указано свойство built-in. Это должно выглядеть как-то так:
Device (LAN)
{
Name (_ADR, 0x01)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x04)
{
"built-in",
Buffer (0x01)
{
0x01
},
"device_type",
Buffer (0x09)
{
"ethernet"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Надеемся, что до четвёртого и пятого способов у вас дело не дойдёт. Как показывает практика, чаще всего хватает обновления загрузчика. Удачи вам с хакинтошами ;)
![]() | Кнопки социальных сетей: | ||||
| |||||
| Соседние записи: | ||||
![]() |
Как включить уведомления о текущем треке iTunes в Доке | ![]() |
[Опрос] Довольны ли вы качеством работы iCloud? | ![]() |
Комментариев: 7
Интересующие вас вопросы мы рекомендуем задавать в нашем разделе Q&A
















Есть такая очень удобная программа — UUID Generator. Гуглится на раз. Встроена в Champlist. Создаёт правильный и рабочий UUID.
она создаёт случайный UUID на базе Мак-адреса. смысла в ней нет, можно и вручную любые цифры вбить.
и между прочим, “правильного и рабочего” UUID совершенно недостаточно для работы iCloud, Mac App Store и прочих перечисленных фич – главное, чтобы Ethernet числился в системе как en0
Да ну, вот прям любые можно вбить и прокатит? Честно говоря, Я удивлён. Думал, что UUID — вещь важная, типа как serial для активации программ, и IIUD Generator — типа как keygen.
У меня тоже облакое сначала не работало, но не было прописано EthernetBuiltIn в хамелеоне. После того как прописал – все ок)
Возможно не в тему, но я уже пол года сижу на льве, хакинтоше, ожидал внезапных багов и экранов смерти, но этого нет) все работает как часы, даже скучно стало :)
То же самое :) как обновился до Lion — большинство проблем исчезло. И обновления даже не боюсь ставить. Всё равно на соседнем диске старенький Snow Leopard.
:)
А я не боюсь обновления т.к у меня тайм машина работает)) я так понимаю, что при восстановлении просто хамелеон не восстановится, но его заново установить не проблема.
Данил, а как по ощущениям лион? не кажется что медленней работает чем снежок?
Да, как-то… не знаю даже. Запускал недавно Snow Leopard — вроде бы, то же самое. Не знаю.