Skip to content

Latest commit

 

History

History
32 lines (26 loc) · 1.54 KB

File metadata and controls

32 lines (26 loc) · 1.54 KB

Audio — internal speakers fix

The problem

The Cirrus Logic CS8409 codec (Apple subsystem 0x106b3900) is only half-supported by the stock kernel driver: headphones work, but autoconfig reports speaker_outs=0 — the amplifiers behind the speakers are never initialised.

The fix

davidjo/snd_hda_macbookpro patches snd-hda-codec-cs8409 with the Apple-specific amp initialisation (I²C). Installed via DKMS (snd_hda_macbookpro/0.1) so it rebuilds on every kernel update. Script: scripts/04-audio-cs8409.sh.

⚠ The HWE mini-tarball trick (needed again on every new HWE kernel line)

The build script demands /usr/src/linux-source-<ver>.tar.bz2. Ubuntu ships no source package for HWE kernels. The script in this repo solves it by:

  1. sparse-cloning only sound/hda from the official Ubuntu kernel git at the exact tag of the running kernel (a few MB instead of ~250);
  2. packing it as a mini-tarball with the directory layout the build expects;
  3. dropping it into /usr/src and running the DKMS build.

If speakers go silent after a kernel upgrade, re-run sudo scripts/04-audio-cs8409.sh (it derives tag and paths from uname -r).

Verification

pw-play /usr/share/sounds/alsa/Front_Center.wav   # a voice says "front center"

The patched module in use is confirmed by modinfo -F filename snd-hda-codec-cs8409 pointing into updates/dkms/, and by the extra snd_hda_scodec_component module in lsmod — the stock driver never loads it.