How to install Fedora 44 on a 2019 Intel T2 MacBook Air
This guide installs Fedora 44 on a 2019 Intel MacBook Air with an Apple T2 chip and brings every piece of hardware up: keyboard, trackpad, sound, camera, Wi-Fi, suspend, and hardware video decode. It assumes you are comfortable with the Fedora installer, dnf, and editing system files, and that you are willing to wipe the Mac.
Target machine:
- MacBook Air (Retina, 13-inch, 2019)
- Intel Core i5, 8 GB RAM
- Apple T2 chip
- Fedora 44 (Desktop / i3)
You need a Fedora 44 USB installer, a USB-C dock with wired Ethernet (a Minix NEO C Plus here), and a USB keyboard and mouse for the install (the internal keyboard and trackpad do not work until the T2 kernel is in place). Wi-Fi does not work until later, so the dock's Ethernet is your only network during setup.
Allow external boot
The T2 chip blocks external boot by default. Turn it off in macOS Recovery.
Hold Command-R at power-on to boot macOS Recovery, then open Utilities → Startup Security Utility and set:
- Secure Boot: No Security
- External Boot: Allow booting from external or removable media
Boot the Fedora installer
Insert the Fedora USB installer via the USB-C dock. Power on holding Option (Alt), choose EFI Boot, and install Fedora as normal.
At the software-selection screen this guide uses the i3 group ("i3 window manager": i3, i3status, i3lock, lightdm, dmenu) plus the i3-extended group ("i3 window manager (supplemental packages)": alacritty, rofi, qutebrowser, tmux). The T2 bring-up below is desktop-agnostic. To add the i3 groups after install instead:
sudo dnf group install i3 i3-extended
The internal keyboard and trackpad will not work during the install — use the external USB keyboard and mouse.
First boot: what works and what doesn't
On stock Fedora 44, straight after install, expect this state:
Working:
- display and graphics
- external USB keyboard and mouse
- Ethernet via the USB-C dock
Not working yet:
- internal keyboard
- internal trackpad
- sound
- Wi-Fi
Use wired Ethernet through the dock for the next steps.
Install the T2 kernel and support
Swap Fedora's kernel for the T2 kernel from the sharpenedblade/t2linux COPR (Fedora's community package repository), then reboot:
sudo dnf copr enable sharpenedblade/t2linux
sudo dnf swap --from-repo="copr:copr.fedorainfracloud.org:sharpenedblade:t2linux" kernel kernel
sudo dnf install t2linux-release
sudo reboot
After the reboot, the internal keyboard, trackpad, sound and webcam work.
If the T2 kernel fails to boot, pick the previous kernel from the GRUB menu, or boot the Fedora USB and run sudo dnf swap kernel kernel --repo=fedora to restore the stock kernel.
Fix Wi-Fi firmware
Wi-Fi needs Apple's Broadcom firmware, which the T2 project cannot redistribute — so it ships a script that fetches it from Apple. If Wi-Fi is missing, confirm the cause:
dmesg | grep -i brcm
The failing firmware load looks like this:
Direct firmware load for brcm/brcmfmac4355c1-pcie.apple... failed with error -2
Run the T2 firmware helper from the t2linux wiki:
curl -LO https://wiki.t2linux.org/tools/firmware.sh
bash firmware.sh
It offers three ways to get the firmware:
1. Retrieve from EFI partition 2. Retrieve directly from macOS 3. Download macOS Recovery Image from Apple and extract firmware
If you have wiped macOS, choose 3 — the script downloads a recovery image from Apple, extracts the firmware, installs it, and reloads the drivers. If macOS is still on the disk, options 1 or 2 are faster.
Confirm the interface appears, then connect:
nmcli device
nmcli device wifi list
nmcli device wifi connect "YOUR_SSID" password "YOUR_PASSWORD"
If the Wi-Fi device (for example wlp2s0) does not appear in nmcli device, the firmware did not load — re-run bash firmware.sh and check dmesg | grep -i brcm again.
Fix lid-close suspend when docked
Docked, Fedora may treat the machine as a desktop and ignore the lid. Force suspend on lid close in all cases.
sudo mkdir -p /etc/systemd/logind.conf.d
sudo tee /etc/systemd/logind.conf.d/lid.conf >/dev/null <<'EOF'
[Login]
HandleLidSwitch=suspend
HandleLidSwitchExternalPower=suspend
HandleLidSwitchDocked=suspend
EOF
sudo systemctl restart systemd-logind
Test it: close the lid, wait 30 seconds, open it, and confirm keyboard, trackpad, display and Wi-Fi all return.
Enable RPM Fusion for hardware video decode
Stock Fedora ships a stripped multimedia stack, so live H.264 (video calls, live streams) can be choppy on this dual-core i5. Before enabling RPM Fusion, Firefox's about:support reports H.264 hardware decode blocklisted:
H264_HW_DECODE Status: blocklisted FEATURE_FAILURE_VIDEO_DECODING_MISSING media.codecSupportInfo: H264 SWDEC
Enable RPM Fusion and swap in the full codec stack:
sudo dnf install \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-44.noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-44.noarch.rpm
sudo dnf swap ffmpeg-free ffmpeg --allowerasing
sudo dnf install mesa-va-drivers-freeworld
Restart Firefox (or reboot) and re-check about:support. Hardware decode is on:
H264_HW_DECODE Status: available media.codecSupportInfo: H264 SWDEC HWDEC HWENC
If it still shows blocklisted, run vainfo — if it lists no VA-API entrypoints, mesa-va-drivers-freeworld is not active; reinstall it and reboot.
Test the webcam
sudo dnf install v4l-utils
v4l2-ctl --list-devices
ffplay /dev/video0
The FaceTime HD Camera shows up as /dev/video0.
Verification commands
Use these to confirm the state of the machine:
nmcli device # network devices and state
lspci -nn # PCI devices and IDs
lsmod | grep -E 'brcm|apple|spi|hid|snd' # T2/Broadcom/input/sound modules
vainfo # VA-API hardware video decode
systemctl status systemd-logind # lid events
journalctl -b | grep -Ei 'suspend|resume|PM:' # suspend/resume this boot
Final state
With all steps done, the following work: Retina display, Intel graphics, internal keyboard, trackpad, speakers, microphone, webcam, Wi-Fi, lid-close suspend, resume, and Firefox H.264 hardware decode.