cd /news/developer-tools/fix-no-internal-speakers-on-asus-zen… · home topics developer-tools article
[ARTICLE · art-34181] src=gist.github.com ↗ pub= topic=developer-tools verified=true sentiment=↑ positive

Fix: no internal speakers on ASUS Zenbook S16 UM5606GA (AMD Strix Point / ACP 7.0 SoundWire) under Linux — DKMS quirk

A developer created a DKMS quirk to fix missing internal speakers on the ASUS Zenbook S16 UM5606GA (AMD Strix Point) under Linux. The BIOS incorrectly sets the audio chip to a legacy mic-only mode, preventing the SoundWire bus from initializing. The fix adds the laptop to the kernel's override table, enabling the Cirrus Logic CS42L43 and CS35L56 amplifiers.

read4 min views1 publishedJun 19, 2026

Short version: your laptop speakers, headphone jack, and built-in mic show up as nothing in Linux, even though the drivers are already there. The BIOS quietly tells the audio chip to use an old, speaker-less mode. One tiny tweak flips it back. This gist wraps that tweak in DKMS so it keeps working after kernel updates and is easy to undo later.

Tested on a Zenbook S16 UM5606GA (AMD Ryzen AI, Strix Point) running Linux 7.0.9, June 2026.

This is the AMD model (the name ends in "GA"). The Intel one (UM5606KA) has totally different audio hardware, so please don't use this there. It won't help.

  • The only sound outputs are HDMI, DisplayPort, and Bluetooth. There's no "Speaker" option anywhere.
  • The system log has this line:
platform acp_asoc_acp70.0: warning: No matching ASoC machine driver found
  • This folder is empty: ls /sys/bus/soundwire/devices/

  • Nothing you do in software helps (resetting PipeWire, messing with audio profiles, removing firmware packages). That's because Linux never creates a sound card in the first place, so there's nothing for software to talk to.

Your speakers don't plug into the usual audio chip. They hang off a small audio helper chip inside the CPU (AMD calls it the ACP) and talk to it over a bus called SoundWire. When Linux boots, it asks the BIOS how this audio helper should behave. The BIOS answers with a number. On the UM5606GA that number is 0x10

, which means "only do the old microphone-only mode." So Linux never turns on the SoundWire bus, the speaker amps never wake up, and no speaker ever appears.

Everything else is already in place. The drivers ship with the kernel. The only missing bit is telling Linux to ignore the BIOS's bad answer for this exact laptop. The kernel already keeps a little list of laptops that need this override (it's called acp70_acpi_flag_override_table

in the file sound/soc/amd/acp-config.c

), and the closely related ASUS ProArt PX13 is already on it. The Zenbook S16 just hasn't been added yet.

Once you flip the switch, the amps wake up and turn out to be Cirrus Logic chips: one CS42L43 plus four CS35L56 amplifiers. Two nice consequences:

  • The drivers for these are already in the kernel.
  • The factory tuning for the speakers already ships with linux-firmware

. The log even prints "Calibration applied" on boot. So you donot have to dig any firmware out of a Windows driver. It's already handled.

Flipping that one config number is the entire fix.

Add this laptop to the kernel's override list:

{
    /* ASUS Zenbook S16 UM5606GA: Cirrus CS42L43 + 4x CS35L56 over SoundWire.
     * BIOS forces the legacy mic-only mode (flag 0x10); override it so the
     * SoundWire path runs and the speakers show up. */
    .matches = {
        DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."),
        DMI_MATCH(DMI_BOARD_NAME, "UM5606GA"),
    },
},

Instead of rebuilding the whole kernel, this packages just the one small audio config module with that line added, as a DKMS module that takes priority over the built-in one. DKMS rebuilds it for you every time the kernel updates, so you set it once and forget it.

Grab setup.sh

from this gist and run it:

chmod +x setup.sh
./setup.sh        # it uses sudo where needed, grabs the right sources, builds, installs
sudo reboot

The script downloads the two source files it needs from the kernel version you're actually running, adds the one line, and sets up DKMS. After a reboot you should have a working "Speaker" output.

You'll need these installed:

dkms

, the kernel headers for your kernel, the usual build tools, andcurl

.- On Arch: sudo pacman -S dkms linux-headers base-devel curl

  • On Arch:
  • Secure Boot turned off. If it's on, the override module won't load unless you sign it yourself with your own key.

After rebooting:

modinfo snd-acp-config | grep filename     # should point at .../updates/dkms/
ls /sys/bus/soundwire/devices/             # should list cs35l56 / cs42l43 entries
aplay -l                                   # should show an amd-soundwire SmartAmp card
wpctl status                               # a "... Speaker" output should be there
speaker-test -t sine -f 440 -l 1 -c 2      # you should actually hear a tone

Once a future kernel adds this laptop on its own, you won't need this anymore:

sudo dkms remove snd-acp-config-um5606/1.0 --all
sudo reboot

That puts the built-in module back. Keep an eye on sound/soc/amd/acp-config.c

in new kernels; when UM5606GA shows up there, you can drop this.

The same trick may work for other AMD Zenbooks or Vivobooks whose speakers are silent. First check your laptop's name and the BIOS number:

cat /sys/class/dmi/id/board_name        # e.g. UM5606GA
sudo grep -ai 'acp-audio-config-flag' /sys/firmware/acpi/tables/SSDT* 2>/dev/null

If the flag is 0x10

and your amps are on SoundWire, change the board name in setup.sh

and run it. Please don't fire off auto-generated patches to the kernel team. Either let the audio maintainers add it themselves, or open an issue with your board name and flag value so a real person can do it right.

── more in #developer-tools 4 stories · sorted by recency
── more on @asus 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/fix-no-internal-spea…] indexed:0 read:4min 2026-06-19 ·