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!