KaiT2en [ˈkaɪ̯zɛn] refers to the Japanese philosophy of "kaizen". Which means constant small improvements.
Kait2en is not a standalone distribution. By design. It can be installed on top of stock Fedora or T2Linux Fedora. It delivers T2 Mac driver support to stock Fedora using out-of-tree DKMS modules, which are constantly improved for later direct mainline kernel submission. This has some major advantages for users and developers alike:
- most users get a working daily driver out of the box. See problematic macs
- driver behaviour is isolated by a clean environment
- you always get the latest vanilla kernel directly from Fedora
- devs don't need to compile the kernel for debugging modules
- by distributing updates through OOTM, devs get instant feedback from users
- we are able to react to regressions instantly
Our goal is upstream to mainline kernel in the first place, but also to complement the T2linux community by offering an alternative development workflow. While pre-patched distributions serve a purpose, managing multiple custom flavors can introduce fragmented workarounds, which complicates driver developing and testing.
KaiT2en will not work on other distros than Fedora. In the first place we want a unified clean platform for debugging. We do not support ports to other distros. We know many of you prefer Arch. But we need our base to be as conventional as possible to get things sorted.
T2 Linux Fedora can be reverted to vanilla Fedora with KaiT2en on top using our revert script in 05-revert-t2linux-fedora.md after installation of KaiT2en.
The repository is meant to be used as an offline USB kit. Copy it to a USB drive, keep that drive connected, and run all commands from the repository root unless a guide says otherwise. The setup is intentionally explicit. You will use the terminal, run commands and know which file was installed where.
t2bcereplaces apple-bce. It is split into four separate upstreamable modules for core, vhci, (sg-)DMA, audio- working suspend out of the box for most T2 Macs with working touchbar after resume
- react-drm as replacement for tiny-dfr - content aware touchbar controls
- t2-fan-control is a GUI app for temperature/fan control curves that replaces t2fan-rd
t2bce_audioreplacesaaudiowith stutter-free audio and upstream-friendly UCM supportt2smcreplacesapplesmc, adds rtc, hwmon support, SMC sensor support and battery charge limiting- t2-smc-control is a GUI app for setting battery charge limit and inspecting rtc and real time SMC sensor data
- automatically fixes Apple's broken ACPI tables that show as
AE_AML_BUFFER_LIMITandAE_ALREADY_EXISTSin journal - always up-to-date vanilla Fedora kernel
Read the howto documents in order:
- Introduction
- Get Broadcom firmware from macOS
- Prepare macOS and the Fedora installer
- Install Broadcom firmware on Fedora
- Install KaiT2en modules and apps
- Revert T2 Linux Fedora to vanilla + KaiT2en
- Configure GPUs
Join the KaiT2en community on Discord
KaiT2en renames drivers it maintains because the original Fedora, upstream Linux and older T2 Linux drivers must be blocked during boot. If KaiT2en used the same module names, the kernel arguments that block the original drivers would also block our replacements.
The new names also make logs, lsmod, DKMS state and bug reports easier to
read.
| KaiT2en driver | Replaces or carries | Upstream state | Function |
|---|---|---|---|
hid_t2magicmouse |
hid_magicmouse with T2 patches |
Partial | Apple Magic Mouse, Magic Trackpad and T2 Wellspring trackpad HID support. |
t2bce_<module> |
apple-bce |
No | T2 bridge controller, VHCI devices, DMA and mailbox. |
t2bdrm |
appletbdrm |
Yes | Touch Bar display DRM device for react-drm. |
t2gmux |
apple_gmux |
Partial | GMUX handling on dual-GPU T2 Macs. |
t2hid |
hid_apple |
Yes | Apple HID quirks for T2 keyboards and related internal input devices. |
t2mfi_fastcharge |
apple_mfi_fastcharge |
Yes | iPhone and iPad fast charging on Apple USB controllers. |
t2smc |
applesmc, macsmc pieces |
No | Fan control, battery charge limit, hwmon sensors and RTC through the T2 SMC. |
t2touchbar_bl |
hid_appletb_bl |
Yes | Touch Bar backlight handling. |
t2touchbar_kbd |
hid_appletb_kbd |
Yes | Touch Bar keyboard mode handling. |
Contributions are welcome, especially when they move KaiT2en fixes closer to clean upstream Linux support.
Please keep changes and PR desciptions focused. You may use AI for debugging, but we will notice slop and we will refuse to review or even merge obvious slop. We are not interested in workarounds. There is a distinct difference in just making broken things work and fixing things.
Most Macs will run just fine out of the box. There are some Macs that have issues on a very low level, mostly GPU related.
- MacBook Pro A1990 15,1 SMU is different from other MacBooks. Resume is broken when running with dGPU as primary GPU. Users can workaround that as described in 06-configuring-gpus.md
- Mac Pro 7,1 needs the the Infinity Fabric Link jumpered and Wifi isn't working. Not much info here, since it's a rare bird.
- iMac 27" 5k will only display 4k. The cause is suspected to be around ACPI, EFI, SMC,
gmux,vgaswitcheroo... - iMac 20" and 27" show inconsistent GPU behaviour on boot like sporadical black screens.
Though with a very few exceptions everything is working OOTB when installing KaiT2en, we are still using some workarounds to make thinks work. In long terms this should be replaced with real fixes that can be upstreamed.
t2bceis our replacement for apple-bce. It is divided into separate modules for Core functions, DMA, VHCI and Audio. For upstreaming it needs code review and commenting T2 particularities (don't use AI on this).- We need a OSDW quirk in upstream ACPI/Thunderbolt drivers to get away from kernel param
!Darwin - Macbook 15,1 needs gmux, vgaswitcheroo, amdgpu and maybe even i915 work for the SMU to survive suspend.
- Mac Pro 7,1 is a rare snowflake and suffers an issue with the Infinity Fabric Link
- iMac situation is unclear where the dGPU is sporadically not properly intitialized on boot. Also 5k support remains an issue on 27" iMacs.
- Broadcom 4377 chips need a fix in brcmfmac to work around the firmware refusing D0 to D3cold transition.
- If anyhow possible find a way to make Apple Broadcom chips work without MacOS firmware.
- Get bridgeOS logs from T2 without macOS.
- AVE support needs reverse engineering-
- Fingerprint support needs reverse engineering.
KaiT2en-owned scripts, howto documents, project text and helper code are MIT licensed.
Kernel modules, apps and third-party tools may include code with different origins. Those components keep their own licenses in their directories.
