Retro Mac Adventures #2 - Linux on the '06-'07 MacBook
Last time, I was able to get up and running hardware-wise. Next, I will be installing a Linux distribution to get modern software on the device. I will be using the 64-bit version of Ubuntu 16.04 LTS which should run just fine on the new Core 2 Duo board.
Early Intel Macs usually do not play nicely with third party operating systems. Even though the CPU itself is 64-bit capable, the EFI boot subsystem requires 32-bit binaries. As-is, bringing up the boot-selection menu using the option key will show the Ubuntu installation disc labelled "Windows". Selecting it, however, will hang the system. Using an external USB hard drive or thumb drive yields similarly unsatisfactory results. Those computers will only boot OS X from a USB device.
Using an external OS X installation, setting up the rEFInd Boot Manager first will make it easier later on when we are getting to a bootable state. rEFInd provides a nice dynamic boot menu, which detects bootable media from all connected devices, regardless of the OS. Sadly, at least on early iterations of the MacBook line, the Ubuntu installer cannot be started directly this way, which I found out in the process.
Getting "Creative" with the Installation Process
Even though the Mac stubbornly refuses to boot the installation media, I will not be defeated! Let's list our options :
- Use 32-bit Ubuntu;
- Look for another Linux distro, hopefully one which boots correctly on the Mac;
- Give up and write a blog post about it.
The first option seems like a nice tradeoff... at first glance, that is. I know for a fact that it simply works, having tried it before. However, many modern softwares are dropping 32-bit support (*cough* chrome *cough*), and many things simply feel slower. At this point, we have set out on a quest to install 64-bit Ubuntu, and settling for anything less would just feel like laziness, thereby leaving me with a taste of defeat and overall disappointment.
On the Surface
[caption id="attachment_46" align="alignright" width="300"] Everything wrong with DongleScape in a single picture.[/caption]
There is another way however. Come closer, as I tell ye the tale of external installation. What I ended up doing the first time I tried installing Linux on a MacBook, was to connect its hard drive to a working host system, and performing a "chrooted" installation using an arch linux bootable media. However, unlike Arch Linux, Ubuntu has a nice bootable graphical installer which sounds easier than a console installation. (At that time anyway...) So, using the graphical installer, on a Surface Pro 1 I had lying around, I was able to install the OS directly on the SSD, while incurring a still manageable mess of wires.
DongleScape \ ˈdäŋ-gəl-ˌskāp \, noun. The adventure of using an immature connector standard. Its adepts can be recognized by the unearthly amount of adapters in their bags. Most fervent followers will carry more than required for their needs, as an exercise of self-discipline, part of their ascetic lifestyle.
Getting it to Work
[caption id="attachment_53" align="alignright" width="300"] rEFInd does not detect 64-bit EFI binaries[/caption]
Installing from another computer usually causes its own lot of issues, which can range from mildly rage-inducing, to simply annoying. The Surface Pro 4, using a newer 64-bit EFI boot system, caused the wrong type of GRUB binaries to get installed on the drive. Using an existing installation on a similar MacBook, I was able to mount the freshly-installed Ubuntu and copy some 32-bit EFI binaries. While they were unsuitable for the actual drive, they still allowed me to boot to a GRUB rescue shell, from booting was possible. From there, I reinstalled GRUB, once again, to generate proper EFI stubs for the system.
The End Result
This was probably an overcomplicated mess, but whatever, it works. The result is a nice, slick, black MacBook which is still usable in 2017.