воскресенье, 3 февраля 2008 г.

"Наш путь извилистый. Перспективы светлые!" (Товарищ Мао)

Дайте в лапы мне боян,
Я его порву к буям!

Рискну чуток "пораскинуть мозгами" по поводу установки и работы честно купленной за $130 Mac OS X Leopard на довольно старенький комп с AMD процессором на борту. Читать никого силком не гоню, так что за резковатые выражения приношу свои извинения заранее. Материальчик ориентирован в первую очередь на людей, использующих в повседневной работе *nix системы (Unix, Linux, Solaris, *BSD) и имеющих желание попробовать что-то ещё, а также на всех, кто всерьёз подумывает о покупке настоящего Macintosh-а. Все программы, на кои буду ссылаться, либо freeware, либо OpenSource. Если программа shareware - об этом будет упомянуто с указанием накладываемых ограничений, ссылок на коммерческие пакеты не будет (no pay - no gay).

Что нужно знать и уметь AMD-шнику, желающему поставить себе Mac OS X (или "Курс молодого бойца"):

1. В течение 15-30 минут утром и вечером повторять вслух и с выражением мантру:
"AMD - нашефсио! Intel - ацтой!!!"
О том, как это делать правильно, можно научиться, посмотрев запись публичных выступлений г-на Геббельса, министра пропаганды Третьего Рейха.

2. Выучить наизусть приведённые ниже ссылки и прежде чем орать дурным голосом на форумах: "Памагите бландинке с галубыми глазами разобраться в конфиге Radius-a", - постарайтесь чуток покопаться самостоятельно:
Wiki
Новости 2-го Белорусского фронта
Буржуйский форум
Наши 5 копеек
Враг не пройдёт! За AMD! В атаку!
Откуда дровишки? Из лесу вестимо...
То самое место... Ага...
Этот линк для отморозков и настоящих джедаев... Удачи и творческих узбеков...

В принципе этого должно хватить на первых порах. Надеюсь, что вы также прочли предыдущую заметку и ссылки на macports и fink не будут в диковинку.

"Взялся за грудь,
Так скажи что-нибудь..."

На данный момент ситуация с установкой честно купленной Mac OS X Leopard на писюк с процом AMD описывается одним словом: "жопа". Да и с Tiger-ом не так уж чтобы очень... И связано это по сути тем, что в линейке своей продукции Apple не использует AMD. Мало того, многие программы имеют специальные ограничители, препятствующие их запуску и нормальной работе на AMD. В двух словах - программа спрашивает процессор: "Ты кто?", и ежели оный в ответ радостно орёт: "Ja, ja, ja!" - прога выкидывает crash report и делает харакири. О том, как правильно делать себе харакири можно почитать, пройдя по этой ссылке. Рекомендованными к установке на AMD можно считать релизы Jas-10.4.8 и TubGirl-10.4.10, условно рекомендованным - Zephyros_10.5.1 и будущий Zephyros_10.5.2. Всё прочее потребует дополнительных самостоятельных телодвижений в виде пересборки инсталляционного образа dvd. А оно нам надо?

Очередная порция "библейских заветов":

1) Работает - НЕ ТРОЖЬ! Отключи автоапдейты везде, где только возможно....
2) Security updates на первых порах (да и не на первых тоже) обходи стороной.
3) Любые эксперименты с системой делай на её клоне. Т.е. сперва клонируй систему целиком на другую партицию, а потом развлекайся. Если получилось нормально - молись и пробуй сделать то же самое на production.

Теперь поменяйте памперсы и приготовьтесь к "основному блюду"! Начнём с азов: "субъект... объект... метод... и место имения...". IDE диски постепенно покидают нас, производители "мамок" как всегда "зажимаютЪ копейку" и ставят контроллеры JMicron. Поубывав бы... В этом случае надо смотреть на наличие поддержки вашего sata контроллера в инсталляционном dvd дистрибутиве. Вероятность где-то процентов 70%, что особо нетерпеливым придётся добавлять драйвер самостоятельно, перепаковывая диск. Сложного здесь ничего нет: тянем нужный драйвер, делаем имидж dvd (man dd, man hdiutil), монтируем имидж на запись, подсовываем дрова в /System/Library/Extensions/ и формируем новый кэш дровишек /System/Library/Extensions/Extensions.mkext (man kextcache), записываем результат творчества на болванку и имеем длительный множественный оргазм, если удалось загрузиться и начать установку системы. Как правило найти нужный драйвер можно на честно купленном диске с дистрибутивом. Но гораздо чаще источником проблемы является отсутствие идентификатора вашего устройства в файле Info.plist, описывающем свойства того или иного драйвера или модуля (в просторечии именуемого "кекстом" по окончании имени каталога с драйвером). В этом случае добавляем идентификатор, любезно пропущенный компанией Apple, создаём для очистки совести новый кэш и записываем наш диск. Эх, если бы все наши беды решались подобным образом...

Полагаю что все уже сгоняли в гастроном за отдельным винтом для Mac OS X, перекинули в "Бивисе" опцию грузиться сперва с dvd, а при отсутствии загрузочного диска - с этого нового винтика и встаёт раком вопрос: как его разбивать и что вообще дальше делать? "Надо думать, Петька... надо думать..." говаривал Чапай и был таки прав! Mac OS X (в дальнейшем может использоваться уменьшительно-ласкательный термин "Макака") не поддерживает целый ряд характерного для писюков оборудования - начиная с флопиков и ... (посмотрите просто на спеки Макбуков - всё станет ясно), посему ОЧЕНЬ РЕКОМЕНДУЕТСЯ при возможности подобную "дребедень" выкинуть из писюка сразу же или, как минимум, выключить в бивисе, в противном случае это дело занимает irq, которые нам на вес золота и может являться причиной тормозов а то и краха системы.

Затем по-хорошему потребуется дистрибутив Linux-а с ядром 2.6.20 или выше и скомпиленным модулем hfsplus для записи на партиции Mac OS X с отключённым журналированием. Рекомендую не использовать уже имеющийся установленный дистрибутив Linux-а для этих целей, так как в нашем случае, после успешной установки Mac OS X, необходимо, как минимум, привести в соответствие группы и пользователей Линя и Мака (сделать в Linux одинаковый с Mac OS X набор групп, пользователей, gid и uid соответственно). Кроме того нам нужен GRUB, как воздух, особенно если наши гурманские пристрастия не ограничиваются "попсовой культурой" ("Я съем вашу печень и запью её кьянти..."/Доктор Лектор). И не помешает primary FAT раздел, желательно сделать его первым на диске и отдать где-то до гигабайта, поскольку основная задача будет нести в бутсекторе установленный GRUB, в каталоге /efi - EFI загрузчик (об этом подробно чуть позже) и выполнять прочие функции фатопомойки, так как до сих пор универсальной "мусорной" файловой системы никто не придумал, хотя критерии давным-давно известны. Всю разметку нового диска AMD-шникам стоит выполнить предварительно на стадии установки на него "Спасательного Линуха" (Rescue Linux). Ставить Мак на логический диск extended partitions не пробовал, посему ничего путного сказать не смогу, но, судя по BSD корням, это делается легко и непринуждённо. Основная идея, которую хочу донести по разметке диска такова: первый primary FAT partition <= 1Gb под EFI, GRUB и "прочее", последний раздел (фиолетово, буде он primary или extended logical) размером сколько не жалко под ext2/ext3/reiserfs3.6 и монтируемый как / - для установки Linux, с которой и начинаем работу с новым диском. Фишка тут в том, что загрузившись в Linux можно грохнуть любой primary раздел, забубенить на его место extended и нарезать в нём логических дисков до... много короче. То есть сделать primary раздел сразу после FAT-а для основной рабочей Макаки вроде как очевидное решение, но потом надо учесть возможность копирования/клонирования/восстановления работоспособной системы да и рабочие программы в Маке компактностью не отличаются. Так что дерзайте, Господа хорошие... В добрый путь...


Прикинули значит как у нас будет выглядеть диск, тупенько поставили первой системой Linux, проведя в процессе установки разметку/разбивку/распивку диска и засадив GRUB в MBR для начала, грузимся в него, родного, и первым делом устанавливаем GRUB в бутсектор первого primary диска. Например так:

grub-install /dev/sda1


Теперь у нас Грубиян продублирован. Мак в процессе установки (прям как винда) перетирает MBR, и для загрузки себя, яхонтового, может пользовать EFI или Darwin boot (корни и у того и у другого в бутлоадере BSD систем, впрочем там же зарыты корни и нового загрузчика Вистоньки). После старта на бутпромпте "грузило" Мака даст нам выбор: какой именно раздел стоит "пнуть", и вот тут уж наш GRUB покажет на что способен "инструмент в руках мастера", если выбрать тот раздел, на который мы его только что засунули.

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

После дублирования Грубияна в бутсектор первого primary диска тащим EFI-V8.0 или выше, создаём каталог efi в корне FAT раздела или на разделе с установленным Linux-ом, распаковываем туда архив, читаем readme и в /boot/grub/menu.lst вносим строку типа:

title Darwin
kernel (hd0,0)/efi/boot_v8


Или набираем тупенько каждый раз в командном режиме указание на загрузку нашего "кернела". Мы только что установили EFI загрузчик для нашей будущей Mac OS X. Наиболее бдительные товарищи спросят: "А на кой ляд оно нам надо? С нашими-то яйцами...", простите, с AMD процессорами конечно же. Отвечаем: "Для того, чтобы в тесте Geekbench" не писали чепуху, что у нас дескать Hackintosh, и для решения всех возможных вопросов с загрузкой Мака в будущем". По сути же нам оно - как собаке пятая нога. Но и лишним не будет, так как что-то наметилась тенденция ядра делать с привязкой к EFI. В хозявстве знать пригодится.

Диск размечен, EFI установлен. Песочница готова. Теперь можно воткнуть dvd с Маком в привод и, прихлёбывая коньячок-с, тупенько клацать мышой по кнопоськам в ожидании когда же это безобразие закончится...

ACHTUNG: после того, как вы проклацали куда и что именно ставить, пойдёт зело муторная операция "verify your installation disk" -> смело жамкайте на "Skip".

Ежели вы решили отдать свои симпатии Jas-10.4.8 или TubGirl-10.4.10, то вероятность внезапного воспаления геморроидальных узлов невелика. Всё, что вам предстоит ещё сделать - так это лишь добиться включения аппаратной акселерации видео (многие программы отказываются работать без неё), выучить шорткаты и пройтись Чудо-программой, которая MUST для всех AMD-шников по всему разделу с только что установленным Маком. Почитать о ней можно в сводках 2-го Белорусского фронта. Но тупо сразу натравливать её на "всё, что шевелится", не советую. Если что-то нормально работает - НЕ ТРОЖЬ! По поводу работы с железом, в частности с видеоадаптерами, есть дивная инструкция и не менее чудные шаблоны для самых маленьких. Похоже, что применение данной методы ограничивается только рамками вашей фантазии. Проверить ваши достижения на ниве аппаратной поддержки видео поможет OpenGL Extensions Viewer. Для счастливых обладателей карточек nVidia есть популярный "набор стероидов". Владельцы ATI нервно изучают HCL (Hardware Compatibility Lists), владельцы акселераторов Intel GMA вообще не парятся с подобной ерундой. У них как правило всё и так хорошо.

Последний шаг на пути победы коммунизма - загрузка обратно в Linux и приведение списка групп, пользователей, номеров uid, gid к точному соответствию с оными в Маке. Это позволит делать безпроблемные бэкапы/восстановление напрямую из Linux без "коллизий и оказий". Поверьте, это дорогого стоит.

Как только мы добились стабильной загрузки только что установленного Мака, двигаем обратно в Linux и под рутом выполняем похожий скриптик:


#!/bin/sh

mkdir -p $HOME/backup/bootsectors
cd $HOME/backup/bootsectors

for i in $( fdisk -l | grep \/dev \
| grep -v Disk | awk '{ print $1 }' \
| awk -F/ '{ print $3 }' )
do
dd if=/dev/$i of="$i"_bootsector bs=512 count=1
done

for i in "sda" "sdb" "sdc" "sdd"
do
dd if=/dev/$i of="$i"_bootsector bs=512 count=1
done



Это мы в экстренном порядке создали бэкапы бутсекторов и MBR всех дисков и разделов в системе. Можно конечно же всё это проделать и не выходя из Мака, но разделение диска на disk и rdisk, хоть оно и логично для некоторых, но мне как-то не нравится. Да и доступа к разделам Линукса из Мака без плясок с бубном нет. Поэтому самым разумным решением будет хранить подобные бэкапы на primary FAT разделе, о котором уже неоднократно говорилось.

Если же вам леопарды нравятся зело более, чем тигры, готовьтесь к безудержному веселью:

Любовь нечаянно нагрянет,
Когда её совсем не ждёшь.
И каждый вечер сразу станет
Удивительно хорош, и ты поёшь!
/В.Лебедев-Кумач/

Донесения фронтовых спецкоров не радуют. Плюс к этому - многочисленные доклады о нестабильной работе, постоянных проблемах с сетью, видео, кошмарами с перезагрузкой и появлением на мониторе кадров из фильмов Хичкока вместо режима sleep (вместо сна, если быть проще). Если вам повезло поставить "Зефирку", запустить и добиться стабильной работы - радуйтесь. Если нет - не велика беда. Вот, возьмите конфету, нет пока никакой нужды в запуске Лео на AMD. Может поэтому и "универсального лекарства" нет.

Ваш покорный слуга коптит небо в обнимку с Тигрой, чего и всем желает. Леопарды ноне  капризные, маленькие. Пусть чуток подрастут, тогда и подумаю насчёт апгрейда.

"Эй,Тренер!
А чего эт ты тут разорался, а!?"

Действительно, чего эт я так разошёлся... Вот что по этому поводу пишет нам товарищ iZoPuH на славном форуме ru-board:

История Mac OS X на PC

Когдато давно, в американьской деревеньке купЕртино жил один чувак звали его Джоб Стивс. И однажды он изобрел Макинтош (правда его изобрел Воз Стивняк, но Джоб повернул так, что все думают, что это он изобрел, а Воз вроде как сбоку тусовался) и приделал к нему Макось, и так оно всем понравилось, что все просто свихнулись.

А в соседнем селении редмундово, неспеша пропивал свой век другой чувак, звали его Гей Билц. И Гей Биллцу макинтош очень понравился, даже не столько сам макинтош, а его макось. Надо сказать на макось он просто запал, как и все кому удавалось её поставить.

И вот однажды Гей Биллц БРОСИЛ ПИТЬ! Побрился, одел на лицо положительный имидж, улыбнулся, пришел в таком виде к Джобу Стивсу, и говорит: Слыш чувак, давай мы твою макось будем распространять и на писюках применять. Джоб Стивс сначала и против небыл, но его что-то смущало. Не сказать, что он писюки не любил, а вот Гей Биллц ему не понравился. Он ваще геев не любил, хотя и сам таковым являлся, но только никому не говорил. Ну не будем отклоняться, просто скажем, что Джоб сразу понял, что Гей его обязательно кинет.

Вот совсем не понравился ему этот неискренний Гей Биллц, и отослал его наш Джоб Стивс к первоисточникам, другими словами нахеръ. И стал писюки громко на весь мир гнобить, мол глючные они у вас, и греются сильно, и ваще корпуса у них серые некрасивые.

А сам тем временем, скинулся с другими чуваками и купили видавший виды писюк. И долгими купертинскими ночами, сидя для конспирации в подвале, они пытались свою макось на писюк прикрутить. Потому, что на самом деле понимали, что писюк машина приличная, и глючит она в основном из-за софта. И так пробовали, и этак, ну нихера не выходит, хоть ты тресни, то не грузится, то повисает, то серый экран с какимто квадратиком с нерусскими словами.Трындец вопщем. А однажды парни в тырнете наткнулись на страничку Maxxussa, качнули нужные патчи, и все у них заработало. И все следующие релизы с его помощью были лучше и стабильнее, но когда сделали версию 10.4.4 максуса решили грохнуть, чтобы баблом не делиться. А номера версий они теперь просто так меняют, у нас это называется маркетинг, и кроме мерчендайзеров им никто у нас не занимается.

А Гей Биллц, хоть и расстроился тогда но не сильно. Чуваком он оказался деятельным, и малость покумекав с3,14здил исходники KDE, прикрутил их к досу, и назвал это окна№95, на чем сильно поднялся и стал вполне уважаемым человеком..... но это уже совсем другая история.
/iZoPuH/

Всё познаётся в сравнении. Не попробовав, не разобравшись, нельзя с чужих слов выработать СВОЁ мнение о чём-либо. Это будет всего-лишь Ваша оценка ЧУЖОЙ точки зрения. Качество самой системы Mac OS X и прикладного ПО для неё (равно как и качество средств разработки) заслуживает всяческих похвал. Если Вам понравится и сфера Вашей деятельности позволит безболезненно использовать Mac - то инвестиции в линейку Mac от Apple себя оправдают. Как минимум.

В следующей заметке черкну кратенько пару строк об используемом мной ПО.

Удачи.

2 комментария:

virens комментирует...

Мне не очень понятны такие извращения. Нет, правда.

Мне нужна стабильная система, без глюков, тормозов и проблем с оборудованием за мои же деньги. И не мне одному, кстати. :-) Чтобы я знал, что и как делается в системе.

Как любят спрашивать на конференциях: "где вы видите практическое применение" подобных извращений?

sda комментирует...

Мне не очень понятны такие извращения. Нет, правда.
Как любят спрашивать на конференциях: "где вы видите практическое применение" подобных извращений?


постараюсь в следующей заметке дать ответ на сей прекрасный вопрос, поскольку надо же хоть как-то объяснить за что мы выложили $130 компании Apple... по поводу открытости: исходники доступны под лицензией Apple (включая ядро):

http://www.opensource.apple.com/darwinsource/

систему можно представить в виде "пирога": Darwin ядро + BSD база + OPENSTEP/NextSTEP/Cocoa интерфейс.

Мне вот например "не очень понятно", почему сертифицированная Unix система, полностью соответствующая POSIX требованиям, в контексте названа как "подобное извращение"? Если же речь собственно о сути установки, то скажите мне: кто вам даст на месячишко-другой в полное распоряжение Mac чтобы попробовать его в рабочем окружении, разобраться и решить, получим ли мы какие-то выгоды от замены писюков на маки или нет? То есть подсчитать не торопясь TCO, очертить сферу применения, посмотреть на использование одних и тех же документов на машинах с Linux/MS/Mac? Как выяснилось недавно относительно одинаково выглядит лишь TeX/LaTeX при условии наличия/использования одинаковых шрифтов.

Более того, по условиям лицензии Apple использование подобных установок в production запрещено. Так что речь идёт именно о том, чтобы попробовать что-то новое и составить об этом своё мнение. При использовании же этой системы на оборудовании Apple о проблемах с оборудованием, о тормозах и прочих "радостях" можно будет только мечтать (типа "а вот раньше было... да... ").

По поводу применения - пожалуйста, обратите внимание на статейку в Вики:

http://en.wikipedia.org/wiki/Mac_OS_X

поскольку система полностью POSIX сертифицирована, то проблем с ПО в принципе нет.