Skip to content

Installing Arch Linux on a Mac with the T2 Chip

Note: If you wish to use archinstall, there is a profile based on this guide which can be found on https://github.com/Redecorating/archinstall-mbp

You will need:

  • USB drive with at least 1GB
  • A way to plug it into your Mac (USB-C isn't USB-A)
  • A wired internet connection (i.e. USB-C to Ethernet dongle) or wifi (not all models support wifi, see Is my model supported? and follow the WiFi guide on macOS part accordingly. Put the firmware files and any packages you'll need to get WiFi working on the live environment in the partition you make in step 2b. If you don't know how to get these packages, you might want to do this from an Arch virtual machine or Docker container).

  1. If you are on a Mac that supports wifi, do the first step of the WiFi guide now. Make sure you will have the output of the command for later.
  2. Making a partition for Linux.

    1. Open the Bootcamp installer and follow it until it asks for a Windows ISO, this will clear space for a Linux partition (by removing APFS snapshots).
    2. In macOS Disk Utility, make a partition, format doesn't matter, but pick the amount of space that you want for Linux. You won't be able to resize your APFS partitions from the installer, so you must make space now.
  3. Creating bootable media

    1. Download an installer ISO from here.
    2. Put this image onto a USB stick, follow these instructions on the Arch Wiki.
  4. Disabling secure boot

    1. Follow this article's instructions.
    2. Once in startup security utility, turn secure boot to no security and enable external boot.
  5. Booting the live environment.

    1. Plug the USB in to your computer.
    2. Boot while holding the option key, this will put you in macOS Startup Manager.
    3. Select the orange EFI option with arrow keys and press return/enter on it.
  6. Follow the Arch Wiki guide from here up to "Format the partitions".

    1. The note on the Arch Wiki mentions the EFI system partition, there will be one at /dev/nvme0n1p1 and you can use this if you don't intend to install Windows/already have it installed. If you do intend to triple boot, refer to this guide.
    2. Mount the EFI partition that you intend to use for your bootloader on /mnt/boot/efi, and your other partitions on /, etc.
    3. Continue following the Arch Wiki's guide until "Install essential packages".

    4. Run curl -o key.asc https://dl.t2linux.org/archlinux/key.asc to obtain the signing key for t2 linux specific packages.

    5. Add the key to pacman using pacman-key --add key.asc and pacman-key --lsign 7F9B8FC29F78B339 to allow the key
    6. Update your pacman repositories with pacman -Syy

      Note: If this command errors you are either not using the correct iso (see step 3) or don't have internet (see "You will need" at the top of this document)

    7. Install the required packages into your new system with: pacstrap /mnt base linux-mbp linux-mbp-headers apple-bce-dkms-git dkms linux-firmware grub efibootmgr (ommit the grub efibootmgr packages from this if you intend to use systemd-boot as your bootloader).

    8. Continue following the Arch Wiki's guide until you get to installing a bootloader.
  7. In your chroot, install the DKMS modules for Keyboard, Trackpad, Audio and the Touchbar with this guide. Follow the Audio Config Guide too.

  8. Add Aunali1's repository to /etc/pacman.conf, with echo [mbp]\nServer = https://dl.t2linux.org/archlinux/\$repo/\$arch >> /etc/pacman.conf.
  9. Install a bootloader, probably Grub, but you can also use systemd-boot. Don't do both.

    1. Installing Grub:

      1. Edit /etc/default/grub, you'll need to install a text editor (i.e. vim or nano) with pacman -S PACKAGE_NAME for this step.
      2. On the line with GRUB_CMDLINE_LINUX="quiet splash", add the following kernel parameters: intel_iommu=on pcie_ports=compat
      3. Run grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB --no-nvram --removable.
      4. grub-mkconfig -o /boot/grub/grub.cfg
    2. Installing systemd-boot:

      1. bootctl --path=/boot/efi --no-variables install
      2. You may need to mask the systemd-boot-system-token service, as it writes to nvram and can cause panics at boot: systemctl mask systemd-boot-system-token.
      3. Install a text editor (i.e. pacman -S vim or pacman -S nano), and make the following edit for both /boot/efi/loader/entries/arch.conf and /boot/efi/loader/entries/arch-fallback.conf.
      4. Add intel_iommu=on pcie_ports=compat to the options line to add those kernel parameters.
  10. Make nvram/efivars automatically remount as readonly, as writing to them causes a panic (deleting and reading variables, however, does not): echo efivarfs /sys/firmware/efi/efivars efivarfs ro,remount 0 0 >> /etc/fstab. If this doesn't work, you can instead add the efi=noruntime kernel parameter as described when installing your bootloader.

  11. If your Mac supports wifi, you can follow the rest of the WiFi guide now or after rebooting into your install.
  12. You now will be able to select your Arch install in the macOS Startup Manager by holding option at boot.