Low sound level: ASUS ROG Zephyrus M16

Hi there,
I just installed Manjaro on a new ASUS ROG Zephyrus M16 (GU604VI).
I have sound, but it’s low and high pitched. I’ve played around with multiple variables under Sound Settings, non make any difference. On the other hand, when using a headset; the sound is perfectly fine.

Anyone have an idea of how to fix this? I’m posting my system information below. Do let me know if there’s any other information that would be useful.

 ❯ inxi -Fxzd
System:
  Kernel: 6.1.26-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
    Desktop: Cinnamon v: 5.6.8 Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Laptop System: ASUSTeK product: ROG Zephyrus M16 GU604VI_GU604VI
    v: 1.0 serial: <superuser required>
  Mobo: ASUSTeK model: GU604VI v: 1.0 serial: <superuser required>
    UEFI: American Megatrends LLC. v: GU604VI.308 date: 04/20/2023
Battery:
  ID-1: BAT0 charge: 91.0 Wh (100.0%) condition: 91.0/90.0 Wh (101.1%)
    volts: 17.7 min: 16.0 model: AS3GYFG3KC R220358 status: full
CPU:
  Info: 14-core (6-mt/8-st) model: 13th Gen Intel Core i9-13900H bits: 64
    type: MST AMCP arch: Raptor Lake rev: 2 cache: L1: 1.2 MiB L2: 11.5 MiB
    L3: 24 MiB
  Speed (MHz): avg: 2770 high: 3000 min/max: 400/5200:5400:4100 cores:
    1: 3000 2: 3000 3: 3000 4: 3000 5: 3000 6: 3000 7: 753 8: 3000 9: 3000
    10: 3000 11: 3000 12: 3000 13: 3000 14: 3000 15: 3000 16: 649 17: 3000
    18: 3000 19: 3000 20: 3000 bogomips: 119840
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel Raptor Lake-P [Iris Xe Graphics] vendor: ASUSTeK
    driver: i915 v: kernel arch: Gen-13 bus-ID: 0000:00:02.0
  Device-2: NVIDIA AD106M [GeForce RTX 4070 Max-Q / Mobile] vendor: ASUSTeK
    driver: nvidia v: 530.41.03 arch: Lovelace bus-ID: 0000:01:00.0
  Device-3: Sonix USB2.0 FHD UVC WebCam driver: uvcvideo type: USB
    bus-ID: 3-7:4
  Display: x11 server: X.Org v: 21.1.8 driver: X: loaded: modesetting,nvidia
    unloaded: nouveau dri: iris gpu: i915 resolution: 2560x1600~240Hz
  API: OpenGL v: 4.6 Mesa 23.0.3 renderer: Mesa Intel Graphics (RPL-P)
    direct-render: Yes
Audio:
  Device-1: Intel vendor: ASUSTeK driver: snd_hda_intel v: kernel
    bus-ID: 0000:00:1f.3
  Device-2: NVIDIA vendor: ASUSTeK driver: snd_hda_intel v: kernel
    bus-ID: 0000:01:00.1
  API: ALSA v: k6.1.26-1-MANJARO status: kernel-api
  Server-1: JACK v: 1.9.22 status: off
  Server-2: PipeWire v: 0.3.70 status: off
  Server-3: PulseAudio v: 16.1 status: active
Network:
  Device-1: Intel driver: iwlwifi v: kernel port: N/A bus-ID: 0000:00:14.3
  IF: wlo1 state: up mac: <filter>
Bluetooth:
  Device-1: Intel driver: btusb v: 0.8 type: USB bus-ID: 3-10:6
  Report: rfkill ID: hci0 rfk-id: 1 state: up address: see --recommends
RAID:
  Hardware-1: Intel Volume Management Device NVMe RAID Controller Intel
    driver: vmd v: 0.6 bus-ID: 0000:00:0e.0
Drives:
  Local Storage: total: 953.87 GiB used: 228.19 GiB (23.9%)
  ID-1: /dev/nvme0n1 vendor: Micron model: 2400 MTFDKBA1T0QFM
    size: 953.87 GiB temp: 33.9 C
  Message: No optical or floppy data found.
Partition:
  ID-1: / size: 841.4 GiB used: 182.51 GiB (21.7%) fs: ext4
    dev: /dev/nvme0n1p2
  ID-2: /boot/efi size: 299.4 MiB used: 66.6 MiB (22.2%) fs: vfat
    dev: /dev/nvme0n1p1
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 39.0 C mobo: N/A
  Fan Speeds (RPM): cpu: 2200
Info:
  Processes: 368 Uptime: 42m Memory: available: 30.97 GiB
  used: 4.19 GiB (13.5%) Init: systemd Compilers: gcc: 12.2.1 clang: 15.0.7
  Packages: 1284 Shell: Zsh v: 5.9 inxi: 3.3.27

Hi @m.govasli,

This :point_down:

Makes it sound like a hardware issue.

But, AFAIK the

aren’t old enough to have worn-out hardware. And

… you mentioned that it’s new…

So I can only think of perhaps 2 possibilities:

  • The audio sink is incorrectly configured. If the installation is new, this might be because of a faulty driver although I doubt it.
  • It’s a factory defect.

Hi, thanks for the reply.

Sadly I don`t know weather or not the sound worked when I received it; the first think I did was to replace Windows with Manjaro.

I did spend some more time looking for a solution. I found something on the Linux Mint forum. The posted solution involves recompiling the BIOS and the kernel, both are outside of my comfort zone.

I can add that I updated to the latest BIOS version (Version 308) before installing Manjaro, and I currently have the 6.1.26-1 kernel installed.

Assuming this is indeed the issue and require both a BIOS update and a kernel update. Is it empirically likely that ASUS and the Linux kernel team will eventually deliver?

I would immensely appreciate any suggestions.

Given the described issue, is there anything else worth trying?
Or perhaps my best bet is to wait for ASUS to release a new BIOS update and for a new kernel to be released?

I have absolutely no idea. Except…maybe…boot into a Live Environment and see if it works there? If it does, the problem is software related, probably a faulty driver. If it still doesn’t, then it could still be either hardware or software…also, try with a different kernel?

I’ve tried with a different kernel, and there’s no difference. I’ll try a VM at some point when time allows.

It seems more than plausible that this is the same issue as in the post I linked to above, and if so, I would need to wait for an ASUS BIOS update and/or kernel update.
From search results it seems like speaker problems with ASUS laptops are fairly common in Windows as well, but with no obvious solutions.

I had the same issue before. It turns out it is because the system misses the firmware for the amplifier.

This fixes works on Ubuntu and hope it works on manjaro too.

1 Like

Hi there,

Thanks for posting (in this old thread). I’m still hoping to one day solve this, but as I mostly use headphones it hasn’t been that important.

The simple solution:

$ cd /tmp
$ git clone https://gitlab.com/asus-linux/firmware
$ cd firmware
$ sudo cp -r cirrus /lib/firmware/

Didn’t work for me.

It still seems to be an issue with the firmware:

❯ journalctl -b -g CSC3551 --output short-monotonic
[   22.412791] morten kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: Using extra _DSD properties, bypassing _DSD in ACPI
[   22.433205] morten kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: Cirrus Logic CS35L41 (35a40), Revision: B2
[   22.440103] morten kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: Using extra _DSD properties, bypassing _DSD in ACPI
[   22.440105] morten kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: Reset line busy, assuming shared reset
[   22.543338] morten kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: Failed waiting for OTP_BOOT_DONE: -110
[   22.553532] morten kernel: cs35l41-hda: probe of spi1-CSC3551:00-cs35l41-hda.1 failed with error -110
[   22.553563] morten kernel: Serial bus multi instantiate pseudo device driver CSC3551:00: Instantiated 2 SPI devices.

I see there’s a link to a more comprehensive guide there. I may have a closer look later. However, I find this complicated so I’ll have to approach it with both caution and patience.

PS: I’m currently running Kernel: 6.6.2-1 and the newest BIOS; Version 310.

Alright, so I followed the guide, created and installed a SSDT patch, and updated grub.

and now the CSC3551 output gives this:

❯ journalctl -b -g CSC3551 --output short-monotonic
[    0.009226] morten kernel: ACPI: Table Upgrade: install [SSDT-CUSTOM- CSC3551]
[    0.009227] morten kernel: ACPI: SSDT 0x0000000036AD9000 000158 (v01 CUSTOM CSC3551  00000001 INTL 20230628)
[   22.521908] morten kernel: Serial bus multi instantiate pseudo device driver CSC3551:00: Instantiated 2 SPI devices.
[   22.522890] morten kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: Using extra _DSD properties, bypassing _DSD in ACPI
[   22.522892] morten kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: error -ENOENT: Failed to get reset GPIO
[   22.533689] morten kernel: cs35l41-hda: probe of spi1-CSC3551:00-cs35l41-hda.0 failed with error -2
[   22.534455] morten kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: Using extra _DSD properties, bypassing _DSD in ACPI
[   22.534459] morten kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: error -ENOENT: Failed to get reset GPIO
[   22.546942] morten kernel: cs35l41-hda: probe of spi1-CSC3551:00-cs35l41-hda.1 failed with error -2

It still doesn’t work.

I have the firmware, in my case for Subsystem ID: 10431473, in the path /lib/firmware/cirrus, and hence skipped that part of the guide. Or is there anything I should do here?

There’s one thing under Additional Information:

As I have Scope (_SB.PC00.SPI0) in the ACPI dump I should do the following:

From the guide:

The SPI version may also need:

    Scope (_SB.PC00.SPI0)
    {
        Name (_DSD, Package ()
        {
            ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
            Package ()
            {
                Package () { "cs-gpios", Package () {
                    Zero,                    // Native CS
                    SPK1, Zero, Zero, Zero   // GPIO CS
                } }
            }
        })
    }

added inside the:

DefinitionBlock ("", "SSDT", 1, "CUSTOM", "CSC3551", 0x00000001)
{
...
<add to end before closing brace>
}

This confuses me, I tried some permutations, one example below:

DefinitionBlock ("", "SSDT", 1, "CUSTOM", "CSC3551", 0x00000001)
{
    Scope (_SB.PC00.SPI0)
    {
        Name (_DSD, Package ()
        {
            ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
            Package ()
            {
                Package () { "cs-gpios", Package () {
                    Zero,                    // Native CS
                    SPK1, Zero, Zero, Zero   // GPIO CS
                } }
            }
        })
    }
}

However, I don’t get it to compile. Where do I go wrong?
I will look more into this later but if anyone could point me in the right direction that would be amazing. :slight_smile:

Sorry to hear that firmware solution doesn’t work for you :frowning_face:

Kenel mailing list shows a number of patches for CS35l41 smart amplifiers on Asus 2023 laptops were added to the kernel yesterday

LKML: Stefan Binding: [PATCH v1 3/7] ALSA: hda/realtek: Add quirks for ASUS ROG 2023 models

SND_PCI_QUIRK(0x1043, 0x1473, "ASUS GU604VI/VC/VE/VG/VJ/VQ/VU/VV/VY/VZ", ALC285_FIXUP_ASUS_HEADSET_MIC),

Patches will be available in kernel v6.7 soon and will probably be back-ported to LTS kernels

1 Like

Whoha!

I updated to the current Linux 6.7 release candidate (6.7.0rc7-2) and the speakers are now working.

It hasn’t been a disaster as I prefer using headphones. However, I bought this laptop back in May. I must say; this has taken a while. I never had any issues persisting this long on any Linux system before.

This topic was automatically closed 36 hours after the last reply. New replies are no longer allowed.