Need a driver! - missing kernel module for the AMD ACP70 audio controller

Hello everyone!

I just bought an ASUS TUF Gaming A14 (2026) FA401EA.
And no sound (input or output) is recognized.

I have nailed the problem down to a missing kernel module for the AMD ACP70 audio controller.
Since the driver doesn’t exist yet, the component can’t be installed manually, there is nothing for me to install…
The only solution I think is to wait for the next kernel release.

My question is: what channel should I use to let the devs know about this problem, so that I eventually (in some months hopefully) get the driver I need?
Is there a place where I can file a “request” for such a driver?

(I’m new to Fedora! I don’t know my way around here yet, and I’d appreciate some guidance).

Thanks <3

Have you tried manually inserting the modules? sudo modprobe snd_sof_pci and sudo modprobe snd_sof_amd_common

Looking at the kernel sources, there seems to be code for ACP7.0:

https://elixir.bootlin.com/linux/v7.0/source/sound/soc/amd/acp/acp70.c
// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
//
// This file is provided under a dual BSD/GPLv2 license. When using or
// redistributing this file, you may do so under either license.
//
// Copyright(c) 2023 Advanced Micro Devices, Inc.
//
// Authors: Syed Saba kareem <syed.sabakareem@amd.com>
/*
 * Hardware interface for ACP7.0 block
 */

#include <linux/platform_device.h>
#include <linux/module.h>
#include <linux/err.h>
#include <linux/io.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>
#include <sound/soc-dai.h>
#include <linux/dma-mapping.h>
#include <linux/pm_runtime.h>
#include <linux/pci.h>
#include "amd.h"
#include "acp-mach.h"

#include <asm/amd/node.h>

#define DRV_NAME "acp_asoc_acp70"

Any output from dmesg?

$ sudo dmesg | grep amd

How did you come to this conclusion?

Do you have
sudo dnf install alsa-sof-firmware
installed?

Thank you all for your replies!

yes, it didn’t work

Yup :slight_smile:

I came to the conclusion that the problem is a missing kernel module because I’m having the exact same problem that has been documented here:
https://bugzilla.kernel.org/show_bug.cgi?id=221226

there is documentation attached in response and a partial code to support the ACP 7.0 standard but there are known compatibility issues with certain Asus models due to the different implementation of the chip

https://github.com/alsa-project/alsa-ucm-conf/issues/745

(I’ll come back with the output from dmesg in a bit! Gotta go get the computer at the office hehehe)

Again, thank you all for your responses!!

When I saw the quote in your post, I realized this might have come across as confrontational. That was not my intention, sorry about that. I only wanted to know what you had already researched or tried, so we don’t repeat any steps.

This bug describes an issue with the ACPI SSDT table. Have you checked the SSDT table to see if this is the same on your machine? Because if it is, there is a link to a gist in a comment, where someone describes how to patch the SSDT ACPI table and pass it to the kernel to override Asus’ broken table. You could give that a try instead of waiting for a quirk to be added to the kernel (which may happen at some point) or for Asus to fix their BIOS (well …).

If it works, we would still need to figure out how to get the additional initrd added to each new entry when updating the kernel (I don’t know, but I am sure someone here does). But let’s cross that bridge when we know that it actually fixes your problem.

I’ve got the exact same laptop. Unfortunately I’m also experiencing no audio, but I’ve also noticed some graphical artifacts with the display at certain times (looks like a small green line flashing, seems like I’m not teh only one reporting it: Reddit - Please wait for verification). Plus, WiFi speeds seem awful, but I guess that has to be expected with the Realtek chip inside.

I wanted to try Fedora 44 beta, but I can’t even boot into the live USB as I get an AMD-Vi IO_PAGE_FAULT error. Something similar happens when booting Ubuntu 26.04 beta. SteamOS 3.9 doesn’t boot. Bazzite also does not boot, unless I enable the safe graphics option.
I was able to boot only Fedora 43, Fedora Rawhide and CachyOS.

I’ve tried this on CachyOS, for this laptop the SSDT table that contains the flag is SSDT8. But, even after changing its value and having the custom IMG file loaded, I wasn’t able to get audio working. This bug tracker for CachyOS seems to show the same problem on a very similar ASUS device (that has a Max+ 395 instead of the Max+ 392 of this device): [BUG] ASUS ProArt PX13 HN7306EA - No sound (AMD ACP70 no playback device) · Issue #737 · CachyOS/linux-cachyos · GitHub

Not at all! I totally understood the fairness of the question :smiley:
And I’m super grateful for your interest in my problem, for real, thank you.

It is indeed!
The problem is that tying that gist is a bit more than I can chew in computational knowledge…
I’m still a newbie in linux and on top of that, a humanities person, so everything I know so far about how computers work I have learned by reading a lot (especially over the past few months when I first started messing with linux on an old 2011 macbook).
I’m afraid that patching the SSDT ACPI table is beyond my capacity :frowning:
So I shall wait for a more capable person I guess :confused:

Luckily, by @boresk 's comment, I’m not the only one facing the same issues!
I’m happy to have someone more knowledgeable than me on board with the same challenge.
Please let me know if you have any breakthroughs, Alessandro! :folded_hands:

oh! almost forgot:

dmesg output

~$ sudo dmesg | grep amd

[ 0.405552] amd_uncore: 8 amd_df counters detected
[ 0.405559] amd_uncore: 6 amd_l3 counters detected
[ 0.405565] amd_uncore: 0 amd_umc_0 counters detected
[ 0.405567] amd_uncore: 0 amd_umc_1 counters detected
[ 0.405570] amd_uncore: 0 amd_umc_2 counters detected
[ 0.405572] amd_uncore: 0 amd_umc_3 counters detected
[ 0.405574] amd_uncore: 0 amd_umc_4 counters detected
[ 0.405576] amd_uncore: 0 amd_umc_5 counters detected
[ 0.405579] amd_uncore: 0 amd_umc_6 counters detected
[ 0.405581] amd_uncore: 0 amd_umc_7 counters detected
[ 0.405584] amd_uncore: 0 amd_umc_8 counters detected
[ 0.405586] amd_uncore: 0 amd_umc_9 counters detected
[ 0.405588] amd_uncore: 0 amd_umc_10 counters detected
[ 0.405590] amd_uncore: 0 amd_umc_11 counters detected
[ 0.405592] amd_uncore: 0 amd_umc_12 counters detected
[ 0.405594] amd_uncore: 0 amd_umc_13 counters detected
[ 0.405596] amd_uncore: 0 amd_umc_14 counters detected
[ 0.405598] amd_uncore: 0 amd_umc_15 counters detected
[ 0.406554] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).
[ 1.909593] x86/amd: Previous system reset reason [0x00080800]: software wrote 0x6 to reset control register 0xCF9
[ 2.621878] amdxdna 0000:65:00.1: enabling device (0000 → 0002)
[ 2.743807] [drm] Initialized amdxdna_accel_driver 0.6.0 for 0000:65:00.1 on minor 0
[ 4.118119] amdgpu: Virtual CRAT table created for CPU
[ 4.118130] amdgpu: Topology: Add CPU node
[ 4.118254] amdgpu 0000:64:00.0: enabling device (0006 → 0007)
[ 4.118312] amdgpu 0000:64:00.0: amdgpu: initializing kernel modesetting (IP DISCOVERY 0x1002:0x1586 0x1043:0x1724 0xC3).
[ 4.118495] amdgpu 0000:64:00.0: amdgpu: register mmio base: 0xDC400000
[ 4.118496] amdgpu 0000:64:00.0: amdgpu: register mmio size: 1048576
[ 4.120566] amdgpu 0000:64:00.0: amdgpu: detected ip block number 0 <common_v1_0_0> (soc21_common)
[ 4.120569] amdgpu 0000:64:00.0: amdgpu: detected ip block number 1 <gmc_v11_0_0> (gmc_v11_0)
[ 4.120570] amdgpu 0000:64:00.0: amdgpu: detected ip block number 2 <ih_v6_0_0> (ih_v6_1)
[ 4.120571] amdgpu 0000:64:00.0: amdgpu: detected ip block number 3 <psp_v13_0_0> (psp)
[ 4.120573] amdgpu 0000:64:00.0: amdgpu: detected ip block number 4 <smu_v14_0_0> (smu)
[ 4.120574] amdgpu 0000:64:00.0: amdgpu: detected ip block number 5 <dce_v1_0_0> (dm)
[ 4.120575] amdgpu 0000:64:00.0: amdgpu: detected ip block number 6 <gfx_v11_0_0> (gfx_v11_0)
[ 4.120576] amdgpu 0000:64:00.0: amdgpu: detected ip block number 7 <sdma_v6_0_0> (sdma_v6_0)
[ 4.120577] amdgpu 0000:64:00.0: amdgpu: detected ip block number 8 <vcn_v4_0_5> (vcn_v4_0_5)
[ 4.120578] amdgpu 0000:64:00.0: amdgpu: detected ip block number 9 <jpeg_v4_0_5> (jpeg_v4_0_5)
[ 4.120579] amdgpu 0000:64:00.0: amdgpu: detected ip block number 10 <mes_v11_0_0> (mes_v11_0)
[ 4.120580] amdgpu 0000:64:00.0: amdgpu: detected ip block number 11 <vpe_v6_1_0> (vpe_v6_1)
[ 4.120581] amdgpu 0000:64:00.0: amdgpu: detected ip block number 12 <isp_v4_1_1> (isp_ip)
[ 4.120595] amdgpu 0000:64:00.0: amdgpu: Fetched VBIOS from VFCT
[ 4.120597] amdgpu: ATOM BIOS: 113-STRXLGEN-001
[ 4.173223] amdgpu 0000:64:00.0: amdgpu: VPE: collaborate mode true
[ 4.251233] amdgpu 0000:64:00.0: amdgpu: Trusted Memory Zone (TMZ) feature disabled as experimental (default)
[ 4.251278] amdgpu 0000:64:00.0: amdgpu: vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
[ 4.251300] amdgpu 0000:64:00.0: amdgpu: VRAM: 512M 0x0000008000000000 - 0x000000801FFFFFFF (512M used)
[ 4.251302] amdgpu 0000:64:00.0: amdgpu: GART: 512M 0x00007FFF00000000 - 0x00007FFF1FFFFFFF
[ 4.251785] amdgpu 0000:64:00.0: amdgpu: amdgpu: 512M of VRAM memory ready
[ 4.251787] amdgpu 0000:64:00.0: amdgpu: amdgpu: 15606M of GTT memory ready.
[ 4.252752] amdgpu 0000:64:00.0: amdgpu: [drm] Loading DMUB firmware via PSP: version=0x09003E00
[ 4.253070] amdgpu 0000:64:00.0: amdgpu: [VCN instance 0] Found VCN firmware Version ENC: 1.24 DEC: 9 VEP: 0 Revision: 16
[ 4.253111] amdgpu 0000:64:00.0: amdgpu: [VCN instance 1] Found VCN firmware Version ENC: 1.24 DEC: 9 VEP: 0 Revision: 16
[ 4.277199] amdgpu 0000:64:00.0: amdgpu: reserve 0x8c00000 from 0x8010000000 for PSP TMR
[ 4.782119] amdgpu 0000:64:00.0: amdgpu: RAS: optional ras ta ucode is not available
[ 4.785815] amdgpu 0000:64:00.0: amdgpu: RAP: optional rap ta ucode is not available
[ 4.785816] amdgpu 0000:64:00.0: amdgpu: SECUREDISPLAY: optional securedisplay ta ucode is not available
[ 4.819766] amdgpu 0000:64:00.0: amdgpu: SMU is initialized successfully!
[ 4.821104] amdgpu 0000:64:00.0: amdgpu: [drm] Display Core v3.2.359 initialized on DCN 3.5.1
[ 4.821105] amdgpu 0000:64:00.0: amdgpu: [drm] DP-HDMI FRL PCON supported
[ 4.823972] amdgpu 0000:64:00.0: amdgpu: [drm] DMUB hardware initialized: version=0x09003E00
[ 4.931913] kfd kfd: amdgpu: Allocated 3969056 bytes on gart
[ 4.931928] kfd kfd: amdgpu: Total number of KFD nodes to be created: 1
[ 4.932910] amdgpu: Virtual CRAT table created for GPU
[ 4.933627] amdgpu: Topology: Add dGPU node [0x1586:0x1002]
[ 4.933628] kfd kfd: amdgpu: added device 1002:1586
[ 4.933636] amdgpu 0000:64:00.0: amdgpu: SE 2, SH per SE 2, CU per SH 10, active_cu_number 40
[ 4.933639] amdgpu 0000:64:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
[ 4.933640] amdgpu 0000:64:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
[ 4.933641] amdgpu 0000:64:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
[ 4.933641] amdgpu 0000:64:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 6 on hub 0
[ 4.933641] amdgpu 0000:64:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 7 on hub 0
[ 4.933642] amdgpu 0000:64:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 8 on hub 0
[ 4.933642] amdgpu 0000:64:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 9 on hub 0
[ 4.933643] amdgpu 0000:64:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 10 on hub 0
[ 4.933643] amdgpu 0000:64:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 11 on hub 0
[ 4.933643] amdgpu 0000:64:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
[ 4.933644] amdgpu 0000:64:00.0: amdgpu: ring vcn_unified_0 uses VM inv eng 0 on hub 8
[ 4.933644] amdgpu 0000:64:00.0: amdgpu: ring vcn_unified_1 uses VM inv eng 1 on hub 8
[ 4.933645] amdgpu 0000:64:00.0: amdgpu: ring jpeg_dec_0 uses VM inv eng 4 on hub 8
[ 4.933645] amdgpu 0000:64:00.0: amdgpu: ring jpeg_dec_1 uses VM inv eng 6 on hub 8
[ 4.933645] amdgpu 0000:64:00.0: amdgpu: ring mes_kiq_3.1.0 uses VM inv eng 13 on hub 0
[ 4.933646] amdgpu 0000:64:00.0: amdgpu: ring vpe uses VM inv eng 7 on hub 8
[ 4.938925] amdgpu 0000:64:00.0: amdgpu: Runtime PM not available
[ 4.939281] amdgpu 0000:64:00.0: amdgpu: [drm] Using custom brightness curve
[ 4.939774] amdgpu 0000:64:00.0: [drm] Registered 4 planes with drm panic
[ 4.939776] [drm] Initialized amdgpu 3.64.0 for 0000:64:00.0 on minor 1
[ 4.947828] fbcon: amdgpudrmfb (fb0) is primary device
[ 4.947831] amdgpu 0000:64:00.0: [drm] fb0: amdgpudrmfb frame buffer device
[ 6.196711] amd-pmf AMDI0105:00: No Smart PC policy present
[ 6.196714] amd-pmf AMDI0105:00: registered PMF device successfully
[ 6.266846] kvm_amd: TSC scaling supported
[ 6.266848] kvm_amd: Nested Virtualization enabled
[ 6.266849] kvm_amd: Nested Paging enabled
[ 6.266850] kvm_amd: LBR virtualization supported
[ 6.266852] kvm_amd: AVIC enabled
[ 6.266852] kvm_amd: x2AVIC enabled (max 512 vCPUs)
[ 6.266853] kvm_amd: Virtual VMLOAD VMSAVE supported
[ 6.266853] kvm_amd: Virtual GIF supported
[ 6.266853] kvm_amd: Virtual NMI enabled
[ 6.351870] amd_atl: AMD Address Translation Library initialized
[ 7.011424] snd_hda_intel 0000:64:00.1: bound 0000:64:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])

For the moment, no I haven’t. Atm all I can tell is that this is not a Fedora-exclusive issue as I’ve noticed the same behaviours across different distributions… Not just the audio, but even the slow WiFi speeds, the display issue that I’ve mentioned and the impossibility to boot appear on non Fedora-based distributions.

I can confirm that the guide suggested by that gist doesn’t work on kernel 7.0. I’ve also tried to inject the firmware libraries as suggested in the GitHub issue tracker that I’ve linked, but without any success.

I can try to troubleshoot the issue further, but at this time I wouldn’t even know where to look. Is it a kernel issue? Is it a firmware blob missing? Is it a problem with PipeWire? Is it a problem with ALSA? I really have no idea.

I would also love to troubleshoot the display issue as I also find that problematic, while I’m less concerned about WiFi speeds (you can just swap the chip) and the boot issue (newer kernels seem to not have this issue, as I’m able to boot CachyOS and Fedora Rawhide).

It’s such a shame that there are these issues, this would be such a great laptop for Linux. Its price is insane in some regions though, in the US this thing costs 2200$ which doesn’t help adoption. In Italy I was able to buy this laptop for 1400€, I’ve heard that Spain had similar prices for the 64GB model.

From the few reviews available, I was able to see only 2 cases of Linux being tested:

@kirk-goes-to-gallifrey I suggest you to keep an eye on this: Making sure you're not a bot!

The last comments there are mine. I was able to get audio working by applying some kernel patches, although for now suspending the device breaks everything again.

Thanks for the link!

This is craaazy, so many things don’t make sense.
The fact that you got it working but then sleep or reboot can reverse everything back…

Or like, I found out that HDMI works if I play around with these three options:


Then, if I pause whatever is playing for 2 seconds, the sound stops working again, then I switch the option above and it works again.
So every time I pause a video, when I hit play again, I have to switch the hdmi output mode so the audio comes back lmaoooo
Sometimes it works stereo, sometimes it’s 5.1, sometimes I have to toggle 7.1
It only works if I switch from one to another, doesn’t matter which or in what order. INSANITY.

Bluetooth is also a mystery. Works perfectly with my headphones but with my JBL speakers I have to ask it to forget the device and pair it again for it to work, otherwise it connects and no sound comes off. But if I forget and pair again a couple of times, boom sound works.

Also, even though the bluetooth headphones work perfectly, the headphone mic does not! It’s not recognized at all.

I just have to much trouble wrapping my head around these issues cause they seem to make zero sense.

Anyway this is an adventure! I’m trying to not feel super mad about the fact that I have a very expensive machine with so many bugs T-T

(still better than windows 11 tho)

Given that it’s a relatively new machine, I guess it’s normal to have issues. ASUS surely does not test stuff on Linux so issues are just popping out now that the laptop is on sale. At least we know that the audio issue could be fixed not in the too distant future.

I haven’t tested HDMI or Bluetooth yet. But I think I will replace the WiFi card anyways, it’s horrendous in my experience. I kid you not, it took me 2 hours and a half to update a fresh Fedora 43 install. It’s much better if I set up my phone in USB tethering. A good, old and cheap Intel AX210 should work just fine.

Just for curiosity, have you noticed anything weird with the rendering? Even when I was testing yesterday I was noticing frequent green pixels, usually appearing near the mouse cursor when moving it. I’ve noticed it on GNOME and KDE.

WIFI:
I haven’t had issues with the wifi so far, but it’s hard to tell cause the wifi here is already pretty bad. I was used to using the ethernet cable but for this laptop I’ll have to get an adapter.

RENDERING:
I did notice artefacts in the screen! Sometimes it blinks green pixels, but in my case it’s all over, not confined to the mouse point surroundings like you said. It’s also sort of infrequent so it doesn’t bother me so much…
It has not happened at all while I was gaming or watching netflix, for instance. So far I don’t see a pattern of when it happens exactly.

Well, here’s to hoping for a fix in the not-so-distant future :crossed_fingers:

If anything, other than the 7.0.x kernel who’s not yet built for F43/44, Fedora 44 is about to be officially released in 4 days.

It should be absolutely safe to upgrade right now and I would certainly try it if dealing with such new hardware on the off chance there could be relevant fixes waiting there that might not be ported to F43 for various reasons.

(FWIW - I’m on F44 beta from the moment it was released)

F44 won’t make a difference. Any software component involved in this problem here will be the same on F44 compared to F43. F43 will have the exact same kernel/drivers/firmware/sound components as F44.

In case kernel 7.0 introduced improvements for your laptop/audio chip, you can try kernel 7.0.1 from here: Making sure you're not a bot!. With .3 or .4 it will also land in the regular updates repo, in case you want to wait.

Making sure you're not a bot! makes me think that anyone interested in running GNU Linux should not buy an Asus notebook ever.

Thanks, checked koji yesterday and it wasn’t there. Bad timing…

In my experience, with big laptop manufacturers is more of a “pick your poison” thing. The one that I’ve had the least issues with is Lenovo, the others are more or less on the same page. Still, after Lenovo I would put the likes of ASUS or Dell as I can expect more involvement from the community.

I don’t know the severity of this particular audio problem, from my understanding it will require some workarounds to correctly initialise the audio card because of ASUS incompetence. Everything else works though, so it’s not among the worst devices I’ve dealt with.

Ideally you would buy a laptop from a manufacturer that truly cares about Linux support like Framework, Tuxedo and Slimbook but, unfortunately, this is not always a possibility. I personally find these AI Max+ APUs (naming aside) the most interesting x86 chips in the last decade, I’ve always wanted to mess around with them but the offerings were limited and with ridiculous prices. The TUF A14 (at least in my region) is the very first device featuring the full 8060S at a somewhat reasonable price.

At least for Lenovo and Dell there are “enterprise grade” models that can be purchased with linux, although if you buy new they may require you to buy at least quantity 1000, may not support Fedora, and may be using drivers that aren’t (yet?) available “in kernel”. There are often refurbished models a few years old that will have probes in the https://linux-hardware.org/ database so you can see if there are issues that you want to avoid.

For those wondering how to get rid of the glitches, I’ve had both a flow Z13 and now this one and both have had the same glitches issues, I’m running this kernel param and so far haven’t had any glitches again.

amdgpu.dcdebugmask=0x600

I’ve seen people say over at the amdgpu gitlab that instead of 600, with 400 is enough, but I’ve had better results with this setting.
Rgarding the wifi card, I’m an avid wireless headphone user and in almost all laptops I’ve had I’ve always have been able to put my laptop in the dinner table and go to the kitchen around 10 meters from it and have good bluetooth signal, with this one once I cross the door to the kitchen it starts losing connection constantly, I’ll take a look next month for a good intel card because this one is just bad, really bad.