Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CmlSOFAudio — macOS SOF audio driver for the HP Chromebook C1030

CmlSOFAudio

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.

What works

  • 🔊 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

Hardware

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

Architecture

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 an IOUserClient + shared memory.

Requirements

  • 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_64 out of the box.

Build

make -C kext        # -> kext/CmlSOFAudio.kext
make -C plugin      # -> plugin/CmlSOFAudioPlugin.driver

Prebuilt binaries are attached to each GitHub Release.

Install

Easy path — install.sh (from a release zip, or after make):

sudo ./install.sh

It 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:

  1. Kext — copy CmlSOFAudio.kext to EFI/OC/Kexts/, add it under Kernel → Add in config.plist, reboot.
  2. HAL pluginsudo cp -R plugin/CmlSOFAudioPlugin.driver /Library/Audio/Plug-Ins/HAL/ then sudo launchctl kickstart -kp system/com.apple.audio.coreaudiod (or make -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 coreaudiod is restarted. If macOS refuses to load either binary, verify your SIP / csrutil configuration.

Uninstall

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.plist

How it was built

There 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.

Credits

  • 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.

License

  • 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 (see LICENSE.sof).

See NOTICE for full attributions.

About

macOS audio driver (SOF) for the HP Chromebook C1030 (Jinlon, Comet Lake) Hackintosh — speaker, headphone + jack detect, mic, volume, sleep

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages