This project has reached the end of its development. Please start using packages/readmes co-authored by t2linux group.
Migration to t2linux/fedora
-
First update your mbp-fedora installation to the latest (possible) version of Fedora by following the tutorial from down below (section: How to upgrade current mbp-fedora installations)
- I was able to only update mbp-fedora to F39 with the latest version of mbp-fedora-kernel
-
Add t2linux copr repo and install newer kernel and config packages
sudo -i
### Execute as root
## Create yum repo and change $releasever in baseurl= line to the latest one available here (i.e.: 41): https://copr.fedorainfracloud.org/coprs/sharpenedblade/t2linux
vi /etc/yum.repos.d/t2linux.repo
#########
[copr:copr.fedorainfracloud.org:sharpenedblade:t2linux]
name=Copr repo for t2linux owned by sharpenedblade
baseurl=https://download.copr.fedorainfracloud.org/results/sharpenedblade/t2linux/fedora-$releasever-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://download.copr.fedorainfracloud.org/results/sharpenedblade/t2linux/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1
priority=80
#########
### i.e.:
#########
[copr:copr.fedorainfracloud.org:sharpenedblade:t2linux]
name=Copr repo for t2linux owned by sharpenedblade
baseurl=https://download.copr.fedorainfracloud.org/results/sharpenedblade/t2linux/fedora-41-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://download.copr.fedorainfracloud.org/results/sharpenedblade/t2linux/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1
priority=80
#########
## remove mbp-fedora-t2 packages and proceed with t2linux ones
dnf remove mbp-fedora-t2-config mbp-fedora-t2-repo
rm -rf /etc/yum.repos.d/mbp-fedora.repo
dnf upgrade --refresh
dnf install t2linux-config
- Update to the latest version of Fedora once again by following the tutorial from down below (starting from the point 3, we don’t need to update mbp-fedora-kernel as we are now using t2linux fedora kernel) (section: How to upgrade current mbp-fedora installations)
- Cleanup manual changes and install all t2linux packages:
dnf remove t2linux-config
dnf install t2linux-release t2linux-repos
rm -rf /etc/yum.repos.d/t2linux.repo
reboot
- To modify TouchBar configuration go to:
/usr/share/tiny-dfr/config.toml
- i.e. to enable media keys as default modify line:
MediaLayerDefault = false to MediaLayerDefault = true and restart tiny-dfr service systemctl restart tiny-dfr.service
- or to come back to stock stop tiny-dfr service:
systemctl disable tiny-dfr
mbp-fedora - DEPRECATED

Fedora ISO with Apple T2 patches built-in (Macbooks produced >= 2018).
All available Apple T2 drivers and patches are integrated into this ISO.
Kernel: https://github.com/mikeeq/mbp-fedora-kernel
Kernel patches: https://github.com/t2linux/linux-t2-patches
Tested on: Macbook Pro 15,2 13" 2019 i5 TouchBar Z0WQ000AR MV972ZE/A/R1 && Macbook Pro 16,2 13" 2020 i5
Boot ROM Version: 220.270.99.0.0 (iBridge: 16.16.6571.0.0,0)
macOS Mojave: 10.14.6 (18G103)
How to install
-
Turn off secure boot and allow booting from external media - https://support.apple.com/en-us/HT208330
-
Download .iso from releases section - https://github.com/mikeeq/mbp-fedora/releases/latest
- If it’s split into multiple zip parts, i.e.:
livecd.zip and livecd.z01 you need to download all zip parts and then
- join split files into one and then extract it via
unzip
- or extract downloaded zip parts directly using:
- on Windows
winrar or other supported tool like 7zip
- on Linux you can use
p7zip, dnf install p7zip and then to extract 7za x livecd.zip
- on MacOS you can use
-
Next you can check the SHA256 checksum of extracted .ISO to verify if your extraction process went well
- MacOS:
shasum -a 256 livecd-fedora-mbp.iso
- Linux
sha256sum livecd-fedora-mbp.iso
- please compare it with a value in
sha256 file available in github releases
-
Burn the image on USB stick >=8GB via:
- Fedora Media Writer
dd
- Linux
sudo dd bs=4M if=/home/user/Downloads/livecd-fedora-mbp-201908181858.iso of=/dev/sdc conv=fdatasync status=progress
- MacOS
-
try to find under which /dev/ your USB stick is available sudo diskutil list
-
check if any partitions from it are mounted df -h, if they are please unmount sudo diskutil unmount /dev/disk2s1
-
exec sudo dd if=/Users/user/Downloads/livecd-fedora-mbp-201908181858.iso of=/dev/disk2 bs=4m
-
if dd is not working for you for some reason you can try to install gdd via brew and use GNU dd command instead sudo gdd bs=4M if=/Users/user/Downloads/livecd-fedora-mbp-201908181858.iso of=/dev/disk2 conv=fdatasync status=progress
# To install gdd via brew, execute
brew install coreutils
-
don’t worry if dd command execution is slow on MacOS, it can take a while due to XNU’s poor I/O performance
Rufus (GPT)- https://rufus.ie/, if prompted use DD mode
- Please don’t use
livecd-iso-to-disk as it’s overwriting ISO default grub settings and Fedora will not boot correctly!
-
Install Fedora
-
First of all I recommend to shrink (resize) macOS APFS partition and not removing macOS installation entirely from your MacBook, because it’s the only way to keep your device up-to-date. macOS OS updates also contains security patches to EFI/Apple T2
-
Boot Fedora Installer from USB drive directly from macOS boot manager. (You can boot into it by pressing and holding Option key (ALT key) after clicking the power-on button when your computer was turned off or on restart/reboot when Apple logo is shown on the screen).
- Usually there will be two/three (can be one in newer versions of mbp-fedora) USB boot options available, usually the last one works for me. (There are multiple boot options, because there are three different partitions in the ISO to make the ISO bootable on different set of computers: 1) ISO9660: with installer data, 2) fat32, 3) hfs+)
-
I recommend using standard partition layout during partitioning your Disk in Anaconda (Fedora Installer)
/boot/efi - 600MiB EFI FAT32
/boot - 2GiB EXT4
/ - xxxGiB EXT4
You can leave the desired capacity value empty for the last partition, Anaconda will allocate all free disk space to that partition when defining it.

You can also encrypt your main partition using LUKS

-
To install additional languages (only English is available out of the box), install appropriate langpack via dnf dnf search langpacks, i.e.: to install Polish language pack execute: dnf install langpacks-pl
-
You can change mappings of ctrl, option keys (PC keyboard mappings) by creating /etc/modprobe.d/hid_apple.conf file and recreating grub config. All available modifications could be found here: https://github.com/free5lot/hid-apple-patched
sudo -i
# /etc/modprobe.d/hid_apple.conf
options hid_apple swap_fn_leftctrl=1
options hid_apple swap_opt_cmd=1
# Refresh dracut (initramfs)
dracut -f
-
To change function key mappings for models with touchbar see modinfo apple_ib_tb and use echo 2 > /sys/class/input/*/device/fnmode instead of the hid_apple options. See
this issue
-
Setup wifi and other model specific devices by following guides on wiki.t2linux.org - https://wiki.t2linux.org/guides/wifi/
How to upgrade current mbp-fedora installations
# Docs: https://docs.fedoraproject.org/en-US/quick-docs/dnf-system-upgrade/
sudo -i
# 1. Make sure your OS is up to date
dnf update -y --refresh
reboot
# 2. Update mbp-fedora-kernel
## update_kernel_mbp has built-in selfupgrade function, so when it fails it's just due to script update - please rerun everything should be good on second run
KERNEL_VERSION="6.4.16-f38" UPDATE_SCRIPT_BRANCH="v6.4-f38" update_kernel_mbp
reboot
# 3. Update your OS to include all changes made in mbp-fedora-t2-config RPM
dnf update -y --refresh
reboot
# 4. Install dnf-plugin-system-upgrade
dnf install -y dnf-plugin-system-upgrade
# 5. Upgrade to new OS version
## If you're trying to upgrade older version of mbp-fedora to latest version, please repeat a process by upgrading only to one major release of Fedora, i.e.: Fedora 36 -> 37 -> 38, 38 -> 39 by changing the number passed to `--releasever` argument
dnf system-upgrade download -y --releasever=39
# 6. Reboot your Mac
dnf system-upgrade reboot
# 7. After reboot clean old packages
dnf clean packages
## 7.1 Clean all dnf cache
dnf clean all
## 8. Clean all unneeded packages
dnf autoremove -y
## 9. Update your new version of Fedora
dnf update -y --refresh
reboot
Not working
Partially working
- Suspend - really unstable, I recommend disabling it. If you would stuck in sleep mode, try to keep pressing power off button for a while to force poweroff and then turn on the Macbook.
- Touch Bar, if you encounter any issues, I recommend reboot to MacOS/Windows to initialize TouchBar and then back to Linux - it should fix the problem.
TODO
- disable not working camera device
-
there are two video devices (web cameras) initialized/discovered, don’t know why yet
➜ ls -l /sys/class/video4linux/
total 0
lrwxrwxrwx. 1 root root 0 Aug 23 15:14 video0 -> ../../devices/pci0000:00/0000:00:1d.4/0000:02:00.1/bce/bce/bce-vhci/usb7/7-2/7-2:1.0/video4linux/video0
lrwxrwxrwx. 1 root root 0 Aug 23 15:14 video1 -> ../../devices/pci0000:00/0000:00:1d.4/0000:02:00.1/bce/bce/bce-vhci/usb7/7-2/7-2:1.0/video4linux/video1
➜ cat /sys/class/video4linux/*/dev
81:0
81:1
Known issues
- Kernel/Mac related issues are mentioned in kernel repo
- internal iBridge network interface
- Anaconda sometimes could not finish installation process and it’s freezing on
Network Configuration step, probably due to iBridge internal network interface
- internal iBridge network interface is getting discovered and causing slow OS boot
workaround - two kernel modules responsible for loading it are disabled by default in mbp-fedora
echo "# Disable Unused Apple Ethernet
blacklist cdc_ncm
blacklist cdc_mbim" | sudo tee -a /etc/modprobe.d/apple_internal_eth_blacklist.conf
- Macbooks with Apple T2 can’t boot EFI binaries from HFS+ formatted ESP - only FAT32 (FAT32 have to be labelled as msftdata).
workaround applied - HFS+ ESP is reformatted to FAT32 in post-scripts step and labelled as msftdata fixed in upstream
ctrl+x is not working in GRUB, so if you are trying to change kernel parameters - start your OS by clicking ctrl+shift+f10 on external keyboard
Docs
Fedora
Github
Old
Other
Credits
- @MCMrARM - thanks for all RE work
- @ozbenh - thanks for submitting NVME patch
- @roadrunner2 - thanks for SPI (touchbar) driver
- @aunali1 - thanks for Kernel Patches
- @ppaulweber - thanks for keyboard and Macbook Air patches
- @AdityaGarg8 - thanks for support and upkeeping kernel patches
- @kekrby for T2 Audio config
- @Redecorating for Arch support
评论