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
- USB-C -> USB-A
- External Keyboard
- Ethernet to USB
- USB Drive
Step 1: Flashing Our Drive
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
[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”:
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
Now to build the bridge driver.
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
Note: You have to make a separate user account with sudo permission
Step 7: WiFi
Coming soon, along with touchbar support. Stay tuned!