A macOS audio driver for the HP Chromebook C1030 (codename Jinlon, Intel Comet Lake) running as a Hackintosh. It drives the machine's Intel SOF (Sound Open Firmware) audio DSP and its codecs directly — there is no vendor macOS driver for this hardware, so it was written from scratch, porting the register and SOF IPC sequences from the open-source Linux SOF stack.
⚠️ Experimental / community project. This is an unofficial driver for unofficial (Hackintosh) macOS installs. It is not affiliated with Apple, Intel, HP, or the SOF project. Use at your own risk.
- 🔊 Speaker (MAX98357A, SSP1)
- 🎧 Headphone (RT5682, SSP0) with jack hot-swap — auto-switches between speaker and headphone on plug/unplug
- 🎙️ Internal microphone (DMIC, 4-channel PDM)
- 🔉 Volume control (software, via the CoreAudio HAL)
- 💤 Sleep / wake recovery
| Path | Codec / device | Interface | SOF pipeline |
|---|---|---|---|
| Speaker | MAX98357A (Class-D amp) | SSP1 | 7 |
| Headphone | Realtek RT5682 | SSP0 (I²S) + I²C | 1 |
| Microphone | DMIC array | PDM | 3 |
| DSP | Intel SOF (Comet Lake), IPC3 | HDA / BAR4 | — |
Two components, mirroring how CoreAudio expects a driver to be layered:
kext/—CmlSOFAudio.kext, a kernel driver (IOKit/IOService). Boots the SOF DSP, loads the firmware, sets up the HDA DMA + SOF IPC pipelines, and does the I²C codec initialization (RT5682). The SOF firmware is embedded into the kext binary at build time.plugin/—CmlSOFAudioPlugin.driver, a CoreAudio AudioServerPlugIn (HAL plugin, user space) derived from Apple's NullAudio sample. It exposes the device to CoreAudio and talks to the kext over anIOUserClient+ shared memory.
- A working OpenCore Hackintosh on an HP C1030 (Comet Lake).
- macOS 14 (Sonoma) — the kext and plugin are built with a macOS 14.0 deployment target (this is the macOS version the C1030 runs).
- Xcode Command Line Tools (to build). The Makefiles cross-compile from Apple
Silicon to
x86_64out of the box.
make -C kext # -> kext/CmlSOFAudio.kext
make -C plugin # -> plugin/CmlSOFAudioPlugin.driverPrebuilt binaries are attached to each GitHub Release.
Easy path — install.sh (from a release zip, or after make):
sudo ./install.shIt installs the HAL plugin, mounts your EFI partition and copies CmlSOFAudio.kext
into EFI/OC/Kexts/, and restarts coreaudiod. It does not edit config.plist
— add the kext under Kernel → Add yourself, then reboot.
Manual:
- Kext — copy
CmlSOFAudio.kexttoEFI/OC/Kexts/, add it underKernel → Addinconfig.plist, reboot. - HAL plugin —
sudo cp -R plugin/CmlSOFAudioPlugin.driver /Library/Audio/Plug-Ins/HAL/thensudo launchctl kickstart -kp system/com.apple.audio.coreaudiod(ormake -C plugin install).
Signing note. The binaries are not code-signed. Loading an unsigned kext requires the usual Hackintosh kernel-integrity settings (OpenCore already relaxes these); the HAL plugin loads under a normal macOS with no extra steps once
coreaudiodis restarted. If macOS refuses to load either binary, verify your SIP /csrutilconfiguration.
sudo rm -rf /Library/Audio/Plug-Ins/HAL/CmlSOFAudioPlugin.driver
sudo launchctl kickstart -kp system/com.apple.audio.coreaudiod
# remove CmlSOFAudio.kext from EFI/OC/Kexts and your config.plistThere was no reference macOS driver, so the approach was: get audio fully working on Linux first (SOF + ALSA UCM) as ground truth, capture the codec register state and the SOF IPC/topology traffic while audio was actually playing, then port that register-for-register into an IOKit kext + CoreAudio HAL plugin. Comments in the source cite the exact upstream Linux register values and sequences they came from.
- Sound Open Firmware (SOF) — the DSP firmware (
sof-cml.ri), © Intel, BSD-3-Clause. - Apple — the HAL plugin derives from Apple's NullAudio AudioServerPlugIn sample.
- The Linux kernel SOF and codec drivers, used as the authoritative reference for register values and the SOF IPC wire format.
- Original project code: BSD-3-Clause (see
LICENSE). plugin/CmlSOFAudioPlugin.c: Apple sample-code license (header in the file).kext/CmlSOFAudio/Firmware/sof-cml.ri: BSD-3-Clause (seeLICENSE.sof).
See NOTICE for full attributions.