MacintoshPi to mój mały projekt, pozwalający na uruchomienie pod Raspberry Pi pełnoekranowych wersji systemów Apple: Mac OS 7, Mac OS 8 i Mac OS 9 z dźwiękiem, aktywnym połączeniem internetowym i emulacją modemu. Wszystko bez menadżera X.org, a wyłącznie za pomocą multimedialnej biblioteki SDL2 i z poziomu CLI – Raspberry Pi OS Lite. Dzięki temu emulatory wykorzystują pełną moc Raspberry Pi, są stabilniejsze i użyteczne w połączeniu z dodatkowym retro-oprogramowaniem. Instalacja wymaga uruchomienia jednego skryptu na czystym systemie Raspberry Pi OS Lite i poczekania około dwóch godzin na kompilację i instalację pakietów. Dodatkowo, dzięki zawartemu w projekcie dokumentowi, w dual-boot możliwe jest umieszczenie najszybszego (bare-metal) emulatora Commodore 64/128/PET BMC64 budując w ten sposób ciekawy retro pakiet na jednej karcie SD. Cały projekt MacintoshPi działa z urządzeniami Raspberry Pi Zero 2W, 2, 3, 3B, 3B+ (na razie nie działa z wersją 4).
Poniżej film przedstawiający możliwości projektu MacintoshPi:
Tutaj można znaleźć dużo dłuższą wersję tego filmu.
Składniki projektu
W skład projektu wchodzą poniższe skrypty bash'owe auto-kompilujące i instalujące dla Raspberry Pi:
- Emulator Macintosh 68K Basilisk II obsługujący systemy Mac OS 7 (System 7.5.5) i Mac OS 8,
- Emulator PowerPC SheepShaver obsługujący system Mac OS 9,
- Emulator Commodore 64/128/Pet VICE,
- Wirtualny Modem wykorzystujący projekty tty0tty i tcpser, działający z powyższymi dwoma emulatorami dla produktów Apple, Commodore oraz z samym Raspberry Pi OS i pozwalający na łączenie się dowolnym oryginalnym retro-oprogramowaniem terminalowym z dzisiejszymi telnetowymi BBSami,
- Emulator CD-ROM, DVD-ROM CDEmu, pozwalający na montowanie pod Linuxem obrazów CD (iso, toast, cue/bin, mds/mdf itp.) – działa z emulatorami BasiliskII i SheepShaver oraz z Raspberry Pi OS. Emulatory są automatycznie skonfigurowane do obsługi tego wirtualnego napędu CD-ROM.
- Spójny launcher uruchamiający te wszystkie systemy w różnych rozdzielczościach (po restarcie) i w różnych konfiguracjach,
- SyncTERM – program do łączenia się z BBSami z poziomu Raspberry Pi OS kompilowany w połączeniu z biblioteką SDL,
- Informacje jak uruchomić w dual-boot Raspberry Pi OS z najszybszym emulatorem Commodore dla Raspberry Pi BMC64 – (bare metal/low latency emulator).
Obrazy systemów Mac OS zostały prekonfigurowane do obsługi połączeń internetowych.
O moim Macintosh Classic II
Moją wersję MacintoshPi napędza Raspberry Pi 3B+. Obudowę Macintosh Classic II zakupiłem na eBay – była kompletnie żółta, ale do stanu zgodnego z fabrycznym przywróciłem ją korzystając z wody utlenionej 18% i odpowiedniego naświetlania.
Ekran LCD IPS 10,1'' 1024x600px HDMI Waveshare 11870 jest obrócony o 180°, aby okablowanie nie przeszkadzało górnej, wąskiej ramce Macintosha. Przestrzeń między płaskim ekranem, a pozostałościami kształtu CRT uzupełniłem wydrukiem 3D, który został zaprojektowany na potrzeby projektu twórców kanału YouTube 2GuysTek.
Ekran Waveshare jest nieco zbyt szeroki, ale odpowiednie operowanie plikiem config.txt pozwala software'owo obrócić ekran i ustalić dokładną pozycję wyświetlanego obrazu, dla każdego z systemów lub programów oddzielnie (po każdorazowym restarcie). Ekran jest też nieco zbyt niski, dlatego puste przestrzenie wypełniłem czarnym bristolem i praktycznie nie widać tych elementów (wyglądają jak czarne tło ramki otaczającej ekran) – zalecam jednak wykorzystanie innego monitora, którego rozmiar będzie nieco większy, a dopiero software'owo zmniejszyć rozmiar i ustalić właściwą pozycję wyświetlanego obrazu.
Klawiatura i mysz to zestaw Logiteh MK295 Silent Wireless Combo – są tylko nieznacznie zbliżone stylem do dostarczanych w tamtych latach peryferii, ale są też bezprzewodowe i korzystają z pojedynczego dongla bluetooth. Dodałem dwa głośniki podłączone do wejścia audio analog/jack Raspberry Pi 3B+ i do rozgałęźnika. Wszystkie te elementy są zintegrowałem wewnątrz obudowy komputera Apple Macintosh Classic II.
Źródła projektu można znaleźć na
Dual-boot Raspberry Pi OS i BMC64
Kliknij tutaj, aby wyświetlić instrukcję uruchomienia MacintoshPi w trybie dual-boot z BMC64.
Wsparcie
Możesz przelać dowolne środki na moje konto PayPal, jeżeli chcesz wesprzeć ten projekt.
przy tych gabarytach może zmieścilo by się zasilanie?
powiedzmy na tydzień
Faktycznie – wtedy byłby to komputer całkowicie pozbawiony okablowania. Dobry pomysł :)
podziwiam pracę wykonaną, żeby to wszystko śmigało. Zainstalowałem na Raspberry Pi B+ Zostało mi przygotować obudowę dla Malinki z 2,8 calowym wyświetlaczem i jakimś rozwiązaniem dla zasilania – nie ma jak spełnienie marzeń z dzieciństwa. DZIĘKUJĘ
OK – podziel się tu fotką gotowego produktu, jak już skończysz prace :) powodzenia i pozdrawiam.
Uruchomiłem na Pi400 wystarczyło wykorzystać nowszą wersje SDL2 tj. zamiast https://www.libsdl.org/release/SDL2-2.0.7.tar.gz wykorzystać https://www.libsdl.org/release/SDL2-2.0.18.tar.gz.
Dodatkowo miałem problem z cd-rom oraz ethernetem więc na szybko zmieniłem w plikach konfiguracyjnych:
– ‚nocdrom false’ -> ‚nocdrom true’
– ‚ether slirp’ -> ‚#ether slirp’.
Zakładam że zarówno cd-rom jak i ethernet jest do uruchomienia (np. ethernet może działa tylko wymaga podłączenia przewodu i postawienia interfejsu, może analogicznie jest z cd-rom tj. może wystarczy coś podmontować – nie wiem nie próbowałem, powyższa proteza w plikach konfiguracyjnych była tylko wynikiem mojego pośpiechu). Jak będę miał chwile czasu to może spróbuje uruchomić powyższe.
Ogólnie skrypty to mega profeska :)
A i jeszcze jedno. Tak jak jest w tym przewodniku wykorzystałem stary obraz raspios (buster 32bit) – link poniżej:
https://downloads.raspberrypi.com/raspios_oldstable_lite_armhf/images/raspios_oldstable_lite_armhf-2022-04-07/2022-04-04-raspios-buster-armhf-lite.img.xz
To może dodaj do repozytorium GitHub swoją wersję (jako nowy plik dla Pi400) i zrób Pull Requesta. Chętnie przetestuję i może wspólnie naprawimy te bolączki. Projekt idealnie pasuje na Pi400 – naklejka Macintosha na klawiaturę Pi400 i gotowe :)