As I wrote in an earlier post, I’m using an old Mac Mini (Late 2014) as a server for Homebridge, which allows me to access my smart home devices from Apple Homekit.

I had to reformat the Mac Mini because of a disk error, which returned me to OS X Yosemite (Version 10.10.5). I ran into several problems and had to research workarounds. I hope the following tips are helpful.

You Probably Need Xcode (or Another C Compiler)

I couldn’t install the Homebridge plugin for Hatch Rest+ Baby Sound Machine, Night Light. As I explained in a GitHub issue on the plugin’s GitHub page, I got an error message, which included the following:

2301 error errno 1
2302 error @abandonware/noble@1.9.2-14 install: `node-gyp rebuild`
2302 error Exit status 1
2303 error Failed at the @abandonware/noble@1.9.2-14 install script.
2303 error This is probably not a problem with npm. There is likely additional logging output above.
2304 verbose exit [ 1, true ]

dgreif, the owner of the homebridge-hatch-baby-rest plugin, replied:

Please see the noble installation instructions and follow the steps for your platform. Let me know if you still run into issues after that

The problem is that Noble isn’t being installed. Noble is necessary to communicate via bluetooth with some devices.

I learned from the explanation of another Homebridge plugin (homebridge-bluetooth) that Noble requires a C compiler:

XCode comes with a C compiler that is needed to compile the JavaScript to C bindings required by Noble package.

Although it’s possible to download other C compilers on a Mac, the Noble download page states that Xcode is a prerequisite for Noble.

How to Update Upgrade Yosemite to a New OS

The Mac Mini seemed to be stuck at Yosemite. I downloaded security updates, but Apple didn’t give options to install a newer operating system.

The twist is explained on an Apple forum post (title Mac won’t update past OS X Yosemite 10.10.5):

The App Store only shows updates for the OS you are using at the moment, in your case Yosemite 10.10.5.

If you want to go to another newer OS that is called an upgrade. This can be done through the App Store . . . .

So, Apple distinguishes a mere “update” and an “upgrade.” I went to the App Store, searched for “Big Sur,” and clicked on “Get.” Then, I ran into a problem with two-factor authentication that I discuss below.

Two-Factor Authentication on Old Mac OS

If you have two-factor authentication turned on for your iCloud account, then it will not work as you might expect on an old Mac OS.

The problem is that Yosemite does not give you a dialog box to enter the code to authenticate your machine. An Apple forum post (titled, Two factor authentication on older Macs 10.6.8 Snow Leopard) has the workaround:

On older devices, if you type in the Two-Factor Authenticaction Password/Code AFTER the Apple ID passcode, that how you use Two Factor Authentication on older devices.

e.g. Let‘s say your Apple ID Password is “Apple” and let’s say your Two-Factor Authentication Code is “199456”, then when you type in your password onto your older Mac, and it asks for two-factor authentication, you will type “Apple199456” as your password.

So, to authenticate your machine, you must type your password, get the authentication code on another iOS device, and retype the password followed by the authentication code. I don’t think this workaround is obvious. There is no message that tells you what to do.