Skip to content

supg/linux-asus-g512-speaker-fix

Repository files navigation

Linux Kernel Patch: Fix Speaker Output on ASUS ROG Strix G512

Problem

The ASUS ROG Strix G512LW and G512LV laptops with Realtek ALC294 codec (subsystem ID 0x10431f21) have no speaker output on Linux. Headphones and HDMI audio work fine.

The internal speaker amplifier requires specific codec coefficient writes that the kernel driver doesn't set for this subsystem ID.

Affected Models

Model CPU GPU Confirmed
ASUS ROG Strix G512LW i7-10750H RTX 2070 Yes
ASUS ROG Strix G512LV i7-10750H RTX 2060 Reported

Root Cause

The ALC294 codec needs two internal coefficients written to enable the speaker amplifier:

  • Coefficient index 0x0f → value 0x7778
  • Coefficient index 0x40 → value 0x0800

The existing ALC294_FIXUP_ASUS_SPK quirk in the kernel uses different values (0x7774 and 0x8800) which don't work for the G512 subsystem.

The Patch

The patch adds a new fixup ALC294_FIXUP_ASUS_G512_SPK to sound/pci/hda/patch_realtek.c with three changes:

  1. New enum entry in the fixup ID enum
  2. New fixup definition with the correct codec coefficient values
  3. New SND_PCI_QUIRK entry mapping subsystem 0x1043:0x1f21 to the new fixup

See: 0001-ALSA-hda-realtek-Fix-speaker-output-on-ASUS-ROG-Strix-G512.patch

Testing

Tested on ASUS ROG Strix G512LW running CachyOS (kernel 6.12.69-3-cachyos-lts):

  • Before patch: Speakers completely silent, only headphones/HDMI work
  • After patch: Speakers work immediately on boot, no userspace workarounds needed
  • Verified persistent across multiple reboots

Applying the Patch

Option 1: DKMS (recommended for end users)

Build just the snd-hda-codec-realtek module out-of-tree and install via DKMS. This survives kernel updates.

Option 2: Manual hda-verb workaround (temporary)

If you need sound immediately without recompiling:

sudo hda-verb /dev/snd/hwC0D0 0x20 0x500 0x0f
sudo hda-verb /dev/snd/hwC0D0 0x20 0x400 0x7778
sudo hda-verb /dev/snd/hwC0D0 0x20 0x500 0x40
sudo hda-verb /dev/snd/hwC0D0 0x20 0x400 0x0800

Note: This must be re-run after every reboot (or after PipeWire/WirePlumber restarts).

Option 3: Firmware patch file

Create /lib/firmware/alc294-g512-patch.fw:

[codec]
0x10ec0294 0x10431f21 0

[verb]
0x20 0x500 0x0f
0x20 0x400 0x7778
0x20 0x500 0x40
0x20 0x400 0x0800

And add to /etc/modprobe.d/alsa.conf:

options snd-hda-intel patch=alc294-g512-patch.fw

Note: PipeWire may reset these coefficients on login, requiring an additional userspace fix.

Kernel Submission

This patch has been submitted to the ALSA development mailing list (alsa-devel@alsa-project.org) for inclusion in the mainline Linux kernel.

References

License

This patch is licensed under GPL-2.0-or-later, matching the Linux kernel's license for sound/pci/hda/patch_realtek.c.

About

Linux kernel patch: Fix speaker output on ASUS ROG Strix G512LW/LV (ALC294, subsystem 0x10431f21)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages