Linux on Macbook Pro 2019 T2

Recently as of (11/05/2025) I have moved to Linux as the main operating system on my Macbook Pro 2019 and wanted to share the process!

You can follow along here or you can use the documentation at t2linux.org

Lets get into the steps that I took…

Step 1 Partition The Drive

The first step is to partition the drive there is many ways I did mine through the disk utility in macOS and since I am still going to dual boot macOS I kept the partitions to be about 50/50 between Linux and macOS.

Step 2 Disable Secure Boot

You need to have secure boot disabled in order to boot into a different operating system on the Macbook.

In order to disable it you on boot hold the command+r keys and it will put you into macOS recovery and in the task bar you will have the startup security settings under the utilities section. Then you can disable secure boot and allow to boot from non secure OS

Step 3 Download the ISO and boot into the live environment/live environment setup

Go to the following link to get the ISO of the distro that you want to use in this case it is arch Linux make sure to get the ISO from the t2linux.org website or go through the process of compiling your distro as it will have the software to use the built in keyboard, mouse, wifi, ethernet, touchbar, etc. Once you have a bootable USB I assume you can make one then just google tools like rufus or balena etcher just walk you through the process

To boot into the ISO you reboot the macbook and hold the option key and select the orange EFI boot option usually the farthest to the right.

Once booted into the live environment you are going to want to setup wifi/network. if you have a usb-c to Ethernet or you can use wifi but its kind of spotty.

To use wifi use the iwctl tool the commands are here

Step 4 Reformat the partions

We will be using cfdisk to do this as i think it is a superior utility >:)

In the live environment list the disks

lsblk

You will see an output like this:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0 233.8G  0 disk 
├─nvme0n1p1 259:1    0   300M  0 
├─nvme0n1p2 259:2    0  93.1G  0   
└─nvme0n1p3 259:4    0 140.3G  0

You will have three partitions the first is the EFI and the second one is the macOS partitions respectfully. We will be taking the third one that we created for Linux and reformatting/partitioning it.

Before that its good to explain what partition are needed for arch Linux to run as best as possible. they need a boot partition in this case we will reuse the macOS EFI, the second is a swap partition and lastly is the actual root Linux partition. So we will run the following command to repartitions the drive to make the Linux partition and the swap partition.

cfdisk /dev/DISKNAME 

The disk name will be replaced with the following disk name from the lsblk command we have earlier
(EX: nvme0n1)

Once in cfdisk utility we will delete the third partition we created for root Linux partition and with the free space recreate the two partitions with the first being the swap which is usually ram/2 or whatever you feel like but greater than 2gb.

I made mine 4G as I have 8GB of ram.

we will use all the remaining space for the main root Linux partition. after you have finished save/write the changes and exit.

Now if you did the following the lsblk should look something like the following:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0 233.8G  0 disk 
├─nvme0n1p1 259:1    0   300M  0 
├─nvme0n1p2 259:2    0  93.1G  0  
├─nvme0n1p3 259:3    0     4G  0 
└─nvme0n1p4 259:4    0 136.3G  0

You can see that I have have the 4G swap partition and the Linux partition

Now we will format the partitions so for the root Linux partition use the following command:

mkfs.ext4 /dev/root_partition

For the swap you will use the following command

mkswap /dev/swap_partition

Step 5 Mount the partitions

We will now mount the partitions

To mount the root partition use the following command

mount /dev/root_partition /mnt

For the swap partition use the following command

swapon /dev/swap_partition

For the EFI/Boot partition mount it using the following command to create the directory and mount it
(in my example it would be nvme0n1p1)

mount --mkdir /dev/efi_system_partition /mnt/boot

Step 6 Install Required Packages For System

Now we will install the required packages for the system. There is two methods both done very well on t2linux.org

If you want the more traditional arch Linux experience you can do the following:

pacstrap /mnt base linux-t2 linux-t2-headers apple-t2-audio-config apple-bcm-firmware linux-firmware iwd grub efibootmgr t2fanrd

I recommend also installing nano/vim for a text editor if you want

pacman -Sy TEXTEDITOR

If you do the pacstrap way you will need to add a repository to the following

first using a text editor open /mnt/etc/pacman.conf

Then add the following to the file; save and exit

[arch-mact2]
Server = https://mirror.funami.tech/arch-mact2/os/x86_64
SigLevel = Never

This is the other way to do it by running the following command

t2strap /mnt base linux-firmware iwd grub efibootmgr

This is how we install the files needed to go further.

Step 7 Configure The System

Now it is time to configure the system

The first command will be to generate the fstab and its best to use the UUID values instead of labels it just works better for a Macbook.

genfstab -U /mnt >> /mnt/etc/fstab

Okay now it is time to chroot into the system!

arch-chroot /mnt

Next we will run commands to set the clock and timezone these are needed to install packages

For the time zone do the following and change the region to the country and the city to the city you live in.

ln -sf /usr/share/zoneinfo/Region/City /etc/localtime

The next step is to set the hardware clock

hwclock --systohc

Now its time to editing the following /etc/locale.gen and remove the # from the line that has en_US.UTF-8 UTF-8 ; Save and exit then run the following command

locale-gen

Then create the file /etc/locale.conf and add the following to the file; save and exit

LANG=en_US.UTF-8

The next thing we will be adding a hostname to the system so open the following /etc/hostname and add the hostname you want my example was archbookpro but you can name it whatever but make sure to follow the following advice from the arch wiki

For advice on choosing a hostname, see RFC 1178. As explained in hostname(7), it must contain from 1 to 63 characters, using only lowercase a to z, 0 to 9, and -, and must not start with -.

Next we will create a new Initramfs

mkinitcpio -P

Lastly set a password for a root account!

passwd

Step 8 Bootloader!

Before we install/configure the bootloader we need to enable a service that we installed before

systemctl enable t2fanrd

Its finally time to do the final config of the bootloader. The bootloader bootloader of choice is GRUB just for its easy setup process

  • Edit /etc/defualt/grub
  • On the line with GRUB_CMDLINE_LINUX=”quiet splash”, add the following kernel parameters: intel_iommu=on iommu=pt pcie_ports=compat
  • Also this is for arch or endeavorOS only but you may need to add the following to the GRUB_CMDLINE_LINUX_DEFAULT = brcmfmac.feature_disable=0x82000 (This is to get IWD working properly as there are some network issues using arch Linux.
  • Run grub-install –target=x86_64-efi –efi-directory=/boot –bootloader-id=GRUB –removable
  • Run grub-mkconfig -o /boot/grub/grub.cfg to generate configuration file

Step 9 Final Packages Install

In chroot its a good time to install some packages that you might need

pacman -Sy networkmanager iwd nano

These are not essential but I recommend them because you will eventually need to install them to get wifi working with iwd if you have any network issues it is recommended to follow the steps provided in the t2linux.org wifi setup

Step 10 Reboot And Launch Into The Arch Install

Exit the chroot environment and reboot.

When rebooting the Macbook hold down the option key and instead of selecting the orange EFI boot option there will now be a new EFI option that looks the same as the macOS. Select that and you will boot into archlinux!

Continue to setup how you like your archlinux to be. I use windowmaker and xfce desktop environments.

Leave a Comment


The reCAPTCHA verification period has expired. Please reload the page.