Mac Mini 1,1 Upgrade!
I was browsing randomly to see if my newly acquired Mac Mini 1,1 had any upgradable components. I was actually pretty shocked to read Jethro Carr's post on Upcycling 32-bit Mac Minis detailing how the CPU is housed in a socket!? He then goes on to describe the best CPU available. I therefore bought a T7300 pretty damn quickly. Turns out there's a step faster though... so make sure you purchase the T7600!
First Step: CPU
Follow iFixit's teardown to open the little beast. It's pretty straight-forward, but give yourself time! Just getting to step 6 was hard enough.. it's pretty scary trying to pry the thing open. Don't forget to clean the underside of the heatsink. Whilst you're there, replace the HDD and battery with newer/faster/better/more-chargier models!
Finally, when replacing the motherboard, watch out for the metal ground tag above the power socket. You'll need to make sure you slide the board in under it!
Can you see it in that above photo? It's the little tag above the power socket.
Second Step: OSX Lion
OSX Lion was the first version of OSX to drop support for 32-bit CPUs. Therefore, it's hardcoded to prevent installation on any machines that are expected to be 32-bit. Of course, we've meddled with that, so we can safely remove the block for our system and let the OS try to boot! The following steps are based loosely on this forum.
- Get a copy of OSX Lion
- Open the DVD/DMG and find BaseSystem.dmg then burn it to a USB drive or other bootable partition. Anything ~6gb. Call it LionInstaller
- Delete a symlink: /Volumes/LionInstaller/System/Installation/Packages
- Copy the actual packages from "/Volumes/Mac OS X Install ESD/Packages" to "/Volumes/LionInstaller/System/Installation/Packages"
- Delete "/Volumes/LionInstaller/System/Library/CoreServices/com.apple.recovery.boot/PlatformSupport.plist"
- Copy "/Volumes/LionInstaller/System/Installation/Packages/OSInstall.mpkg" to a temporary folder
- Go to that folder and unzip it: xar -x -v -f ~/Desktop/OSInstall.mpkg (more details here)
- Edit Distribution: I had to add "Mac-F4208EC8" to the block of supported platforms up the top
- Delete the OSInstall.mpkg that should be in the same folder, that's the old one
- Re-compress it to the new file: xar -c ./ -v -f OSInstall.mpkg
- Send it to the right folder: "/Volumes/LionInstaller/System/Installation/Packages/"
- Reboot and install!
- When Installation is complete, whilst it's prompting to reboot, open Terminal from the Utilities Menu
- Browse to /Volumes/[DISK_YOU_INSTALLED_TO]/System/Library/CoreServices/ and Delete PlatformSupport.plist
- Quit terminal and reboot the machine
Third Step: Firmware
I had mucked around with rEFInd initially to have multi-boot, but my metal apple keyboard wouldn't work with the interface. Turns out it won't even trigger bootup options (CD selection, etc...) as the Mac Mini doesn't like USB 2.0 keyboards at startup! This can all be fixed via a Firmware Upgrade. You even then get the option of installing 4gb of RAM. More information can be found in this thread.
- Grab the firmware and extract it somewhere.
- Open Terminal and go to that somewhere.
- Copy both files to /System/Library/CoreServices/Firmware Updates.
- Run the following:
sudo bless -mount / -firmware /System/Library/CoreServices/Firmware\ Updates/EFIUpdaterApp.efi -payload /System/Library/CoreServices/Firmware\ Updates/LOCKED_MM11_0055_08B.fd -options "-x efi-apple-payload0-data" --verbose
EFI found at IODeviceTree:/efi GPT detected No auxiliary booter partition required System partition found Returning booter information dictionary: <CFBasicHash 0x7f8343d02fe0 [0x7fff78e37ea0]>{type = mutable dict, count = 3, entries => 0 : <CFString 0x10aa4afb0 [0x7fff78e37ea0]>{contents = "System Partitions"} = ( disk0s1 ) 1 : <CFString 0x10aa4af70 [0x7fff78e37ea0]>{contents = "Data Partitions"} = ( disk0s2 ) 2 : <CFString 0x10aa4af50 [0x7fff78e37ea0]>{contents = "Auxiliary Partitions"} = ( ) } Substituting ESP disk0s1 Mounting at /Volumes/bless.y5CS Executing "/sbin/mount" Returned 0 Creating /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE if needed Deleting previous contents of /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE Deleting /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE/EFIUpdaterApp.efi (33888 bytes) Deleting /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE/LOCKED_MM11_0055_08B.fd (2097152 bytes) Opened dest at /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//EFIUpdaterApp.efi for writing preallocation not supported on this filesystem for /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//EFIUpdaterApp.efi Type/creator set to / for /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//EFIUpdaterApp.efi /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//EFIUpdaterApp.efi created successfully Relative path of /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//EFIUpdaterApp.efi is \EFI\APPLE\FIRMWARE\EFIUpdaterApp.efi IOMedia disk0s1 has UUID F6A85C4B-BDBA-4127-ADB9-7B4D07AA40E4 Opened dest at /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//LOCKED_MM11_0055_08B.fd for writing preallocation not supported on this filesystem for /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//LOCKED_MM11_0055_08B.fd Type/creator set to / for /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//LOCKED_MM11_0055_08B.fd /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//LOCKED_MM11_0055_08B.fd created successfully Relative path of /Volumes/bless.y5CS//EFI/APPLE/FIRMWARE//LOCKED_MM11_0055_08B.fd is \EFI\APPLE\FIRMWARE\LOCKED_MM11_0055_08B.fd IOMedia disk0s1 has UUID F6A85C4B-BDBA-4127-ADB9-7B4D07AA40E4 Setting EFI NVRAM: <CFBasicHash 0x7f8343d02fe0 [0x7fff78e37ea0]>{type = mutable dict, count = 2, entries => 1 : <CFString 0x10aa4afd0 [0x7fff78e37ea0]>{contents = "efi-boot-next"} = <CFString 0x10ab1a930 [0x7fff78e37ea0]>{contents = "<array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>F6A85C4B-BDBA-4127-ADB9-7B4D07AA40E4</string></dict></dict><key>BLLastBSDName</key><string>disk0s1</string></dict><dict><key>IOEFIDevicePathType</key><string>MediaFilePath</string><key>Path</key><string>\EFI\APPLE\FIRMWARE\EFIUpdaterApp.efi</string></dict><dict><key>IOEFIBootOption</key><string>-x efi-apple-payload0-data</string></dict></array>"} 2 : <CFString 0x10ab1add0 [0x7fff78e37ea0]>{contents = "efi-apple-payload0"} = <CFString 0x7f8343d03430 [0x7fff78e37ea0]>{contents = "<array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>F6A85C4B-BDBA-4127-ADB9-7B4D07AA40E4</string></dict></dict><key>BLLastBSDName</key><string>disk0s1</string></dict><dict><key>IOEFIDevicePathType</key><string>MediaFilePath</string><key>Path</key><string>\EFI\APPLE\FIRMWARE\LOCKED_MM11_0055_08B.fd</string></dict></array>"} } Executing "/sbin/umount" Returned 0
- Shut Down
- Press and hold your power button until you see your Mini's power light flash repeatedly, and then release. You should hear a strange boot sound from your Mac.
- You may-or-may-not see a grey screen with a progress bar loading. I did, but others report they do not, so it will vary. If you do encounter this screen, just let the progress bar complete, and don't touch anything.
- You now may-or-may-not get a corrupt screen - Let it get to the desktop and then hold down the power button.
- Reboot, but this time do a PRAM reset (Command + Option + P + R)
- Listen to that lovely chime... it's actually the first time my Mac Mini ever made the startup chime since purchase!!
- Profit.
Yessss... we now have a MacMini2,1!
Fourth Step: RAM
Easy enough, but only after the firmware update! Grab two 2GB DDR2 PC2-5300S 200-pin SODIMMS and install them in the two available slots in the motherboard. Yes, you'll have to rip the entire unit apart again, so it's probably beneficial to buy these at the start and do it all in one hit!
Fifth Step: Why is the CPU fan always maxed out?
Turns out, that if you leave things disconnected, then the poor little Mac Mini can't monitor it's system performance and will default to a full-speed fan. There's a wire at the front near the power light that you need to disconnect as one of the first steps... I'd forgotten to reconnect this and, well, the result is max-tilt on the cooling fan.
Make sure you plug everything back together!
Sixth Step: Alternative Operating Systems
Just for fun I decided to install rEFInd and then toy with the other 80gb I still had on the HDD. Installation was as simple as opening Terminal, switching to the Downloads directory, unzip refind*.zip, switching to the extracted directory and then finally: ./refind-install. It copied over the default configuration and then, upon reboot...
Nice. Now, off to Linux Mint to download an ISO. I chose Mate, I don't know why... I don't think I like the black of Cinnamon. It turns out my internal CD drive is toast... it just tries to read and read anything I put in there and then spits it back out again. So, thankfully my external CD drive just-worked!
Of course, the bootloader didn't. The picture above shows as far as it wanted to get... it then just freezes. It turns out all 64-bit ISOs need 64-bit EFI BIOS' and our machine doesn't have this! It has a 32-bit EFI with a 64-bit CPU. So... you need to hack the ISOs. Thankfully, Matt Gadient has already done this for us.