[Перевод] Собираем Mac mini на Raspberry Pi Zero
Несколько лет назад я увидел собранный Джоном Ликом из RetroMacCast миниатюрный Macintosh, размер которого был в три раза меньше реального. Меня одолела зависть…Я очень хотел собрать аналогичный, но тогда был слишком ограничен в ресурсах. Однако время шло, и технологии не стояли на месте. Появление более компактных и дешевых компонентов существенно облегчило задуманный тогда проект, и в итоге он воплотился в жизнь.
Сегодня я подробно расскажу вам все детали этого процесса, чтобы и вы могли собрать себе такое же чудо. Единственный нюанс — это необходимость доступа к 3D-принтеру, остальные детали легко доступны.
Необходимое оборудование
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. Изготовление корпуса
Собирается он из четырех деталей. Все эти детали печатались с высотой слоя 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. Монтаж гаек
После печати и шлифовки можно вставлять гайки. Для этого у нас заготовлено 3 штуки М3 под шестигранник. Два паза располагаются на внутренней «губе» и один в нижней части. Аккуратно расположите гайки вровень с пазами и небольшим усилием вдавите. Затем переверните корпус и еще раз продавите каждую гайку какой-нибудь твердой поверхностью. Постарайтесь, чтобы в итоге они оказались заподлицо с корпусом. При необходимости вкрутите с обратной стороны винт и осторожно подтяните гайку. Не прилагайте слишком много силы и постарайтесь не провернуть ее.
Теперь нужно прикрепить к основанию фиксатор для платы Raspberry Pi. Толстыми пальцами это будет сделать непросто. Вставьте винт M3×12 мм с плоской стороны фиксатора и прикрутите его к основанию корпуса. Затем осторожно вставьте в винт шестигранный ключ и подтяните, но до конца не затягивайте. На одной из фотографии показан прикрепленный фиксатор и торцевая часть вставленного в него ключа. Плотность затяжки должна позволять повернуть его на 90 градусов, то есть с позиции 3 часа в позицию 6 часов. После установки Pi фиксатор мы повернем на 90 градусов против часовой стрелки к позиции 3 часа. В итоге он окажется сверху над краем Pi и после затяжки надежно его зафиксирует.
Этап 3. Подготовка «диска»
Отрежьте узкую полоску малярного скотча шириной 22 мм. Я сделал это на твердой рабочей поверхности. Готовой полоской я осторожно обернул по центру макет диска и обрезал остатки канцелярским ножом. Затем я также аккуратно обрезал внутренний нахлест скотча (см. фото). Так диск будет выглядеть более естественно. После я слегка вдавил вставку с обратной стороны. Если паз окажется слишком узким, осторожно подшлифуйте края наждачкой. В идеале макет должен входить плотно. Если же он, наоборот, будет болтаться, то можно зафиксировать его буквально каплей суперклея. Обратите внимание на фотографии.
Этап 4. Настройка Raspberry Pi Zero
Перед настройкой наш 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
Запустите 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
Теперь мы переходим к 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. Дополнительный апгрейд системы
Вы можете остановиться и на этом этапе, так как у вас уже будет рабочая система 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. Добавление ПО
Несколько сайтов с ПО
Монтировать диски в Mini vMac можно двумя способами:
- Перетаскивая .DSK или .IMG файл в окно.
- Изменив имя .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-экрана
На этом этапе я советую вам сначала сделать резервную копию 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
Снимите с дисплея защитную пленку и вставьте его в лицевую панель. Верхний и нижний край должны плотно прилегать к фиксирующим кромкам. Если возникнут затруднения, прошлифуйте места фиксации наждачной бумагой. После установки посмотрите на экран спереди и убедитесь, что он установлен по центру.
Осторожно подключите шлейф к верхней части дисплея. Убедитесь, что он оделся равномерно и до конца. Второй конец шлейфа подключите к Pi. Обратите внимание на фото, где показано его правильное подключение. Не забудьте вынуть SD-карту, так как с ней Pi в корпус не войдет.
Вставьте Pi в корпус, совместив выходы с отверстиями в задней стенке. Убедитесь в равномерном расположении SD-слота относительно встречного гнезда в корпусе и вставьте карту.
Придерживая Pi, поверните защелку и затяните винт торцевым ключом 2.5 мм. Осторожно сверните шлейф в корпусе и совместите лицевую часть с задней. Вставьте оставшиеся винты 3 мм снизу лицевой панели и аккуратно затяните. Старайтесь не выдавить гайки из выступа.
Разверните Mac и подключите беспроводной концентратор к левому порту, а в правый вставьте провод питания.
Этап 12. Загружаем!
При запуске загружается рабочий стол 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. Теперь можно отключить питание.
Развлекайтесь!
Примечание: если вас заинтересовал этот проект, и вы хотите его повторить, то в оригинале статьи можно скачать файлы для печати деталей корпуса.