UP | HOME

1. Linux

Summary

The first thing that needs to be done is Linux. I wanted to stick with Rocky Linux to mirror an HPC environment, however it doesn't support the 2018 T2 mac mini well. 1. The installer doesn't support "mactel-boot", even if installing on an external drive. This is worked around by running the installer on an Intel NUC. Furthermore once it does boot, the system throws a bunch of errors regarding the Apple SMC controller.

Good news is that there's a T2 Linux community that's created a nice device support. Sadly no T2 Rocky fork. There's a few other supported distros, and I chose Arch Linux because I've installed it before and it gives fine grain control over the installation.

Noa Himesaka's Branch

Device support

Everything I need is upstream, I'm not concerned about wifi or bluetooth drivers. The previous SMC error I've experienced was most likely due to other stuff.

Rundown of T2 Patches

Git repo: https://github.com/t2linux/linux-t2-patches/tree/main Linux main: https://github.com/torvalds/linux/tree/master/drivers Review as of: <2024-09-27 Fri 10:26>

General state of drivers

/Disclaimer: I'm not a security export. I know enough C to look at something and make sure it's not complete garbage. Nothing below is complete garbage./

Here's what we have:

  • 1001-Add-apple-bce-driver.patch
  • 1002-Put-apple-bce-in-drivers-staging.patch
  • 1004-HID-core-add-helper-for-finding-a-field-with-a-certa.patch
  • 1005-HID-hid-appletb-bl-add-driver-for-the-backlight-of-A.patch
  • 1006-HID-hid-appletb-kbd-add-driver-for-the-keyboard-mode.patch
  • 1007-HID-multitouch-support-getting-the-contact-ID-from.patch
  • 1008-HID-multitouch-support-getting-the-tip-state-from-HI.patch
  • 1009-HID-multitouch-take-cls-maxcontacts-into-account-for.patch
  • 1010-HID-multitouch-allow-specifying-if-a-device-is-direc.patch
  • 1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bars.patch
  • 1012-lib-vsprintf-Add-support-for-generic-FOURCCs-by-exte.patch
  • 1014-drm-format-helper-add-helper-for-BGR888-to-XRGB8888-.patch
  • 1015-drm-tiny-add-driver-for-Apple-Touch-Bars-in-x86-Macs.patch
  • 1017-HID-hid-appletb-kbd-add-support-for-fn-toggle-betwee.patch
  • 2008-i915-4-lane-quirk-for-mbp15-1.patch
  • 2009-apple-gmux-allow-switching-to-igpu-at-probe.patch
  • 3001-applesmc-convert-static-structures-to-drvdata.patch
  • 3002-applesmc-make-io-port-base-addr-dynamic.patch
  • 3003-applesmc-switch-to-acpi_device-from-platform.patch
  • 3004-applesmc-key-interface-wrappers.patch
  • 3005-applesmc-basic-mmio-interface-implementation.patch
  • 3006-applesmc-fan-support-on-T2-Macs.patch
  • 3007-applesmc-Add-iMacPro-to-applesmc_whitelist.patch
  • 3008-applesmc-make-applesmc_remove-void.patch
  • 3009-applesmc-battery-charge-limiter.patch
  • 4001-Input-bcm5974-Add-support-for-the-T2-Macs.patch
  • 7001-drm-i915-fbdev-Discard-BIOS-framebuffers-exceeding-h.patch
  • 8001-Add-APFS-driver.patch
  • 8002-Necessary-modifications-to-build-APFS-with-the-kerne.patch

Glossary

  • BCE: Buffer Copy Engine, communication channel for T2. Needed for VHCI and audio
  • VHCI: Virtual host controller, provides usb, keyboard, mouse, and other unknown things
  • Audio: Sound
  • HID: Human Interface Device: trackpad, keyboard built into mac
  • ACPI: Advanced Configuration and Power Interface, important interface between EFI and OS.
  • MMIO: Memory-mapped I/O, device communication through standard memory address space.

Modules

Use: 1001-Add-apple-bce-driver.patch

Use: 1002-Put-apple-bce-in-drivers-staging.patch

Apple BCE driver (VHCI and Audio support). Kernel config.

NA: 1004-HID-core-add-helper-for-finding-a-field-with-a-certa.patch

NA: 1005-HID-hid-appletb-bl-add-driver-for-the-backlight-of-A.patch

NA: 1006-HID-hid-appletb-kbd-add-driver-for-the-keyboard-mode.patch

NA: 1007-HID-multitouch-support-getting-the-contact-ID-from.patch

1008-HID-multitouch-support-getting-the-tip-state-from-HI.patch

1009-HID-multitouch-take-cls-maxcontacts-into-account-for.patch

1010-HID-multitouch-allow-specifying-if-a-device-is-direc.patch

1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bars.patch

Maybe: 1012-lib-vsprintf-Add-support-for-generic-FOURCCs-by-exte.patch

This is either for communicating with T2 or touchbar

NA: 1014-drm-format-helper-add-helper-for-BGR888-to-XRGB8888-.patch

DRM for touchbar

NA: 1015-drm-tiny-add-driver-for-Apple-Touch-Bars-in-x86-Macs.patch

x68 touchbar driver

NA: 1017-HID-hid-appletb-kbd-add-support-for-fn-toggle-betwee.patch

Internal apple keyboards to switch Media and function keys. Don't care.

Maybe: 2008-i915-4-lane-quirk-for-mbp15-1.patch

Fixes lane count for iGPU if dual boot GPUs. Might be applicable with thunderbolt eGPU.

NA: 2009-apple-gmux-allow-switching-to-igpu-at-probe.patch

Switch iGPU to AMD GPU

USE: 3001-applesmc-convert-static-structures-to-drvdata.patch

Makes applesmc struct

USE: 3002-applesmc-make-io-port-base-addr-dynamic.patch

Allows reconfiguring IO port for SCM

USE: 3003-applesmc-switch-to-acpi_device-from-platform.patch

ACPI drivers with SCM

USE: 3004-applesmc-key-interface-wrappers.patch

SMC io rw wrappers

USE: 3005-applesmc-basic-mmio-interface-implementation.patch

MMIO-based interface to communicate with SMC.

USE: 3006-applesmc-fan-support-on-T2-Macs.patch

SMC fan fix.

NA: 3007-applesmc-Add-iMacPro-to-applesmc_whitelist.patch

Add iMacPro to drivers/hwmon/applesmc.c

MAYBE: 3008-applesmc-make-applesmc_remove-void.patch

Make remove function void for linux 6.2

MAYBE: 3009-applesmc-battery-charge-limiter.patch

Batter charge limiter

NA: 4001-Input-bcm5974-Add-support-for-the-T2-Macs.patch

Trackpad driver

USE: 7001-drm-i915-fbdev-Discard-BIOS-framebuffers-exceeding-h.patch

Fix 4k framebuffer for i915 gpu

NA: 8001-Add-APFS-driver.patch

Don't want to mess up my macOS APFS driver.

NA: 8002-Necessary-modifications-to-build-APFS-with-the-kerne.patch

APFS driver.

(secret) Mac Mini 2018 Boot config

Author: Noah Pavuk

Exported: 2024-11-04 Mon 12:31

Emacs 27.2 (Org mode 9.4.4)

Validate