2006 iMacs and Linux – Core 2 Duos With 32-bit EFI

I wanted to put this page up, because I’ve experienced a rather interesting situation with a late 2006 iMac and installing Linux. (Mint distribution.) While for the most part Ubuntu (Mint’s foundation) is setup pretty well right out of the box, Apple threw a few monkey wrenches into the mix that don’t make a whole lot of sense, at least to me. I’m sure at the time there was a marketing reason or whatever for the funkiness, but it’s really rather silly.

Late 2006 iMac

I’ve had this computer for 11 years. This iMac is from the first line of Intel based Macs. MacOS has never failed me on any task, and has only had one kernel panic the entire time I had OS X installed. As it continued to sit on my second desk unloved and with a dated 10.7.5 Lion that no longer received updates, I thought, “Why don’t I put Linux on there and let my son at least have something to play his online kids games with?” Novel idea. Bad execution. Since I already had a copy of Mint 18.0 from an earlier test run on my main computer (I’m sticking with 17.2 on my main computer until it’s no longer supported because of my graphics card.), I shoved the disc in the trusty built-in optical drive (yes, its that old) and watched the screen give me a strange prompt asking between two boot options. At this point, entering anything into the keyboard is useless because there is no response. So I did some research. It turns out that because the boot loader is EFI and the .iso is built for a 64-bit system, one must have a 64-bit EFI in order to boot from the disc. Ah, ok. That’s why.

But….wait a minute. The processor in my old Mac is a Core 2 Duo, not simply a Core Duo. It is a 64-bit processor. And the old iMacs were using EFI boot standard ages ago, so EFI wasn’t the problem. As I researched this topic, I found a command to discover the bit type of the EFI one has.

ioreg -l -p IODeviceTree | grep firmware-abi

This, of course, you type into your favorite terminal interface on the Mac. I was surprised to find the output say, “EFI32”. What in the hell? It turns out that during this very short period of time, some 2006 and late 2006 iMacs shipped with 32-bit EFIs even though they had 64-bit processors. Why? I have no idea. Luckily there are a couple of work-arounds. One is just simply using a 32-bit image instead. Another option my research revealed was that there are several ways to “trick” the 64-bit image into thinking you have a 64-bit EFI, and I tried several of these methods without success. Seeing that I didn’t want to spend too much time getting an 11 year old computer to browse the web, I chose to go with the 32-bit image. I proceeded to download the correct image for my application and it installed without a hitch. Well, maybe one or two.

The first problem I had was getting the internal WiFi connected. I don’t even remember which exact release of Broadcom card it was, but it wasn’t recognized at all. I couldn’t figure out why because Mint is usually pretty comprehensive when it comes to detecting hardware. With this hardware being as old as it was, I was certain that there was a driver out there somewhere to solve this issue and that this problem had been discovered before. After a couple of days of searching, I found a solution. And yes, we are going back to another EFI issue. Sigh.

When you boot to a live Mint CD and choose to install, you’re likely to just choose all of the default settings (unless you’re doing a dual/multi boot setup or whatever) and go on about your day. When you choose this method, it installs itself via EFI – in my case 32-bit. (GPT partition scheme.) What’s the problem with this? Apparently, Mint (Ubuntu) has banned/blocked drivers for certain hardware under EFI-type installs. This is likely due to known driver compatibility/security/stability issues that are not going to be resolved because the developers aren’t going to spend time on catering to hardware that old. And as it turns out, the WiFi card in my old Mac was on the EFI banned list. How did I solve this? I had to reinstall. When going into the install dialog, it gives the user various options. Dual boot, single install, partial intall, etc. All of these (to my knowledge) will automatically choose the GPT partition scheme for EFI. (That’s what most computers use nowadays.) Choosing “other” during the install process (manually entering gparted) and setting up a MBR partition instead of a GPT partition will allow the Broadcom driver that I needed to work. After completing that procedure, I was STILL not able to get the WiFi to work. Uh oh. Since I was connected directly to my router via ethernet cable, I decided to download all of the current updates to see what would happen. It was after that when the WiFi connected. Phew.

(I’m not going to record the whole process here. I hope to have provided enough information to do searches on various procedures on how to accomplish this.)

The second problem that I had was with heat. BIG heat issues. iMacs of this era are known for their heat build-up, and in my opinion this is due to a faulty design. I never had any issues with heat running the MacOS versions that I had in the past, but it began running hotter with each version I upgraded to! None of the Linux distributions that I know of have any sort of control over Mac fans, likely because the Linux developers don’t really see people installing Linux on these machines. This means the fans will run at the default minimums. All the time. Not a good idea. Pushing all of these new processes (especially web browsing) was heating this old gal up! At any rate, I tried various fan control utilities and couldn’t get any of them to work to my satisfaction. Now, there is an awesome utility called “smcFanControl” for Mac OS that controls the fans excellently. Since I set my system up as dual boot (I left MacOS on there alongside Linux. You can do that easily with a utility called “rEFIt”.), what I would do is boot into MacOS, run the utility, and it would save my fan configuration when exiting OS X and booting into Mint. The problem was once Mint went to sleep, I would lose these settings and the fans would run at their default minimums again. I got “macfanctld” to work inside Mint for two fans, but the old iMac has three, just like the MacBooks of the time. And of course, the fan I couldn’t control was the CPU fan. You know, the important one? Actually in the iMac setup, all of the fans are very important. They work with one another to push the heat up and out.

A couple of more days of research into this and I found “mbpfan”. This saved my computer from catching on fire after being on for an hour or two. I had ran into this utility before, but I’m too Linux stupid to know how to run it without a step-by-step guide. Luckily I found this page where the author of the software is nice enough to give us just that.

https://ineed.coffee/3838/a-beginners-tutorial-for-mbpfan-under-ubuntu/

This guide is for Ubuntu or Ubuntu-based releases, but I’m sure that other distributions are similar. If not, you might be able to contact the author and ask. He seems very willing to help.

This was my journey. If a couple of people stumble upon this page with similar issues and it prevents them from going through the hours of headaches that I went through, then that’s good enough for me.

(I forgot! I was also able to get the iSight camera to work in Mint as well, but I’ll have to add that explanation in later.)

Leave a Reply

Your email address will not be published. Required fields are marked *