Arch Linux on Apple Machines With the T2.

Arch Linux on Apple Machines With The T2


The goal of this will be to show you how to bypass the T2 chip on the new apple machines that blocks you from installing Arch linux, now you can tell your friends “i use arch btw” and be a iSheep all at once

Note: None of this was made by myself, all credits to the respective creators, you can check them out here

Required Things

  • USB-C -> USB-A
  • External Keyboard
  • Ethernet to USB
  • USB Drive

Step 1: Flashing Our Drive

The first thing we need to do is flash the ISO to our USB Drive using Etcher

Step 2: Booting into Arch

After we’ve flashed our USB drive with the required ISO we can go ahead and use the USB-C -> USB-A Dongle and plug it into our Macbook, Once we’ve done this we can turn off our Macbook and hold the “Option” key while its booting to allow us to boot into our USB Drive.

Note: You must enable booting from a external device, See how to here

Step 3: Installing Arch

Once we have booted into our drive, we will see the standard archiso command line, Follow the guide on the Arch Wiki until you finish the “Network Configuration” Note 1: what is normally /dev/sda is /dev/nvme0n1 Note 2: You can keep the current 300MB EFI partition and reuse it.

Step 4: Installing Grub

This is where this gets a bit tricky, if we try to write to the EFI it will cause a kernal panic. So we have to do some magic. Exit out of the arch-chroot we used before, mount your root partition to /mnt if it isnt already(mount /dev/nvme0n1p3 /mnt) and mount your EFI partition to /mnt/boot(mount /dev/nvme0n1p1 /mnt/boot). Now we can use systemd-nspawn to load up a container systemd-nspawn -D /mnt and then run pacman -S grub to install grub. Once grub has been installed we can install grub using grub-install if necessary you can install efibootmgr with pacman -S efibootmgr.

Note: Do not reboot.

Step 5: Installing our custom kernel

Exit our systemd-nspawn from before and head back to the arch-chroot add the following to /etc/pacman.conf

Server =$repo/$arch

Now we run pacman -Syu to update the package database, pacman -S linux-mbp linux-mbp-header to install the kernal, sudo mkinitcpio -p linux-mbp to prepare the files. Once this is completed we run grub-config grub-config -o /boot/grub/grub.cfg to add the new boot options

Note: You can reboot now too see if your grub install works

Step 6: Keyboard drivers

The first thing we have to do is to install “Yay”:

sudo pacman -S git gcc make fakeroot binutils
git clone
cd yay
makepkg -si

Once those are done we can run yay --editor=nano --editmenu -S macbook12-spi-driver-dkms When it asks us what packages we’d like to edit we select “All” / Type “A”. The line that starts with source( replace with

Now to build the bridge driver.

git clone
cd mbp2018-bridge-drv
cp bce.ko /usr/lib/modules/extramodules-mbp/bce.ko

(Everytime you update linux-mbp / the kernel you must recompile this) Now to have it load on boot we create a file in /etc/modules-load.d/bce.conf that contains bce Reboot :)

Note: You have to make a separate user account with sudo permission

Step 7: WiFi

Coming soon, along with touchbar support. Stay tuned!

This post is licensed under CC BY 4.0 by the author.