Linux For Mac Mini



Does Apple stop Linux from booting on its newly refreshed Mac Mini PC or MacBookAir laptops?

This post outlines the process of moving a Mac Mini (mid-2011) to Linux. The Mac Mini I’m rescuing is a mid-2011 with i5-2415M, 2GB RAM and 500GB HDD, running macOS High Sierra (version 10.13). It’s dreadfully slow. The goal is to use this machine as a general purpose computer in a classroom for high school students. Boot your Mac into Windows and insert your Linux install disc (see step 3). When it auto-runs, click the Install Linux Mint Inside Windows option, and follow those instructions. Then skip to step 9.

That’s the claim currently circling the web‘s collective drain. The posit is that the new T2 ‘secure enclave’ chip Apple has baked in to its new models prevents Linux from booting.

But is this actually true?

Kinda. The answer is both “yes, technically” and “no, not completely”.

The T2 Chip & Linux

Apple’s new Mac Mini and MacBook Air systems both feature the custom engineered T2 ‘secure enclave’.

The T2 chip, which ships on the new Mac Mini and MacBook Air computers, is designed to help to toughen device security, handle encryption, manage touch ID, and ensure the microphone can’t “always listen” when the lid is closed.

As configured out of the box, the T2 does prevent Linux from booting. In fact, it’ll stop anything that isn’t macOS, as Apple’s own documentation points out:

NOTE: There is currently no trust provided for the Microsoft Corporation UEFI CA 2011, which would allow verification of code signed by Microsoft partners. This UEFI CA is commonly used to verify the authenticity of bootloaders for other operating systems such as Linux variants.

But that’s not where the answer ends.

Firstly, Apple could choose to add support for the Microsoft UEFI CA 2011 certificate. This certificate is the same one that allows Linux users to dual boot distros like Ubuntu with Windows 10 and keep secure boot enabled.

Alas, it hasn’t.

Secondly, the whole “Secure boot” policy itself can be disabled.

You Can Boot Linux on the new MacBook Air

Apple has created a new “Startup Security Utility” for Mac computers that ship with the Apple T2 Security Chip.

This utility can be accessed by booting into macOS Recovery and grants access to a wide range of security policy settings.

Apple state: “[…On] computers with the T2 chip. The user is in control of the device’s settings, and may choose to disable or downgrade the secure boot functionality.”

Because “the user is in control” of their device’s settings, it includes the secure boot policy that prevents Linux distros from loading.

Anyone can boot Linux on the new Mac Mini and MacBook Air models — they just need to disable secure boot first.

Some people will find that tradeoff worth the hassle of booting into recovery. Others won’t. Either way the option means there’s no need to panic if you’re a Linux user with a Cupertino hardware fetish.

Plus, as always, there are plenty of Linux-friendly laptops and desktop PCs out there which aren’t made by Apple…

Installing Ubuntu/Linux Mint on Macmini is easy, but getting it to work the way you normally want a PC to run is a bit difficult (meaning, run smoothly and making all peripherals work) :) I am trying to cover all the issues I had with linux installation process and getting Apple hardware to run happily with Linux.

Few things before we start,

  • I assume that you have a reasonable knowledge in *nix based OSes and commands.
  • You need a stable power supply ;)
  • A Mac mini late 2012 with OSX in a perfect state (if not you can reinstall OSX to start with, I did that)
  • A keyboard and mice
  • A monitor or two so you can see whats going on :)

NOTE: I reinstalled macosx before installing Linux and recreated the partitions table with two (using apple disk utility), since I had a 1TB drive, I split it into two equal partitions and reinstalled mac on the first (512GB was used).
I left the second partition untouched, meaning unformatted. I dont think this is a must but just saying what my configuration was...

Intro
Macmini comes with an UEFI bootloader, the easiest way to get multiple OSs to run with the machine is through rEFInd, you can download it from the link below.
As far as I can see rEFInd is a software layer for UEFI based computers so that you can esily run multiple OSes with a nice menu driven interface so that users can switch between them easily.
Download the 'Binary zip file' from the link below.

After downloading, extract the zip, 'cd' into the folder and run 'sudo ./install.sh'
it will show some messages and install the complete installation.

Reboot, if rEFInd is installed correcty you will see the menu at the time of booting...

(ver 0.7.4 as of 05-Sep-2013, Binary zip archive)
http://www.rodsbooks.com/refind/getting.html
http://sourceforge.net/projects/refind/files/0.7.4/refind-bin-0.7.4.zip/download

Installation process
The installation should be straightforward until you get to the point where you choose the paritions setup. You need to choose 'Something else' from the harddisk setup/partition section, then in the partition editor
chose the 2nd partition you left blank in the mac disk partitioning utility (check the note above), use the blank partition to setup your favourite partition table.

A video clip explaining manual disk partitioning in Mint.

Linux

In the 'Device for bootloader installation' dropdown please select the root partition or /boot/ partition you created in the partition table. Never use any of the block devices used by the Mac OSX, in mine they were the device itself /dev/sda and /dev/sda1, /dev/sda2

Once the partitions are confirmed and the bootloader installation device is set, proceed with the installation.

Low colour depth in the second monitor

If you have a dual monitor setup, they you will notice that sometimes one of the monitors display less colours than the other one. I read somewhere that this issue happens in EFI based machines with Intel HD xxxx video cards, but I am not exactly sure the reason behind it.

The permanent fix for this would be to alter a configuration register for the Intel HD video card. The way I prefer for this is through the /etc/profile file.

Installing Linux On Mac

Add the following line

Save the file and exit. In the next boot colours will be normal on monitors.

Broadcom wireless BCM4331 chipset

Broadcom chips are not supported well with linux, if you need more information about why the Arch linux documentation provides a good inside (https://wiki.archlinux.org/index.php/Broadcom_wireless).

Lets get the wifi driver installed,

You need to make sure that repository sources are set to download and compile drivers from the source package itself, inorder to enable source code repositories refer to https://help.ubuntu.com/community/Repositories/Ubuntu#Adding_Ubuntu_Software_Repositories, usually in linux mint/ubuntu in 'Software sources' application should have a option to enable 'source code' option.

After enabling source packages open up a terminal and run following commands, in order to compile a package from the source, you need kernel headers and debian package developer tools.

And make sure the opensource drivers are disabled, in order to disable them edit the kernel modules config file and make required changes as follows

add following lines to the bottom of the file

Reboot the machine and wireless should be up and running..! ;)

Suspend to ram (S3)

If you really don't care about suspending your mac mini reliably so that you can save trees ;) and got wireless working perfectly, you can skip this section. If you need to get both suspend and wifi working, continue.

In latest ubuntu release the kernel 3.8.xx does not reliably able to put Mac mini to sleep, I couldn't figure out the exact reason but, after lot of trial and error I figured out that kernel-3.11.xx can reliable suspend Mac mini.

But the drawback with installing the latest kernel is that wifi driver stops compiling as per the kernel header changes in the kernel-3.10.0.

If you follow the guide to the letter you should be able to apply the patch I have submitted to the bcm-kernel-source package and get it to compile and install correctly.

Step 1: Create a temp directory to get download and run kernel updates.

Step 2: Get the kernel packages as per your processor architecture from the link below. You should download THREE packages from the link linux-headers-generic, linux-headers, linux-image. Since all latest mac mini run Core iX processors you can safely download 64bit packages.

Step 3: Error messages and the fix

At the time of writing bcmwl-kernel-source didn't compile using kernel-hearders 3.11.0 and get the error mentioned in the below paragraph, and I have submitted a patch in the ubuntu launchpad. You can check the status of the package in the URL at the end of the document, if it says the package is updated, you don't have to worry about running any of the below commands.

After running dpkg command you may see an error which says check make.log for debug information, that means the wireless driver failed to compile and install correctly. But dont worry just restart your computer so that the next time computer will boot up with the latest kernel we just installed. Please note that the wireless will not work after the reboot (this is due to the wl.ko kernel module error we got), so make sure you got another device with this tutorial open so you can continue reading.

After restarting, download the patch I have attached in the launchpad bug report and copy it to the bcmwl-kernel-source directory as follows and recompile the code.

After editing dkms.conf you will see 10-15 lines as follows and add the line into the file and save.

Step 4: Reconfigure bcmwl-kernel-source

If you have done all the above steps correctly, you should be able to run the following command and recompile the bcmwl driver without compile time errors.

Linux For Old Macbook

Step 5: Check if the driver is installed

You should see a file called wl.ko and thats it!

Reboot your machine and wireless should come up. You can try to load the kernel module by running 'sudo modprobe wl' in the terminal as well without getting module not found errors.

If anyone is interested this is the bug that we just fixed https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/1197586

Best Linux Distro For Mac Mini 2011

These are all the problems I experienced while using Linux with my Mac mini in the first two weeks, and hope this document would help one of you brave linux users to run your favourite distro on one of the best hardware provided by Apple :)

Drop a comment if you found any other issues with Mac minis and Linux, I am happy to help.