Jak uruchomić programy napisane dla PowerPC na nowym komputerze z OS X 10.9?

Dzisiejszy wpis nie będzie – dla odmiany – ani o AirPlay ani o appkach dla iOS. Mimo, swojego wieloletniego doświadczenia z Maczkami oraz OS X, stosunkowo rzadko opisuję aplikacje bądź rozwiązania problemów na tej platformie. Jest to spowodowane m.in. tym, że:

  • nie mam właściwie jakichś większych problemów ani z komputerem ani systemem (odpukać!) – być może mój workflow jest tak zoptymalizowany lub tak prosty, że nie ma wielu sytuacji, które zmuszają mnie do większego wysiłku umysłowego i wgryzania się w temat,
  • wiele rzeczy, które robiłem wcześniej na iMacu, obecnie wykonuję na iUrządzeniach, a co za tym idzie – rzadziej korzystam z komputera,
  • bardzo często rozwiązanie problemu wydaje mi się na tyle banalne, że jestem (prawdopodobnie błędnie) przekonany, że wszyscy inni już sobie poradzili z tym dawno, albo temat jest trywialny i nie warto zaśmiecać bloga czymś tak oczywistym.

Tym razem jednak, “wdepnę” na teren, który do tej pory eksploatował mocno Kuba i opiszę wyjście z sytuacji, zasygnalizowanej przez znajomego zajmującego się zawodowo usługami w branży poligraficznej. Oczywiście rozwiązanie ma swoje wady, i właściwie to taka trochę partyzantka i prowizorka, ale – co istotne – koszt realizacji jest niewielki (nie napiszę, że zerowy, bo jakby nie patrzeć czas spędzony na instalacji, konfiguracji, weryfikacji, itp. też ma swoją cenę).

Aby nie przedłużać przedstawiam opis problemu: klient posiada nowego MacBooka z procesorem i5 oraz OS X 10.8.3. Ponadto stare maczki oraz legalne licencje oprogramowania przeznaczonego dla starszych komputerów z procesorami PowerPC (np. Freehand MX). I wiele prac w nich stworzonych. Chciałby, rzecz jasna, móc wykorzystać te programy i dokumenty na nowym MacBooku. Jednak jak się domyślacie, skok technologiczny oraz zmiany jakie zaszły przez tyle lat w software i w hardware, uniemożliwiają taką bezbolesną podróż z przeszłości do teraźniejszości. Sposobów na zmianę tego stanu rzeczy jest kilka:

  • aktualizacja posiadanego zaplecza programowego do nowszych/najnowszych wersji – dość kosztowny zabieg,
  • próba konwersji dokumentów do formatu “zjadliwego” przez inne, nowe (również darmowe) programy – duże prawdopodobieństwo, że jeśli w ogóle się to uda, to zawartość dokumentów nie będzie zachowana w 100% w identycznej postaci,
  • zakup używanego komputera, z systemem w wersji wspierającej kod przeznaczony dla procesorów PPC – rozwiązanie tańsze niż aktualizacja wszystkich programów, ale dość kontrowersyjne, w sytuacji gdy chwilę wcześniej nabyło się (niestety bez wcześniejszego rozeznania) nowego, ślicznego i szybkiego MacBooka…
  • uruchomienie systemu ze wsparciem dla PPC, na wcześniej wspomnianym komputerze oraz instalacja leciwego softu.

Jak się domyślacie, zdecydowałem się na karkołomną próbę realizacji tego ostatniego.

Wiedziałem, że istnieje możliwość wirtualizacji systemu Mac OS X. Bliższa weryfikacja potwierdziła, że praktycznie każde z istniejących rozwiązań, czyli Parallels Destop, VMware Fusion oraz Oracle VirtualBox potrafią stworzyć i obsłużyć maszynę wirtualną z systemem Mac OS X… w wersji Server (dokładnie wersje 10.5/10.6). Ostatnia wersja systemu dla Maców, która wspiera wykonywanie kodu PowerPC to 10.6 czyli Snow Leopard. Pomimo faktu, że samego systemu nie da się zainstalować na komputerze z takim procesorem, to instalowany dodatkowo komponent o historycznie uzasadnionej nazwie – Rosetta, pozwala systemowi uruchomionemu na maszynie z procesorem Intela na wykonanie kodu programu stworzonego dla platformy PPC.

Niestety system Mac OS X w wersji serwerowej jest zabezpieczony kluczem, i nie jest tak popularny i łatwo dostępny. Krótkie sprawdzenie podaży tej wersji systemu na najpopularniejszym portalu aukcyjnym tylko potwierdziło, że nie będzie łatwo. Owszem, teoretycznie mógłbym ściągnąć obraz płyty z sieci, ale co z licencją/numerem seryjnym?

Postanowiłem więc sprawdzić czy da radę zainstalować system w wersji desktopowej. A jako oprogramowanie do wirtualizacji wybrałem darmowego VirtualBoksa. Okazało się, że mam płytę z systemem Mac OS X 10.6 zakupioną jak tylko ów się pojawił (moje iMadło przyszło do mnie fabrycznie bodajże z 10.5.2).

vb_01

Początki były dziecinnie proste – instalacja VB, tworzenie nowej maszyny wirtualnej przebiega właściwie bez jakichkolwiek zakłóceń i zaklęć, większość opcji można pozostawić w ustawieniu domyślnym. Ja poza wyborem systemu (typ: Mac OS X, wersja: 64 bity), zostawiłem sugerowany przydział pamięci RAM (2 GB), zalecaną przestrzeń dyskową i jej rodzaj (dynamicznie alokowany wirtualny dysk o pojemności do 20 GB, format VDI).

vb_02

Następnie dokonałem modyfikacji pewnych bardziej zaawansowanych ustawień po kliknięciu Settings dla właśnie utworzonego profilu maszyny wirtualnej. Na karcie System odhaczyłem napęd dyskietek w sekcji Boot Order. Zwiększyłem również na karcie Display ilość pamięci dla VM do 64 MB oraz włączyłem akcelerację 3D (w sumie to nie mam przekonania, że akurat te opcje robią jakąś odczuwalną różnicę, ale skoro karta graficzna ma 256 MB VRAM i nie najgorsze GPU, to postanowiłem zaryzykować).

Na karcie Storage w sekcji Attributes wskazałem wcześniej zrzuconą do obrazu DMG, płytę z instalką systemu Snow Leopard (zrobiłem tak, ponieważ mój napęd optyczny jest kapryśny i hałasuje, skorzystałem więc z opisywanego wcześniej tu patentu płyty zdalnej – z wykorzystaniem czytnika w pececie).

vb_03

Start maszyny, bootujemy z wirtualnego obrazu CD/DVD, pojawiają się napisy :P białe na czarnym i po chwili wszystko staje na takim etapie:

vb_04

Aha, cytując klasyka: Huston mamy problem. Gdyby to był Mac OS X Server to pewnie bazowy system by ruszył i instalacja została zainicjowana. Ale mamy system w wersji desktop, więc musimy znaleźć sposób by oszukać VirtualBoksa. Przejrzenie ustawień nie wniosło wiele ale postanowiłem wyłączyć opcję Enable EFI (special OSes only).

vb_05

W efekcie po restarcie VM powitało mnie tym razem poniższe okienko:

vb_06

Ewidentnie trop był dobry, więc zacząłem przeglądać zasoby internetu w poszukiwaniu rozwiązania bądź podpowiedzi, która naprowadzi mnie na właściwą ścieżkę. Kilkadziesiąt minut wnikliwego surfowania przyniosło skutek. Okazało się, że najbardziej pomocne były nie strony i fora związane z wirtualizacją a te poświęcone… hackintoshom.

Faktycznie problem leży (upraszczając nieco temat) po stronie tzw. boot loadera i zanim dokona się instalacji systemu, należy wystartować VM z boot loadera w odpowiedniej wersji, tak by “oszukać” VirtualBoksa, że ma do czynienia z system we właściwym wydaniu. Okazało się, że istnieją dwa (o komercyjnie dystrybuowanym kiedyś Rebel EFI z Psystara pisać tu nie będę) takie alternatywne boot loadery w postaci obrazów .iso. Jeden to EasyEFI (wersja testowana przeze mnie to v.2.2 ver.3) a drugi The Empire EFI. Do gustu przypadł mi zdecydowanie pierwszy, mimo świetnego logo nawiązującego do Gwiezdnych Wojen, którym wita użytkownika The Empire EFI. Niestety, ale ten ostatni chyba dłużej startuje, poza tym oferuje domyślnie niższą rozdzielczość ekranu.

Należy wskazać alternatywny boot loader jako “płytę startową” (karta Storage), uruchomić VM, zaczekać chwilkę aż pojawi się poniższy ekran (EasyEFI):

vb_07

a następnie wejść w menu VirtualBox -> Devices -> CD/DVD Devices -> Choose a virtual CD/DVD disk file… i wskazać obraz .dmg z instalką systemu. Wcisnąć klawisz funkcyjny F5, ikonka znajdująca się na środku ekranu powinna zmienić podpis z “EasyEFI” na “Mac OS X Install DVD”. Już tylko wciśnięcie klawisza Enter dzieli nas od rozpoczęcia procesu instalacji!

vb_08

Po wybraniu języka głównego systemu nim rozpoczniemy właściwą instalację, musimy jeszcze sformatować plikopartycję, na której 10.6 ma być zainstalowany, bez tego instalator nie znajdzie dysku:

vb_09

Jako, że system “gościa” ma służyć właściwie tylko jako launcher, środowisko pozwalające na uruchomienie starszych programów, odznaczyłem zbędne składniki, i zahaczyłem opcjonalny komponent, kluczowy w naszym zadaniu:

vb_10

Teraz był test cierpliwości. Początkowe zakładane 19 minut przedłużyło się do około pół godziny, a zwieńczeniem całego procesu był poniższy komunikat:

vb_11

Na szczęście okazuje się, że ten typ tak ma i podjęte czynności wcale nie zakończyły się niepowodzeniem. Niestety, wybranie przycisku Uruchom ponownie, nie restartuje poprawnie VM, w związku z czym należy dokonać tego wybierając opcję Reset w menu Machine VirtualBoksa. Co więcej, najprawdopodobniej powita nas znane już oko z komunikatem: “Fatal! No bootable medium found. System halted.

Raz jeszcze musimy wskazać wirtualny plik .iso z alternatywnym boot loaderem nim wystartujemy VM “od zera”. W przypadku EasyEFI ujrzymy następujący ekran:

vb_12

Wybranie ikonki jabłuszka i zatwierdzenie Enterem spowoduje uruchomienie zainstalowanego systemu. Działa nawet pod Mavericksem :) (10.9 DP4).

vb_13

Właściwie można by uznać, że problem jest rozwiązany. Dla potwierdzenia ściągnąłem pod zwirtualizowanym Snow Leopardem program viJournal w wersji Universal i wymusiłem uruchomienie kodu PowerPC. Poniżej efekt:

vb_14

No tak, ale wypadałoby jeszcze usprawnić komunikację między gospodarzem (host) i gościem (guest). Niestety z uwagi na brak oficjalnego wsparcia systemu Mac OS X w wersji desktop, nie ma dla niego zestawu “sterowników” zwanych VirtualBox Guest Additions. To oprogramowanie zapewnia m.in. działanie drag&drop, wspólny schowek (Shared Clipboard), udostępnione foldery (Shared Folders) i inne udogodnienia. Pierwsza myśl jaka mi przeszła przez głowę: użyję pendrive’a jako nośnika między oboma systemami! Fajnie, tylko… nie działa. Pendrive się nie montuje w systemie gościa, więc nie mamy dostępu do jego zawartości. Zapewne Guest Additions załatwiłyby ten problem rownież… Zonk.

Kolejna myśl: sieć lokalna. Oczywiście najpierw upewniłem się, że w obu systemach załączone jest Udostępnianie plików (Preferencje systemowe -> Udostępnianie), dodane katalogi i przyznane odpowiednie prawa użytkownikom. W dodatkowych opcjach na wszelki wypadek załączone zostało udostępniane przy użyciu obu protokołów, tj. AFP oraz SMB. Cóż… na wirtualnym 10.6 przeglądanie sieci nie wyświetla żadnych zasobów sieciowych, zaś próba podłączenia się do widocznego z poziomu gospodarza wirtualnego Snow Leoparda, zwraca komunikat błędu.

vb_15

No tak, czyli mamy zwirtualizowany system, na który dane możemy wrzucić z fizycznej płyty CD/DVD, obrazu takowej w postaci pliku .dmg/.iso oraz ściągając je z Internetu! Chwila kontemplacji podbródka a chytry i przebiegły plan skrystalizował się w meandrach zwojów mózgowych. Przecież mogę zainstalować na obu systemach DropBoksa i w ten sposób, trochę na około, za pośrednictwem Internetu wymieniać dane między dyskami gospodarza i gościa. No tak, ale “na dzień dobry” DropBox to liche 2 GB za darmo…

Czas wrócić do sieci lokalnej. Sprawdzam adresy IP maszyny fizycznej i wirtualnej. Są inne :) I tak ma być! Ale przynależą również do innych podsieci. W takim razie wciskam Command+K wywołując polecenie Połącz z serwerem… z menu Idź Findera. Podaje adres maszyny wirtualnej i… błąd! Czas zobaczyć czy może w drugą stronę zadziała?

vb_16

Jest dobrze, pada monit o nazwę użytkownika i hasło. Udało się! Mogę teraz spokojnie podmontować dowolny zasób iMaca (oraz również dysk z peceta) pod wirtualnym systemem:

vb_17

Pozostaje jeszcze kwestia uruchamiania systemu. Na chwilę obecną każde ponowne uruchomienie VM wymaga sprawdzenia w ustawieniach Storage, czy obraz alternatywnego boot loadera jest wskazany jako wirtualny dysk CD/DVD; inaczej zainstalowany system się nie uruchomi. Lipa, żonglowanie podmontowanymi obrazami i/lub fizycznymi dyskami CD/DVD z napędu hosta, to mało atrakcyjne zajęcie. Na szczęście na dysku EasyEFI.iso znajdziemy pakiet Chameleon:

vb_18

Instalacja tegoż, powoduje wgranie bootloadera oraz rozszerzeń systemowych (kext) do naszego zwirtualizowanego Snow Leoparda.

vb_19

Na koniec procesu uruchamia się Terminal, w którym należy podać hasło oraz program Kext Utility, którego zadaniem jest naprawa przywilejów modułów. U mnie aktywność instalatora zaowocowała zgłoszeniem błędów z instalacją kilku rozszerzeń, zaś Kext Utility zakończyło pracę z radosnym kelnerem panikarzem (ale tylko za pierwszym razem) ;) Dzięki bogom wszelakim, VM uruchamia się i póki co nie zauważyłem by stabilność systemu została w jakikolwiek sposób zachwiana. Nie da się jednak ukryć, że dobór rozszerzeń wymaga rozwagi i… odwagi. Tak czy inaczej, dzięki „kameleonowi”, 10.6 wstaje o wlasnych siłach, bez pośrednictwa EasyEFI w wirtualnym napędzie!!!

Reasumując: mamy działający system 10.6 z dostępem do Internetu oraz zasobów sieci lokalnej, zdolny do egzekucji programów pisanych na procesory PowerPC. Pełen sukces? W zasadzie tak, są jednak drobne “ale”:

  • jeśli chcemy skorzystać z fizycznej płyty w napędzie komputera musimy z menu VirtualBox (Devices -> CD/DVD Devices) wybrać opcję Host Drive ‘nazwa napędu’, niestety nie działa nagrywarka pod VM, zatem napęd optyczny tylko do odczytu (być może da się to zmienić, ja temat odpuściłem),
  • zdaża się, że nie działa poprawne zamykanie systemu 10.6, po wybraniu tej opcji i tak trzeba ręcznie wyłączyć VM, najlepiej klikając przycisk zamknięcia okna i wybierając opcję: Power off the machine,
  • restartowanie zdaje się działać od czasu do czasu również wybiórczo – jeśli “zamieszamy” zbytnio, niektóre procesy systemowe mogą przestać funkcjonować poprawnie; w takim wypadku postępujemy jak w przypadku zamykania, można ew. wykonać jeszcze Reset z menu Machine VirtualBoksa,
  • gdy pod wirtualnym 10.6 zechcemy wybrać opcję Ten Mac… z menu Jabłko – Finder się restartuje,
  • zamiast wyłączania VM możemy ją zahibernować, klikając przycisk zamknięcia okna i wybierając opcję: Save the machine state, jednak zdarza się, że po przywróceniu maszyny, występują sporadyczne kłopoty z siecią lokalną, 
  • nie działa drag&drop, wspólny schowek, współdzielone foldery, obsługa USB i wiele innych rzeczy,
  • nie polecam aktualizacji zwirtualizowanego Snow Leoparda do najnowszej wersji (10.6.8) – przynajmniej bez zrobienia kopii zapasowej dysku wirtualnego, 
  • last but not least: nie można wybrać z poziomu VM innej niż domyślna rozdzielczości ekranu; jak wcześniej wspomniałem dla The Empire EFI jest to 1024 x 768, zaś dla EasyEFI 1280 x 1024; oczywiście w sieci można znaleźć kilka różnych przepisów, jak tę sytuację zmienić, niestety u mnie udało się – próbując wymusić rozdzielczość 1440 x 900 x 32 – osiągnąć w trybie okienkowym tylko 1152 x 864…; mimo zmian ustawień panelu preferencji Chameleon, nie udało mi się uruchomić na pełnym ekranie VM w natywnej rozdzielczości mojego iMaca, tj. 1680 x 1050. W trybie okienkowym dobrym wyjściem jest też korzystanie z opcji Switch to Scale Mode znajdującej się w menu View VirtualBoksa, aczkolwiek zdaje się ona zniekształcać proporcje ekranu (wysokość zwiększona w stosunku do szerokości).

Nie jestem pewien czy czegoś nie pominąłem, jeśli podany wyżej przepis Wam nie zadziała, lub znacie/znajdziecie sposoby na wyeliminowanie opisanych ograniczeń – będę wdzięczny za wszelkie pytania, sugestie i wskazówki.

0 0 vote
Article Rating