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

> Source: <https://gist.github.com/Yiin/8308c3ba6e5badab1098a7378f9f807f>
> Published: 2026-06-19 16:45:02+00:00

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 do**not** 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, and`curl`

.- 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
# look for the audio config flag the BIOS sets:
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.
