[Перевод] Собираем Mac mini на Raspberry Pi Zero

wpjsdeoop4lnk2ryqtle7smkr1g.png

Несколько лет назад я увидел собранный Джоном Ликом из RetroMacCast миниатюрный Macintosh, размер которого был в три раза меньше реального. Меня одолела зависть…Я очень хотел собрать аналогичный, но тогда был слишком ограничен в ресурсах. Однако время шло, и технологии не стояли на месте. Появление более компактных и дешевых компонентов существенно облегчило задуманный тогда проект, и в итоге он воплотился в жизнь.

Сегодня я подробно расскажу вам все детали этого процесса, чтобы и вы могли собрать себе такое же чудо. Единственный нюанс — это необходимость доступа к 3D-принтеру, остальные детали легко доступны.

rjaljmrq5locsqwg7rohwilgkqo.png

eajusmvrdqrtmvo-018ntgsgqr8.png

3ewo_1vamf3ul6gtobn6rwqrege.png

Необходимое оборудование


Raspberry Pi


  • Raspberry Pi Zero W. W-версия оснащена WiFi.
  • 40-контактная гребенка.
  • Теплоотвод (рекомендуется).
  • Совместимый источник питания (желательно модель со встроенным выключателем On/Off).
  • Кабель mini HDMI — HDMI (для настройки).

На Amazon предлагается множество комплектов, в которых все это уже есть. Я использовал этот. Мини-корпус для Raspberry не обязателен, но будет не лишним и позволит защитить его в процессе сборки и настройки.

Другие компоненты


  • ЖК-дисплей 640×480.
  • Короткий GPIO-шлейф мама-мама. Я взял 6-дюймовый экземпляр. Более длинный будет сложно втиснуть в корпус.
  • Клавиатура и мышь. Клавиатура потребуется только для настройки, так что можно просто взять от подручного ПК, а вот беспроводная мышь пригодится в принципе.
  • Небольшой microUSB-хаб без питания.
  • Монитор с HDMI-входом и соответствующим кабелем. Он понадобится только для начальной настройки.
  • MicroSD-карта на 32Гб.
  • Bluetooth-колонка (необязательно).

Обратите внимание, что проект реализован с конкретным дисплеем. Клавиатура нужна только для настройки и после можно будет ее отключить. Это уже будет зависеть от того, как вы планируете использовать готовый мини-Mac. А вот отдельная мышь определенно будет нужна.

Для корпуса


Инструменты


  • Шестигранный торцовый ключ 2.5 мм. Вот полный набор под метрическую систему и под английский стандарт.
  • Наждачная бумага с зерном 150.

Этап 1. Изготовление корпуса


z4oqoawyci9l73pvetiizidulhi.png

--_pf0ktjamsmujprmtvn0khkvs.png

dd2xbse1_lzxrnceridkwqs2yrq.png

nhvohpzdethfvzyznc4rzotee4s.png

xrx2gy7nnml-rqd6bhx4jql8aw4.png

Собирается он из четырех деталей. Все эти детали печатались с высотой слоя 0.20 мм на принтере Prusa I3 MK3S. В качестве основы я выбрал гладкую пластину. Переднюю и заднюю части я спроектировал с учетом удобства последующего удаления поддержки. Это облегчило дальнейшую шлифовку.

  • MiniMacBack.stl печатался на задней стенке с поддержкой только непосредственно над рабочим столом (Support on build plate only). Материал: бежевый PLA.
  • MiniMacFont.stl печатался вертикально, для чего потребовался поддержка в режиме «Везде» (Everywhere), а также поля. Материал: бежевый PLA.
  • MiniMacDisk.stl и MiniMacToggle.stl печатались без поддержки. Материал: черный PLA.

У MiniMacFront.stl есть дополнительная поддержка, идущая вдоль задней стенки. После печати она обрезается, а поверхность зашлифовывается.

После удаления всех поддержек переднюю и заднюю часть я обработал наждачной бумагой, стараясь стесать все неровности и сделать поверхность однородной. Отдельное внимание стоит обратить на передний край заготовки MiniMacBack.stl. Нам нужна гладкая поверхность, чтобы эта часть стыковалась с задней вплотную или с минимумом неровностей. Я не стал использовать более мелкую наждачку, так как ранние модели Mac как-раз изготавливались из текстурированного пластика. Если вы захотите покрасить детали, то на Instructables.com есть отдельное руководство по сглаживанию PLA-изделий.

Этап 2. Монтаж гаек


r91-3oxphq6hx5wwq_yghgxvwj4.png

zgsxp6idwekeqar0qprmll5u20q.png

ggi9mi-c1wehdw20gmztemnb19q.png

8iqfvfq-jnbasvhotvzguxtjbh8.png

3ql8yhfddq7gud7vwkzrv2qinty.png

После печати и шлифовки можно вставлять гайки. Для этого у нас заготовлено 3 штуки М3 под шестигранник. Два паза располагаются на внутренней «губе» и один в нижней части. Аккуратно расположите гайки вровень с пазами и небольшим усилием вдавите. Затем переверните корпус и еще раз продавите каждую гайку какой-нибудь твердой поверхностью. Постарайтесь, чтобы в итоге они оказались заподлицо с корпусом. При необходимости вкрутите с обратной стороны винт и осторожно подтяните гайку. Не прилагайте слишком много силы и постарайтесь не провернуть ее.

Теперь нужно прикрепить к основанию фиксатор для платы Raspberry Pi. Толстыми пальцами это будет сделать непросто. Вставьте винт M3×12 мм с плоской стороны фиксатора и прикрутите его к основанию корпуса. Затем осторожно вставьте в винт шестигранный ключ и подтяните, но до конца не затягивайте. На одной из фотографии показан прикрепленный фиксатор и торцевая часть вставленного в него ключа. Плотность затяжки должна позволять повернуть его на 90 градусов, то есть с позиции 3 часа в позицию 6 часов. После установки Pi фиксатор мы повернем на 90 градусов против часовой стрелки к позиции 3 часа. В итоге он окажется сверху над краем Pi и после затяжки надежно его зафиксирует.

Этап 3. Подготовка «диска»


9gfr_lyrv-rlxpmrhgufmkfuyzc.png

vhm-wh85mzylqtfgfkkbnck3wes.png

hfoaz0knav0ngbsi3vgusq4lubo.png

k4y3g5oh-miy8y4zi2n1kul1l_u.png

Отрежьте узкую полоску малярного скотча шириной 22 мм. Я сделал это на твердой рабочей поверхности. Готовой полоской я осторожно обернул по центру макет диска и обрезал остатки канцелярским ножом. Затем я также аккуратно обрезал внутренний нахлест скотча (см. фото). Так диск будет выглядеть более естественно. После я слегка вдавил вставку с обратной стороны. Если паз окажется слишком узким, осторожно подшлифуйте края наждачкой. В идеале макет должен входить плотно. Если же он, наоборот, будет болтаться, то можно зафиксировать его буквально каплей суперклея. Обратите внимание на фотографии.

Этап 4. Настройка Raspberry Pi Zero


-cj7p13jjhbmtbi_qs3sxabhnmi.png

yfnlmt33gswizbewafcmik2_izy.png

nknw_x6ndory-hfgy9lcw3mojsk.png

Перед настройкой наш Raspberry Pi Zero W нужно подготовить. Если по умолчанию он не оснащен 40-контактной гребенкой ввода/вывода, то потребуется ее припаять. Опять же, на сайте Instructables есть инструкция по пайке. Если для вас это затруднительно, то следует сразу купить Pi с уже установленной гребенкой. На этой же стадии мы крепим теплоотвод.

Я не буду описывать процесс записи операционной системы PI на SD карту. Программы для загрузки образа находятся на сайте Raspberry вместе с инструкциями. Дополнительно можно посмотреть видео. Скажу лишь, что нужно использовать рекомендованную ОС, так как вам понадобится система с графическим UI.

После подготовки карты с ОС вставьте ее в Raspberry Pi Zero W и подключите монитор с помощью HDMI-адаптера. У Pi один microUSB порт выделен для питания и один для данных. В этом случае нужно использовать второй. Присоедините к концентратору клавиатуру и мышь, после чего подключите питание.

Сначала идет этап начальной настройки. Выберите Country, Language, Timezone и Keyboard. Далее система попросит придумать пароль. Мы включим удаленный доступ по SSH, использовать который без хорошего пароля не рекомендуется. Выберите сеть и введите ее пароль. Далее на определенной стадии нужно будет обновить систему, на что уйдет какое-то время.

Теперь нужно внести изменения в настройки по умолчанию. Нажмите иконку Raspberry в левом верхнем углу. Выберите Preferences → Raspberry Pi Configuration. В диалоговом окне перейдите во вкладку Interfaces и выберите Enable SSH. Нажмите OK, чтобы закрыть окно.
По завершению обновления нажмите Restart.

Этап 5. Укомплектовка ПО


Хочется отметить немаловажный труд Пола К. Прэтта, создателя Gryphel Project. Он реализовал проект по сохранению ПО, разработанного для ранних компьютеров Macintosh. Пол создал эмуляторы для работы в нескольких разных средах: MacOS, Windows 10 и Linux, включая вариант для процессоров ARM, используемых в Raspberry Pi. Для загрузки доступно несколько стандартных версий таких эмуляторов. Помимо этого, он предлагает сервис для создания специализированных версий, которым я и воспользовался, так как под наши требования готовые варианты не подходят.

Можно скачать все файлы непосредственно на Pi Zero, но имейте в виду, что это будет очень медленно. Данный девайс для подобных задач слабоват. Другой вариант — скачать файлы на ПК, и перенести файлы через терминал с помощью утилиты scp или программы для FTP. Я использую CyberDuck, которая доступна и для Mac, и для Windows.

Сборка файлов


Создайте на жестком диске каталог Mini_vMac, куда нужно будет поместить все файлы. Этот каталог затем вы скопируете на Pi.

С помощью сервиса Gryphel я создал 2 исполняемых файла ARM. Можете скачать их с моего ящика на dropbox. Первый файл, Mini_vMac_ARM запускает программу в полном разрешении экрана, а второй, Mini_vMac_ARM_2x удваивает пиксели для более отчетливого отображения. Поместите эти файлы в каталог Mini_vMac.

Вам понадобится образ ПЗУ, который можно скачать отсюда. Берите файл 9779D2C4 — Macintosh II.7z. Распакуйте его и переименуйте в MacII.ROM, после чего поместите в тот же каталог Mini_vMac.

На ToughDev есть отличное руководство по установке системного ПО для Mini vMac. Оттуда мы и скачаем файлы (ссылка будет расположена чуть ниже в середине страницы).

После скачивания распакуйте архив, и у вас получится каталог сжатых файлов под названием old_mac_softs. Их тоже нужно распаковать. При этом файл hfs500M.dsk, извлеченный из hfs500M.rar, следует переименовать в disk1.dsk. Это будет виртуальный жесткий диск. Если диски правильно проименованы, то Mini vMac монтирует их автоматически. Не обращайте внимание на hfv500M_sys755_clean.dsk. Это образ с установленным ПО системы, но нас он не интересует.

Переместите в каталог Mini_vMac следующие файлы:

  • disk1.dsk, образ жесткого диска 500M;
  • Mac701, каталог, содержащий 6 образов дисков;
  • mac753.img, установочный диск Mac OS 7.5.3;
  • mac755up.img, установочный диск Mac OS 7.5.5.

Этап 6: Перенос файлов на Pi с помощью CyberDuck


ebtuhrdkytwk1vbdgygibu0iomm.png

tvb-1i1e_xbwz3-8pdrm-fzpyuw.png

yto1g7dgcxxgfngp655p2oyfpem.png

l4vq_bmwokuis1vvhsopmpubcx4.png

8edys6x3y13ubi02d6otwk-f-oq.png

Запустите CyberDuck. Сначала нужно создать ссылку на Pi. Обратите внимание на первое фото. В нижней левой части экрана нажмите + для добавления закладки (Bookmark). Во всплывающем диалоговом окне измените протокол на SFTP. В качестве имени сервера введите raspberrypi.local. В поле имени пользователя укажите pi. Далее введите установленный при настройке Raspberry пароль. Закройте окно.

Дважды кликните по созданной закладке — должно произойти подключение к Pi. Теперь можно передавать файлы. Нас интересуют:

  • Mini_vMac_ARM — версия 640×480, скачанная с Dropbox;
  • Mini_vMac_ARM_2x — версия 320×240, также скачанная с Dropbox;
  • MacII.ROM, скачанный из репозитория ПЗУ и переименованный;
  • disk1.dsk, образ жесткого диска 500M;
  • Каталог Mac701, содержащий 6 образов дисков для установки системы 7.0.1;
  • mac753.img, установочный диск Mac OS 7.5.3;
  • mac755up.img, установочный диск Mac OS 7.5.5.

Используя CyberDuck, дважды кликните по закладке. Если появится окно с вопросом о предоставлении разрешения — одобрите. Далее откроется подключение к Pi. Перед вами будет список каталогов и файлов в директории /home/pi/. Откройте каталог Desktop.
Нам нужна новая директория. Создайте ее через контекстное меню и назовите Mini vMac. Откройте эту директорию и перетащите в нее все перечисленные выше элементы. На этом этап копирования завершен.

Этап 7. Настройка Mini vMac на Pi


zqcbppdurvd7floiuxnp2hsihbc.png

xyzv3jg-hyxjlnz9mskhni_i0pg.png

gp93i2cswwr3l6gxqtyzpptxdu8.png

it-ktcqktmmant1v0qggx2t-tb8.png

yfgmqcg1bi6r_9sxt9bql6gcjl8.png

fa2q6mfrnvmhh2bfphlvwxjkzuc.png

izqzzu_ui2hpahfwbsn1tng10oi.png

08ogyndlw-uw_nnjmid1ftdjwuw.png

_li19hdk_dskyz-hj2nugshsafs.png

gp_i3abeskmlnlb-57ev9hsg-oo.png

Теперь мы переходим к Raspberry Pi. На рабочем столе у вас должен быть каталог Mini vMac со следующими файлами:

  • Mini_vMac_ARM;
  • Mini_vMac_ARM_2x;
  • MacII.ROM;
  • disk1.dsk;
  • каталог Mac701 с 6 образами дисков;
  • mac753.img;
  • mac755up.img.

Исполняемый файл Mini_vMac_ARM работает с нативным разрешением дисплея 640×480. Рабоатать с мелкими изображениями может быть не очень удобно, но смотрится круто. Версия Mini_vMac_ARM_2 работает с вдвое меньшим разрешением 320×240. В этом случае все видно куда лучше, но не для каждой программы оно подойдет.

Сначала нужно разобраться с этими исполняемыми файлами. Выберите их, нажмите правой кнопкой и зайдите в пункт Properties. Далее перейдите во вкладку Permissions и измените Execute на Everyone.

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

Дважды кликните по Mini_vMac_ARM и выберите Execute. Окно развернется на весь экран, и вы увидите мигающую иконку диска. Для выхода из полноэкранного режима нажмите Ctrl+F.

Обратите внимание, что Mini vMac содержит ряд параметров управления, список которых можно вызвать через нажатие Ctrl+H. За более подробной информацией обратитесь к документации.

Откройте каталог Mac701 на Pi и перетащите Install1.image в окно Mini vMac. В результате диск смонтируется, и загрузится экран установки.

Вернитесь к Pi и, перейдя на уровень каталогов выше, перетащите disk1.dsk. На экране должно возникнуть уведомление об установке Mac500M. Выберите Install.
В процессе установки система попросит вставить Install2.image, сделайте это и далее аналогичным образом вставьте все оставшиеся диски. По завершении выйдите из режима установки (Quit) и выберите Restart.

Появится мигающая иконка диска. Снова перетащите в окно disk1.img, после чего загрузится система 7.0.1.

Примечание: для Shutdown/Quit всегда нужно переходить в меню Special и выбирать Shutdown.

Этап 8. Дополнительный апгрейд системы


3t6ohr0hb_vnfg3phel1b2spcay.png

zy8xlibf7vkai_ma-lylhq6kzmm.png

Вы можете остановиться и на этом этапе, так как у вас уже будет рабочая система Mac 7.0.1.
Если же вы захотите обновить ее до версии 7.5.3, то перетащите в эмулятор mac753.img. В открывшемся окне нового диска дважды кликните по файлу System 7.5.3 01 of 19.smi. Программа проверит и смонтирует виртуальный диск.

Этот диск отобразится на рабочем столе как System 7.5 V7.5.3. CD inst. Дважды кликните по этому образу и в открывшемся диске запустите Installer, следуйте инструкциям. Примите последующее предложение Restart. Перетащите в эмулятор disk1.dsk.

Для последующего перехода с версии 7.5.3 в 7.5.5 перетащите mac755up.img, откройте диск, перейдите в каталог System 7.7.5 Update и запустите Installer, после чего следуйте инструкциям.

Этап 9. Добавление ПО


iih4i4oiufafv2ngpjnfatsj3ci.png

5zwtqt7he--ou1wmgc7bdutjudk.png

xioqt7gk89gpk7lzuigwmubnwyc.png

tagwpp9omwihdd-ouyjmcbaftji.png

zsvri35buwla_k8pogk9quyw_my.png

dl0byjkxm0onm8hzjllwix8su3e.png

1e1j3dzduwprrwxnuhm_ubj73nw.png

Несколько сайтов с ПО



Монтировать диски в Mini vMac можно двумя способами:
  1. Перетаскивая .DSK или .IMG файл в окно.
  2. Изменив имя .DSK файла. Диски монтируются по порядку, и эмулятор будет искать их соответственно. Вы уже видели пример этого при изменении имени образа жесткого диска disk1.DSK. Важно отметить, что если в нумерации будет разрыв, то автоматическое монтирование на нем остановится. То есть, если у вас есть disk2.DSK и disk4.DSK, но отсутствует disk3.DSK, то монтирование остановится на disk2.DSK.

Поскольку мы будем копировать файлы на жесткий диск, нам не понадобится каждый раз монтировать новые диски. Я буду использовать первый метод.

Если вы находитесь в полноэкранном режиме — выйдите из него, нажав Ctrl+F. Перетащите образ диска в окно приложения, и он появится на рабочем столе. (Для извлечения образа нужно перетащить его в корзину). В случае с простым приложением или игрой нужно просто перетащить иконку Disk на жесткий диск. В результате будет создана директория с именем диска, содержащая иконку для запуска приложения.

Пример с игрой


Я буду устанавливать Lemmings, для чего заранее скачал архив lemmings_1_5_2.zip. Кстати, по опыту рекомендую избегать .SIT файлов и стараться находить .DSK или .IMG. Это упростит работу.

Я распаковал архив и перетащил образ диска в эмулятор. После появления иконки диска на рабочем столе нужно просто перетащить этот образ на жесткий диск, где все файлы будут скопированы в новый каталог. Далее останется только открыть этот каталог и запустить программу.

Экранная заставка


Я выбрал заставку After Dark, и в качестве установочного файла взял After Dark 2.0x (1993) для эмуляторов, поскольку нас интересуют именно zip-архивы или файлы DSK/IMG. Я распаковал архив и с помощью CyberDuck поместил файл .img в одну директорию с приложением Mini vMac. Опять же, нужно перетащить образ диска в эмулятор для монтирования диска. Далее перетащите приложение After Dark 2.0x и сопутствующий каталог в директорию System/Control Panels. Выполните Restart и перетащите образ disk1.dsk обратно в окно Mini vMac. Можете настраивать заставку.

Этап 10. Настройка VGA-экрана


oschsdyujsqqlkwvzcct1n27qpc.png

На этом этапе я советую вам сначала сделать резервную копию SD-карты.
Помните, что данная настройка заточена именно под выбранный мной дисплей.
Его производитель прилагает PDF-руководство по работе с ПО, где также прописана инструкция по деинсталляции.

Я приведу самое необходимое.

Откройте на Raspberry Pi новое окно терминала и введите:

cd ~/
git clone https://github.com/tianyoujian/MZDPI.git
cd MZDPI/vga sudo chmod +x mzdpi-vga-autoinstall-online sudo ./mzdpi-vga-autoinstall-online

По завершении установки выключите Raspberry Pi. Можно помещать его и дисплей в корпус.

Этап 11. Сборка Mini Mac


e9vtgqyocvpwndamg8xexkbnoho.png

aixhtrnjoba3lhxkitcrtow4n18.png

4rrrju5jlqzgqujps1bvhklzcyi.png

yzcds9tbhpde4n5ohhmuzvuthv4.png

zpduupxwssqfepaaeexwtjqxdjq.png

neh-z7fmuvcztdykd_rgi9gc3cu.png

ampdpkm8iwcnpfvzqb9a5aovcci.png

rvdsxg9-p76ftpyplbivuoyjpze.png

nukym3hxsw0y-akxg44fs2wuibg.png

mnmad-6r_azwsrbkw2r_1wvsslu.png

t5cmekmof42a6mw4tek1vhcuoaa.png

a8xark7fpsvszazz-mf4mbuzoi0.png

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

Осторожно подключите шлейф к верхней части дисплея. Убедитесь, что он оделся равномерно и до конца. Второй конец шлейфа подключите к Pi. Обратите внимание на фото, где показано его правильное подключение. Не забудьте вынуть SD-карту, так как с ней Pi в корпус не войдет.

Вставьте Pi в корпус, совместив выходы с отверстиями в задней стенке. Убедитесь в равномерном расположении SD-слота относительно встречного гнезда в корпусе и вставьте карту.

Придерживая Pi, поверните защелку и затяните винт торцевым ключом 2.5 мм. Осторожно сверните шлейф в корпусе и совместите лицевую часть с задней. Вставьте оставшиеся винты 3 мм снизу лицевой панели и аккуратно затяните. Старайтесь не выдавить гайки из выступа.

Разверните Mac и подключите беспроводной концентратор к левому порту, а в правый вставьте провод питания.

Этап 12. Загружаем!


dvss0uo3wkya7hcleh1tmp2vm7o.png

4gi7aryriz0ilgst8px9ytphkck.png

h7ihomp7ztgkev97hmxzdy7asqk.png

_gzz0ojaw0kzagu3l-gqwi83teu.png

r5x_anbekw-p0fbqjfayvwdszls.png

350oxaiwvrvzbtz8wjtawwcxlbm.png

При запуске загружается рабочий стол Raspberry Pi. Откройте каталог Mini vMac. Здесь у вас два исполняемых файла, оба из которых запускают один образ жесткого диска.

Файл Mini_vMac_ARM запускает версию с полным разрешением 640×480.
А Mini_vMac_ARM_2x запускает версию с разрешением 320×240.

Если вы хотите еще больше приблизить свое творение к оригинальному Mac Plus, можете переключить цветовую схему на оттенки серого. Это делается в разделе Monitors панели управления.

Не забывайте, что выключать Mini vMac нужно только через меню Special и выбор опции Shutdown. После возвращения на рабочий стол Raspberry Pi можете выключить устройство обычным способом, то есть через иконку Raspberry в верхнем левом углу → Logout → Shutdown. Теперь можно отключить питание.

Развлекайтесь!

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

© Habrahabr.ru