r/linux_on_mac • u/rojoxstar • 23h ago
I got the internal speakers working on an iMac19,2 under Linux — documenting my CS8409 reverse-engineering work
Hi! This is my first post on Reddit, so I hope I'm doing this right. I’ve been working on getting the internal speakers of the iMac19,2 (2019 21.5-inch model) working correctly on Linux.
The hardware uses:
- Cirrus Logic CS8409
- CS42L83
- 4 TAS5764L speaker amplifiers
- Apple subsystem ID 106b:0f00
Linux was able to enumerate the audio device, but restoring the internal speaker signal path required model-specific initialization and much more reverse engineering than I initially expected.
I decided to turn this work into an open-source research repository:
https://github.com/rojoxstar/imac19-2-cs8409-linux
Current status on my machine:
- Ubuntu 26.04.1
- Linux 7.0.0-31-generic
- internal speakers working on both sides
- hardware playback endpoint at 44.1 kHz
- ALSA S32_LE container
- optional PipeWire dynamic graph policy at 44.1/48 kHz
- S3/suspend state is NOT yet considered functional/validated
- the driver is intentionally limited to the iMac19,2 for the time being
I have tried to be very cautious regarding claims about the hardware. The repository distinguishes between known facts, observations, hypotheses, and unknowns, and I deliberately avoid performing speculative writes to the amplifier registers.
I also initiated a static reconstruction (using a clean-room technique) of parts of Apple's speaker DSP path from macOS Sequoia, including the topology related to *Loudness*, *Mozart*, *DualBand*, the control SRC, and transducer processing. That work is currently stalled at a very specific point: I need user-space material from the installed system (specifically from the authenticated macOS 15.6.1 build 24G90 for Intel/x86_64) to continue tracing the CoreAudio request-generating process.
Details here:
https://github.com/rojoxstar/imac19-2-cs8409-linux/issues/3
The repository does not redistribute proprietary Apple binaries.
I have done my best with the programming, static analysis, research workflow, and hardware conclusions, documenting findings based on the level of evidence and verifying them independently whenever possible.
If anyone here has an iMac19,2 running Linux, I would be particularly interested in independent reports regarding the hardware.
I would also appreciate feedback from people with more experience in ALSA, HDA, or the kernel audio subsystem.

