Skip to content

j514s (MacBook Pro 14" M3 Pro): M3 handoff works from an Asahi-installer install (stage 1 v1.6.1) #360

Open

Description

@cachebag

Machine: apple,j514s / apple,t6030, MacBook Pro (14-inch, M3 Pro, Nov 2023), 11 cores
Firmware: asahi,os-fw-version = 14.7, asahi,system-fw-version = 26.6.2 (stub 14.8.3, iBoot-10151.140.19.700.2)
Build: aurora-2026.10.17.20, linux-aurora 7.1.12.aurora2-20261017.20, m1n1-aurora 1.6.1.aurora17-5, mesa-m3 26.1.4.m3.2-5, mesa-m3-native-pro 26.1.4.nativepro.20261013-10
m1n1 guard: did not fire
Touch ID: not supported on M3 (apple_sep: no platform profile for this SoC; the SEP stays disabled)
Thunderbolt: no dock, not tested
M3 path: handoff with --m3-handoff

This Mac was set up with the Asahi installer, not the Omarchy one, so m1n1 stage 1 reports clean v1.6.1 rather than v1.6.1-dirty. The released installer refuses --m3-handoff on it ("its m1n1 stage 1 is v1.6.1"). I installed from a branch that admits clean v1.6.1 on j514s/t6030 under the same conditions the Airs already get (14.7 or 14.8.3 OS firmware, the 14.8.3 stub, no oslog overlap) and only with --m3-handoff: https://github.com/cachebag/linux-aurora/tree/j514s-handoff (commit 8d8d84b, with tests). The installer's 40 test_m3_handoff tests pass with it.

What worked

  • m1n1 handoff boots: GRUB, then the desktop on the built-in panel, GPU accelerated. No overlap node, three dcp-oslog nodes.
  • GPU: OpenGL renderer string: Apple M3 Pro (G15S B1), mesa-m3 session decision=active (Hyprland 0.57.1 started via uwsm start hyprland.desktop).
  • Built-in panel 3024x1890 (74 notch rows hidden).
  • 120 Hz: stock .20 presents at 60 fps on the 120 Hz mode (es2gears_wayland: 60.0 fps). With .swap_timestamps = true on the T6030 record (PR drm/apple: time-stamp T6030 swaps on 14.7 for 120 Hz #358) it measures 119.9 fps. The numbers below are from a locally rebuilt appledrm.ko with that change; everything else is the stock .20 kernel.
  • Lid close suspends with s2idle and lid open resumes (one ~42 s cycle tested): PM: suspend entry (s2idle) / PM: suspend exit.
  • Audio (asahi-audio + pipewire-audio): headphone sink, headset mic, j514-mic and j514-convolver filter chains, speakersafetyd running. Headphones work; built-in speakers not tested.
  • Wi-Fi, Bluetooth, keyboard, trackpad, battery (macsmc-battery) work.

What did not

  • Text console is blank once appledrm takes over (Console: switching to colour frame buffer device 189x59 at ~2.7 s): only 3 swaps in 40 s while typing at the login prompt, so the getty login is invisible. Hyprland renders fine. On the first boot I had to basically log in blind.
  • No screen brightness control: no /sys/class/backlight device (IOMFB: Could not find Backlight service). Keyboard backlight (white:kbd_backlight) works.
  • Colours: same as J514S (M3 Pro 14"): built-in panel treats the X byte of XRGB8888 scanout as alpha, pure green/blue render black #308. Pure green and blue render black with XRGB8888 scanout; Hyprland patched to prefer ARGB8888 fixes it.
  • Two speaker amps fail to probe (see logs); whether the speakers play is untested.

Not tested: external displays (USB-C, HDMI), Thunderbolt, long suspend battery drain, --m3-report.

Logs

$ tr -d '\0' < /proc/device-tree/chosen/asahi,m1n1-stage2-version; echo
v1.6.1-omarchy.aurora17
$ ls /proc/device-tree/soc/dcp@*/apple,t6030-handoff
/proc/device-tree/soc/dcp@28ec00000/apple,t6030-handoff
$ for c in /sys/class/drm/card*-*; do ...; done
/sys/class/drm/card2-DP-1 disconnected
/sys/class/drm/card2-DP-2 disconnected
/sys/class/drm/card2-DP-3 disconnected
/sys/class/drm/card2-eDP-1 connected 3024x1890
/sys/class/drm/card2-HDMI-A-1 disconnected
$ ls /proc/device-tree/chosen/asahi,m1n1-oslog-overlap
ls: cannot access '/proc/device-tree/chosen/asahi,m1n1-oslog-overlap': No such file or directory
$ ls -d /proc/device-tree/reserved-memory/dcp-oslog@*
/proc/device-tree/reserved-memory/dcp-oslog@10003fec000
/proc/device-tree/reserved-memory/dcp-oslog@1000400c000
/proc/device-tree/reserved-memory/dcp-oslog@1000402c000
$ cat /var/lib/aurora-sep/m3-mode
handoff t6030-12
apple-t6030-display: PMP: this Mac's 61 values from /chosen/asahi,t6030-pmp
asahi 292400000.gpu: M3: GPU firmware identified as g15s build b0 (firmware 14.8.3) RTKit-2419.140.12
asahi 292400000.gpu: M3 G15S: power acknowledged, version=0x07031100 counts=0x00110209 core-mask=0x775bd, firmware=RTKit-2419.140.12.release
asahi 292400000.gpu: M3: firmware ready; common DRM GEM/VM frontend registered
[drm] Initialized asahi 0.2.0 for 292400000.gpu on minor 1
[drm] Initialized apple 1.0.0 for soc:display-subsystem on minor 2
apple-dcp 28ec00000.dcp: T6030 display started: 3024x1890@120, 74 notch rows hidden, 302x189 mm
apple-dcp 28ec00000.dcp: RTKit: syslog message: nifiedPipeline.cpp:5404: IOMFB: Could not find Backlight service
apple-dcp 28ec00000.dcp: RTKit: syslog message: PPipeDCP_H13P.cpp:12911: IOMFB: panel charge parity violation [0xf9389ad]
tas2764 0-0038: tas2764_i2c_probe: Failed to parse devicetree
tas2764 0-0039: tas2764_i2c_probe: Failed to parse devicetree

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions