The right tools
Ivan values Raspberry P’s modularity which allows him to create unique devices and has previously used various models including Compute Module 4 in his Compute Blade, an energy-efficient alternative to a rack-mounted server. He praises the “relatively cheap minicomputer with a huge community, which greatly lowers the threshold of entry and increases trust”.
For the Mac Mini KVMac16 project – Ivan describes it as “a console for 16 Mac minis on a shelf that occupies a 6U space in a server rack” – Raspberry Pi is used as a KVM (kernel-based virtual machine) while “the PiKVM HAT is used for video capture and keyboard/mouse command transfer”. Ivan chose Raspberry Pi because it both supports the components and offers long-term software support. He says: “Raspberry Pi 4 with 4GB is easily sufficient for the task”.
As Ivan’s blog explains, should a Mac go down due to a failed update or any another reason, the only way to reboot it is to physically press its power button. This is not something that can be done remotely, and is the issue his KVMac device addresses. “To provide full control, with the ability to completely reinstall the OS, you need to press the power button and there are no other options.” Ivan has created the optimal workaround: a Servo HAT and self-written Python scripts control the servos used to physically push buttons on the Mac mini. He also uses RS232 to control a regular KVM switch from the user interface between a Raspberry Pi PiKVM HAT and 16 Mac minis, through which he can connect to any of them.
Third time’s a dream
As Ivan details on his Uplab blog, creating the KVM Mac Mini project involved three different versions, with improvements each time focusing on ease of installation and overall reliability. PiKVM is at the heart of the project, and provides a basic user interface, “but the ability to physically push buttons, and the 16 Mac mini install stand itself, are designed by me from scratch [as were the] custom scripts and UI modifications to give the user full control”.
Many of the challenges were because the project uses servos and levers to push buttons on the Mac minis, which need to work with maximum reliability. He started the project from scratch three times and counsels other would-be makers that if you find your project moving in the wrong direction, stop, reappraise and “have the strength to start over from scratch”. Ivan did this twice here, and says it strengthened his project as well as validating the potential for both a four-Mac mini model and a potential CI/CD one (Continuous Integration Continuous Deployment).
It is just as well that Raspberry Pi proved a good option. Ivan says there are “simply no alternatives. This project was only possible thanks to Raspberry Pi and PiKVM.