This guide shall help you in installing a Debian or Ubuntu based Linux distro, which is not available as a modified ISO with T2 support.
Some popular distros include:
- Linux Mint
- elementary OS
- Zorin OS
- Kali Linux
- Other Ubuntu flavours like Ubuntu unity etc.
- USB-C to USB adapter
- Wired internet connection (Ethernet/USB tethering) or Wi-Fi adapter compatible with Linux
- External keyboard and mouse
Installation fails when installing the bootloader (Eg: GRUB)
It is possible that during installation, when the installer is installing the bootloader (GRUB in most cases), the installation may fail. This is because the distro's ISO is using an old Linux kernel which doesn't support writing to the NVRAM of T2 Macs. In such a case, boot into the ISO again. When the initial menu gets displayed having options to try/install the distro, press "e" on the option you otherwise would have chosen to install. This will open the command line. Add
efi=noruntime to the command line and press "F10" to boot. This should fix the issue.
Due to a bug in Pop!_OS installer, the partition sizes shown are incorrect during manual partitioning step. As a workaround, you may follow the instructions given in this GitHub issue in the live ISO environment to fix the installer and then start the installation.
- Follow the Pre-installation steps to prepare your Mac for installation.
- Boot into the Live ISO. You should now be in the GRUB boot menu. Select the option which is relevent to you.
- Start the installer and install it like normal until you get an option to manually specify partitions.
Find the partition you made for Linux when you were following the Pre-installation steps. MAKE SURE TO SELECT THE RIGHT PARTITION OR ELSE YOUR DATA WILL BE LOST. Delete it to make free space. You'll need to make these partitions:
If you want, you can make seperate partitions for swap,
/bootetc as you do in a normal PC.
The partition to be made compulsorily is the one mounted at
/and formatted to ext4 or btrfs.
If the installer used by your distro is
ubiquity, which is the one used in Ubuntu, Linux Mint etc., then you can leave EFI Boot alone. If you are using a separate EFI partition, then you shall have to separate it out after installation by following this guide.
For other installers, you need to mount
nvme0n1p1, or your separate EFI partition (whatever case applies to you) at
/boot/efi. If the installer supports the "boot" flag, set it as well for your EFI partition.
Continue the rest of the setup.
- Once it's finished, you can reboot without your installation media. Hold down Option (⌥) while booting, then select EFI Boot and press enter.
Adding T2 support¶
After installation, we need to install a kernel having patches to support the T2 Macs for the internal keyboard, trackpad, touchbar, audio, Wi-Fi etc. to work. In order to do so:
Boot into your new installation.
Connect to the internet using Ethernet/USB tethering/external Wi-Fi adapter.
Add the t2-ubuntu-repo apt repo by running:
curl -s --compressed "https://adityagarg8.github.io/t2-ubuntu-repo/KEY.gpg" | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/t2-ubuntu-repo.gpg >/dev/null sudo curl -s --compressed -o /etc/apt/sources.list.d/t2.list "https://adityagarg8.github.io/t2-ubuntu-repo/t2.list" sudo apt update
Now install the kernel upgrade script.
- If your distro is Ubuntu based, run:
sudo apt install t2-kernel-script
- If your distro is Debian based, run:
sudo apt install t2-kernel-script-debian
Then upgrade your kernel to a T2 kernel by running:
Install the audio configuration files by running:
sudo apt install apple-t2-audio-config
Note: If your distro is using PulseAudio by default, consider switching to PipeWire as mentioned in the audio guide.
Follow the Wi-Fi guide to get internal Wi-Fi working.
If your Mac has a Touch Bar, install
sudo apt install tiny-dfr
Note: Make sure you restart your Mac after installing
tiny-dfr. In order to configure your Touch Bar, run
sudo touchbarand follow the on-screen instructions.
Basic set up¶
After installing the new kernel, follow the Basic setup guide. You shall mainly have to follow the Add necessary kernel parameters and Make modules load on boot sections. If using disk encryption (LUKS), then follow the Make modules load on early boot section as well. Rest have been set up automatically by the kernel upgrade script.