Thanks to many resources online I was able to install full single-boot Ubuntu on a Mac Pro that I was given at work. Normally I would not buy an unnecessarily expensive computer like this, but since it was free and it had 64 GB of RAM, I decided to keep it.
Initially, I used a third party LiveUSB creator, but later I realized that creating a regular LiveUSB works just fine. All I needed to do was boot with “nomodeset” as a boot parameter and edit the EFI bootloader.
The easiest and most functional procedure was to:
- Create a LiveUSB as usual, for example using Startup Disk Creator.
- Boot the LiveUSB (boot with option nomodeset) and install Ubuntu on a hard drive.
- In the Live USB, use efibootmgr to allow EFI to boot Ubuntu.
- Boot Ubuntu with option nomodeset.
- Create a LiveUSB Ubuntu as usual. I used Startup Disk Creator in Ubuntu.
- Boot Mac OS X and hold Alt while booting. You should see two icons, one saying “Macintosh HD” and another “EFI”.
- [Only 6,1] Press “e” and edit the boot command, adding “nomodeset”. This was only necessary on the 6,1. 5,1 booted fine without “nomodeset”.
setparams 'Install Ubuntu Server' set gfxpayload=keep linux /install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed nomodeset quiet -- initrd /install/initrd.gz
- [Only 6,1] Press F10 to boot the Ubuntu LiveUSB. Skip this step if installing on 5,1.
- Install Ubuntu. I installed it to a USB 3.0 external hard drive because I wanted to preserve Mac OS X in case somebody else inherited this computer later. Install the bootloader on the desired device.
- Still in Ubuntu LiveUSB, modify EFI to boot Ubuntu. Follow the steps in this tutorial to get Ubuntu to boot in EFI mode (no need for refind). I did try to use rEFInd but while Ubuntu did boot, it couldn’t use the monitor, even setting nomodeset. Here are the commands I used:
sudo apt-get update
sudo apt-get install efibootmgr
Check your EFI to see what Ubuntu is called:
Set Ubuntu to boot first:
sudo efibootmgr -o 0,80
- [Only 6,1] Now it should be possible to reboot and Ubuntu should present the boot screen where different kernels can be chosen. If you see that screen, add “nomodeset” to the boot parameters by pressing “e” in the boot screen. Add “nomodeset” to the end of line starting with “linux”, similarly to step 3.
- [Alternative to 7.] In case you don’t see the boot screen, boot the LiveUSB again. Mount the freshly installed / (replace sdc3 by the partition that contains /)
sudo mount /dev/sdc3 fix
cp fix/boot/grub/grub.cfg fix/boot/grub/grub.cfg.old
sudo nano fix/boot/grub/grub.cfg
This file shouldn’t be edited manually, but for the first boot it’s OK. Add nomodeset to the first entry so it looks like this:
linux /boot/vmlinuz-3.19.0-66-generic.efi.signed root=UUID=242526b7-2821-473d-b0dc-9e9a48ea6364 ro nomodeset quiet splash $vt_handoff
- Reboot the LiveUSB Ubuntu, remove the pendrive and Ubuntu should boot normally. It does take a long time to boot and a purple screen (desktop edition) is shown for a while. Eventually it does boot to a full Ubuntu.
- [Only 6,1] Insert a USB WiFi adapter, update apt-get. Install Broadcom drivers to use the built-in WiFi:
sudo apt-get install bcmwl-kernel-source
- [Only 6,1] After the first boot, permanently add nomodeset as a boot parameter: Edit file /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
sudo update-grub; sudo update-grub2
The computer still boots Mac OS X. I just need to hold Alt while booting and I can choose “Macintosh HD” to boot. Not that I care about having Mac OS X there, but this way I can easily restore the computer back to its original state. I haven’t tested, but it should be a matter of using efibootmgr to reset EFI to boot Mac OS X only:
sudo efibootmgr -o 80
In this setup, Ubuntu is on /dev/sdb but mounts /dev/sda1 (the original Mac SSD), which contains /boot/, a vfat partition. On a Mac Pro 5,1 (late 2010), I physically removed the hard drive containing Mac OS X and installed Ubuntu to a new drive. I created a 200 MB vfat /dev/sda1 as /boot and installed Ubuntu as usual. I was able to single boot Ubuntu without any hiccups.
By the way, installation was easier than in the 6,1 because I didn’t need to use nomodeset; once I had the LiveUSB drive it was just like installing Ubuntu on a regular PC.
I later installed Ubuntu server. The process is the same as the one for the desktop edition.
Due to some bug in Xorg, when running a desktop Ubuntu on the Mac Pro 6,1 and disconnecting the VGA cable, I would get 100% CPU usage caused by kworker. The command below fixed the problem.
sudo sh -c "echo disable > /sys/firmware/acpi/interrupts/gpe16
When I removed Xorg, the problem went away and I could disconnect and connect the VGA cable without any increase in CPU activity. The server edition doesn’t present this problem.
I find the design of the Mac Pro the cheesiest thing ever. Apple designers: “Let’s put as many round edges as possible on this computer because round is cool, right?” No, it looks like an expensive trash can on my desk or futuristic food processor. Tacky, tacky.