Post

Arch Linux on Apple Machines With the T2.

Arch Linux on Apple Machines With The T2

Introduction


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” https://wiki.archlinux.org/index.php/installation_guide 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

1
2
[mbp-testing]
Server = https://packages.aunali1.com/archlinux/$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”:

1
2
3
4
sudo pacman -S git gcc make fakeroot binutils
git clone https://aur.archlinux.org/yay.git
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 https://github.com/roadrunner2/macbook12-spi-driver.git#branch=touchbar-driver-hid-driver with https://github.com/roadrunner2/macbook12-spi-driver.git#branch=mbp15

Now to build the bridge driver.

1
2
3
4
git clone https://github.com/MCMrARM/mbp2018-bridge-drv.git
cd mbp2018-bridge-drv
make
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.