Дуальная загрузка Mountain Lion и Ubuntu
Ещё летом я превратил свой Acer 4810 в Хакинтош и с тех пор он у меня по большей части простаивает, так как использовать его можно только для разработки под айфон, для полноценной работы использовать его использовать не удобно, всё-таки совместимость железа у Асера с Mac OS оставляет желать лучшего. Но вот, вчера подумалось, почему бы не поставить на него еще и Ubuntu?
Основная трудность была в том, что чтобы поставить Mountain Lion нужно было переразбить винчестер таблицей GUID взамен привычной MBR. Но как оказалось Ubuntu прекрасно понимает такое разбиение. Поставить Ubuntu оказалось делом простым, а вот загрузчик Chameleon используемый Хакинтошем был благополучно заменен Grub'ом. Чтобы починить Хакинтош пришлось слегка порыться в интернете - работающее решение нашел здесь.
Идея в следующем - заставить Grub вызывать загрузочный сектор Chameleona сохранённый в виде файла на диске с linux, далее этот файл уже сам знает что далать.
Скачиваем Chameleon c сайта разработчиков - так как загрузчик уже установлен на разделе с Hackintosh то потребуется только файл boot0 из дистрибутива Сhameleon который нужно положить в /boot/ в разделе с линукс и заставить grub вызывать этот файл при загрузке.
для этого открываем
sudo nano /etc/grub.d/40_custom
и добавляем туда следующее:
menuentry "Hackintosh" {
insmod part_gpt
insmod hfsplus
#replace this location with
#your OS X partition
set root='(hd0,gpt2)'
#replace this UUID with the UUID from your grub.cfg
search --no-floppy --fs-uuid --set=root 777eaee489759bd8
#replace the (hd0,6) portion with your
#Linux partition designation
chainloader (hd0,6)/boot/boot0
}
Сигнатуру 777eaee489759bd8 нужно взять из записи сгенерированной grub для раздела с Mac OS а также заменить hd0,2, hd1 на реальные значения, которые можно найти командой fdisk -l и du.
Затем нужно обновить grub:
sudo update-grub
Теперь я могу при загрузке выбирать что загружать - Ubuntu или Mountain Lion. Кстати, новая Ubuntu работает на Acer 4810 порядка шести часов, что не может не радовать.
Программирование под iOS
Сегодня впервые получилось запустить тестовое приложение на iPhone.
В отличие от Android, где, чтобы запустить приложение на физическом устройстве достаточно подключить телефон к компьютеру и запустить приложение из под Eclipse, в Apple устройствах все сделано гораздо "проще".
Чтобы скомпилировать своё первое приложение для iPhone нужно установить xCode на ваш iMac (у вас, конечно уже есть iMac, верно?). Последняя версия xCode, кстати, ставится, только на последнюю версию Lion или Mountain Lion - на Snow Leopard уже не получится.
Если нет мака, можно собрать Hackintosh - пару недель танцев в бубном и худо-бедно может получится нечто позволяющее запускать xCode.
Затем, нужно купить девелоперскую лицензию - всего каких то 100 баксов в год - копейки. Оплата, кстати, из Росси по карте через Интернет не предусмотрена. И это в двадцать первом веке у лидера всей IT индустрии! Поэтому, скачиваем форму с сайта, распечатываем, заполняем от руки, посылаем по факсу в Купертино (у вас конечно есть факс?). Вашу заявку рассмотрят в течении недели - двух.
Дальше всё гораздо быстрее.
Нужно сгенерировать Certificate Signing Request, послать его в Apple, получить с Apple Provisioning Profile и Сертификат.
Установить Provisioning Profile и Сертификат в xCode и OS X соответсвенно.
После того как всё готово, можно подписать приложение и запустить его на iPhone.
Здесь подробно описано как это сделать, всего-то с десяток экранов текста с картинками. Ребёнок справится.
Вобщем, терпимо, всё что нас не убивает - делает нас сильнее!
Как поставить Mountain Lion на Acer Aspire 4810TG
Оказывается, Mountain Lion неплохо себя чувствует на Acer Aspire 4810TG. Установка довольно простая, но я пока не все заставил работать. В приведённом посте я намеренно не ставлю никаких гиперссыслок на конкретные файлы - кому надо-тот найдёт.
Берем установочный диск Mountain Lion (если нет, подойдет хакнутый от olario)
Скачиваем и прожигаем HackBoot1 и HackBoot2
Скачиваем MultiBeast for MountainLion
Все готово чтобы начать. Сразу предупреждаю, все данные на жестком диске в процессе будут уничтожены, поэтому все самое ценное с компьютера нужно будет убрать.
В биосе компьютера ставим диск в режим AHCI а переводим графику в дисктретный режим .
Загружаемся с HackBoot1, вынимаем диск и вставляем дистрибутив Mountain Lion, нажимаем F5 и загружаемся с этого диска.
Загрузившись, в инсталяторе запускаем дисковую утилиту, и переразмечаем диск в режиме GUID. Создаем раздел и ставим на него наш Mountain Lion.
Инсталлятор говорит, что загрузка занимает примерно 20 минут, у меня получилось больше часа.
После завершиния установки компьютер попросит презагрузиться. После того как мы выним из него диск, установленная система загрузиться сама не сможет - нам потребутеся загрузочный диск HackBoot2. (На самом деле HackBoot1 у меня тоже срабатывал).
Вставив HackBoot2 при загрузке, просим систему стартовать с жесткого диска, после чего Горный Лев прекрасно стартует.
Инсталяция из коробки не поддерживает сетевую карту, и звук, чтобы всё это заработало, нужно поставить MultiBeast, которая поставит необходимые драйвера. Весь вопрос как поставить MultiBeast на только что установленную систему - сеть не работает, USB - тоже. Я для этого содал Fat раздел на жёстком диске, загрузился с загрузочного диска с Ubuntu и загрузил на раздел Multibeast. После чего перезагрузился опять с Mountain Lion и запустил Multibeast c этого раздела.
В Mountain Lion выбираем:
EasyBeast Installation
Multibeast — UserDSDT or DSDT-Free
VoodooHDA 0.2.1
PS2/ Keyboard/Mice
maoji AtherosL1cEthernet
FakeSMC
GraphicsEnabler=No
После применения указанных патчей систем может загружаться без HackBoot2.
Что пока не работает:
разрешение дисплея пока 1024 x 768 из-за чего изображение слегка вытянуто
не работает WiFi
зато работает Ethernet и Звук. В такой конфигурации на систему вполне нормально встаёт xcode, так что теперь можно заняться программированием под iPhone и iPad.
Разлочка iPhone 3Gs
Встала необходимость обновить iPhone 3Gs купленный через eBay на Тайване. Родная прошивка на телефоне была 4.1 с JeilBreak'ом - изначально телефон был привязан к AT&T. При покупке телефона, продавец честно предупредил, чтобы я не пробовал обновляться на более нoвую прошивку так как при этом Jailbreak будет утерян и телефон окажется бесполезным без симки AT&T.
Но прошивка 4.1 меня решительно не устраивала, ибо, даже Яндекс Карты сейчас требуют версию не ниже 4.3. Изучив проблему выяснил, что Jailbreak для моего устройства существует. После нескольких неудачных попыток, нашёл последовательность действий для Jailbreak Iphone 3Gs версии 5.1.1 с модемом 6.15.0. Вот что я сделал:
1. Подключил телефон к iTunes и сделал бекап устройства.
2. Обновил через iTunes версию прошивки до 5.1.1. После прошивки, как и следовало ожидать, телефон при попытке активации сказал, что сервер активации недоступен, и я должен попробовать ещё раз. ITunes при этом сказал, что SIM карта в телефоне отсутствует. Телефон превратился в красивый кирпичик с логотипом Apple.
3. Скачал и установил утилиту redsn0w. Утилита делает Jailbreak различных версий iPhone и iPad. При разлочке телефона я установил чекбокс Сydia и "downgade modem baseband" - на телефоне стояла baseband версии 6.15.0 и, хотя утилита разлочки, вроде как, её поддерживает, с этой версией прошивки аппарат работать я заставить не смог - поэтому redsn0w перепрошил модем более ранней версией 5.13.6.
4. После Jailbreak телефон стало возможно активировать, но звонить он по-прежнему не мог так как был залочен на AT&T. Кроме этого, при перезагрузки jailbreak слетал и нужно было повторять процедуру заново. Чтобы Jailbreak не слетал, нужно поставить из Cydia Rocky Racoon 5.1.1 Untether - эта утилита делает Jailbreak "непривязанным".
5. Чтобы заставить телефон работать с любым оператором его нужно разлочить, для этого ставим из Cydia утилиту uiltasn0w призванную снять блокировку. После перезагрузки телефон успешно нашёл сеть оператора MTC.
6. После того как телефон заработал, осталось лишь восстанавить персональные данные из iTunes и, вуаля -- телефон готов к использованию.
Внимание. Я не гарантирую, что выполнив шаги из данной инструкции ваш телефон будет работоспособен - то что сработало у меня не обязательно сработает у кого-либо другого. Jailbreak - требует индивидуального подхода в каждом конкретном случае. Всё вышепроделанное крайне не рекомендуется производителем телефонов, поэтому, все что вы делаете со своим телефоном вы делаете на свой страх и риск.