Skip to content

M3-family support: SoC detection, software rendering, M3 installer path, branch kernels - #342

Closed
frybagivxx-gif wants to merge 6 commits into
omacom:quattrofrom
frybagivxx-gif:m3
Closed

M3-family support: SoC detection, software rendering, M3 installer path, branch kernels#342
frybagivxx-gif wants to merge 6 commits into
omacom:quattrofrom
frybagivxx-gif:m3

Conversation

@frybagivxx-gif

Copy link
Copy Markdown

Summary

Makes Omarchy Mac installable and usable on M3, M3 Pro and M3 Max Macs on the public Asahi trees as they are today, and shaped so the day Asahi ships the M3 display driver and GPU driver nothing here needs a migration.

Where Asahi is (September 2026): the kernel Asahi Alarm ships (7.1.6) has device trees for every M3 machine, m1n1 1.6.1 boots them, the installer lists them in expert mode against firmware 14.8.3. What is in no public tree: the M3 display driver wiring (a 14.7 DCP ABI exists in asahi-wip-7.2 and chadmed's dcp/14.8.3, but no branch attaches it to the M3 device trees) and any M3 GPU (G15) support in the kernel driver or Mesa. Asahi says an official M3 release is weeks away; the GPU is later.

  • bin/omarchy-hw-apple-soc — generation from the device tree (m1..m4), codename, and --gpu: whether the Asahi GPU driver is actually bound. Everything keys off that rather than a model list. (Related: Detect Apple Silicon generations from device tree #326, which does identity only; this is deliberately minimal and adds the GPU question.)
  • Software rendering when there is no GPU drivervulkan.sh installs vulkan-asahi only when the driver is bound; default/hypr/apple.lua (loaded from envs.lua next to nvidia.lua) sets AQ_NO_MODIFIERS, software cursors, no direct scanout and vfr, checked at every session start so a kernel that binds the driver turns them off by itself. install/hardware/apple/m3.sh says on the console what the machine will not do.
  • bin/omarchy-mac-asahi-install — runs on macOS (bash 3.2). The stock Asahi Alarm installer refuses M3 only because installer_data.json lists no image built against firmware 14.8.3; the Asahi developers' instruction for M3 testing is to add it by hand (Add M3, M3 Pro and M3 Max devices using macOS 14.8.3 OTA AsahiLinux/asahi-installer#424, Adds ENV var to get bat using the system theme omarchy#438). This fetches the same installer and images from asahi-alarm.org, adds "14.8.3" to every supported_fw, briefs the user, and hands over. On M1/M2 it runs the stock data unchanged.
  • pkgbuilds/linux-asahi-wip + bin/omarchy-mac-kernel-wip — build any branch of any Asahi fork with Asahi Alarm's kernel config and install it alongside linux-asahi (GRUB lists both). The branch is a build-time choice, so the M3 display branch is a one-line change when it is public.
  • Docsdocs/apple-m3.md, README step 1 M3 variant, manual note, and an M3 warning in omarchy-mac-setup before "Start?".

Test plan

  • test/shell.d/apple-soc-test.sh — 15 cases against stubbed device trees and sysfs (M1/M2/M3/M3 Max/M4, codename, --is, non-Apple, simpledrm-only vs asahi-bound vs platform-bus binding)
  • test/shell.d/apple-m3-test.sh — leaf wiring, vulkan gating, envs.lua, PKGBUILD parses and does not conflict, installer wrapper parses under bash 3.2, patch_installer_data against multi-line / one-line / already-present / empty / null lists, idempotent, target-name mapping
  • tests/test-asahi-compatibility.sh passes; tests/test-mac-setup.sh unchanged (132 pass / 10 fail on a macOS host, identical to quattro)
  • patch_installer_data run against the live https://asahi-alarm.org/installer_data.json: adds 14.8.3 to the five image entries, leaves tethered boot's null alone
  • Real install on a MacBook Pro 16 M3 Pro (J516s) — this is what I have and will report back on; not done before opening this so the approach can be reviewed first

🤖 Generated with Claude Code

jrsdunn123 and others added 6 commits September 4, 2026 13:52
…ection

Reads the SoC id from the device tree (t8103..t6051) and maps it to m1..m4,
prints the machine codename, and answers --gpu: whether the Asahi GPU driver
is actually bound, which is the question the M3 generation raises today.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The M3 generation boots the public Asahi kernel but its GPU (G15) has no
driver and its display is the firmware framebuffer. vulkan-asahi is now
installed only when the driver is bound, and default/hypr/apple.lua turns on
software-rendering settings (AQ_NO_MODIFIERS, software cursors, no direct
scanout, vfr) whenever omarchy-hw-apple-soc --gpu says there is no driver,
checked at every session start so a kernel that binds it turns them off.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The Asahi Alarm installer already knows every M3 device (expert mode,
firmware 14.8.3) but its installer_data.json lists no image built against
14.8.3, so on an M3 it stops with 'Your system firmware is too old'. The
Asahi developers' own instruction is to add 14.8.3 to supported_fw by hand
(asahi-installer PR 424). This does that against the stock package and
images, from macOS, in bash 3.2, and runs the stock data unchanged on M1/M2.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
M3 display support will be on a branch before it is in a tagged release,
and Asahi Alarm follows tags. The PKGBUILD builds any branch of any fork
with Asahi Alarm's kernel config and installs next to linux-asahi rather
than over it, so a branch that does not boot costs one reboot. The branch is
a build-time choice; omarchy-mac-kernel-wip drives it and refreshes GRUB.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
docs/apple-m3.md records where the public Asahi trees are for M3 (device
trees and boot: yes; display driver and GPU: not in any public branch), what
each piece of this repo does about it, how to install, and how to try a
newer kernel. The README's step 1 gets its M3 variant and omarchy-mac-setup
says what the machine will not do before asking to start.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Piped, BASH_SOURCE is empty and the guard never called main, so the script
printed nothing. Same guard omarchy-mac-setup uses.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@frybagivxx-gif

Copy link
Copy Markdown
Author

Opened from the wrong account by mistake; resubmitting from staccDOTsol.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants