No audio on Samsung Galaxy Book 5 Pro (Intel Lunar Lake – 8086:a828, sof-lnl firmware boots but no topology loads)
System: Linux Mint 22.2 (Ubuntu Noble base) Kernel: 6.14.0-34-generic Device: Samsung Galaxy Book 5 Pro Audio Controller: Intel Corporation Lunar Lake-M HD Audio Controller [8086:a828] sof-firmware: manually installed from sof-bin v2.13.x
SOF firmware boots successfully: [ 5.12] sof-audio-pci-intel-lnl 0000:00:1f.3: Booted firmware version: 2.13.0.1
However, all tested topology files fail: [ 5.19] sof-audio-pci-intel-lnl 0000:00:1f.3: error: tplg component load failed -22
Tested topologies:
- sof-lnl-dmic-2ch-id5.tplg
- sof-lnl-dmic-4ch-id5.tplg
- sof-lnl-rt711-4ch.tplg
aplay -l → no sound cards detected.
Please advise which topology to use or if new support is needed for this Samsung device.
@chriswa81 Can you post full kernel log around the "error: tplg component load failed -22" error and also output from alsa-info (see https://thesofproject.github.io/latest/getting_started/intel_debug/suggestions.html for instructions)?
Hi,
I’ve collected the requested logs and attached them here as files:
-
full-audio-log.txt → full kernel log (filtered for sof/snd/hda/tplg/audio)
-
alsa-info.txt → full ALSA debug info generated via alsa-info.sh
Below are the key parts from dmesg (kernel 6.14.0-34-generic, Linux Mint 22.2, Galaxy Book 5 Pro, ALC298 codec):
sof-audio-pci-intel-lnl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
sof-audio-pci-intel-lnl 0000:00:1f.3: Topology file: intel/sof-ipc4-tplg/sof-hda-generic-2ch.tplg
snd_hda_codec_realtek ehdaudio0D0: autoconfig for ALC298: line_outs=1 (0x17/...)
snd_hda_codec_realtek ehdaudio0D0: speaker_outs=0
I don’t get the
error: tplg component load failed -22
message anymore, but the internal speakers are still silent.
Audio works through headphones, and the codec is properly detected.
It looks like the topology (sof-hda-generic-2ch.tplg) loads fine, but the speaker pins aren’t mapped (speaker_outs=0).
Do you have a recommended alternative topology or config to test for the Galaxy Book 5 Pro (Lunar Lake + ALC298)?
Thanks a lot for your help!
@chriswa81 Thanks. That actually looks better now, the DSP seems to be working as expected:
[ 4.838102] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware file: intel/sof-ipc4/lnl/sof-lnl.ri [ 4.838103] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware lib path: intel/sof-ipc4-lib/lnl [ 4.838104] sof-audio-pci-intel-lnl 0000:00:1f.3: Topology file: intel/sof-ipc4-tplg/sof-hda-generic-2ch.tplg [ 4.840159] sof-audio-pci-intel-lnl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.13.0.1 [ 5.075243] sof-audio-pci-intel-lnl 0000:00:1f.3: Booted firmware version: 2.13.0.1 [ 5.079423] sof-audio-pci-intel-lnl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
So the remaining issue (no audio on speaker) is an issue with the codec driver. This would require Samsung/Realtek support to add Linux support for this configuration.
Thanks a lot for confirming that the DSP part works correctly! That’s great news.
Regarding the missing speaker output — is there any way I could help to debug or provide useful information for the codec driver? For example, would it help if I extracted the Realtek ALC298 codec configuration or pin mappings from Windows (e.g., via registry dumps or driver analysis)?
I’d be happy to collect and share any data that might assist in getting speaker support working on the Galaxy Book 5 Pro under Linux.
Update:
I’ve exported the Windows Audio registry and collected the Realtek/Samsung driver folders from
C:\Windows\System32\DriverStore\FileRepository.
Because the archive is quite large (~155 MB), I’ve uploaded it to Google Drive instead of attaching it directly here: 🔗 Download GalaxyBook5Pro_RealtekAudioDriver.zip
The ZIP file includes:
-
The Windows AudioRender registry export (AudioRender.reg)
-
The following Realtek/Samsung INF driver directories:
-
hdxsamsungext_apot_g5_gen5_general.inf_amd64_* -
hdxsamsungext_apot_g5_ae58_aa38_sa_n2.inf_amd64_* -
realtekhsa.inf_amd64_* -
hdxsstsamsung.inf_amd64_*
These files define the audio topology and SmartAMP routing used by Windows for the internal Realtek ALC298 codec on the Galaxy Book 5 Pro (Gen5).
If useful, I can also extract additional configuration data, verb tables, or codec pin mappings from these INF files. Please let me know if there’s anything specific you’d like me to analyze or provide to assist with adding proper speaker output support on Linux.
I investigated further on the Galaxy Book 5 Pro (ALC298 + MAX98390).
The snd_soc_max98390 module loads successfully, but is not bound to any device (Used by: 0).
$ cat /sys/bus/i2c/devices/i2c-2/*/name
MAX98390:00
The SOF topology currently loaded is sof-hda-generic-2ch.tplg.
It seems this topology doesn’t include a binding between the ALC298 codec and the MAX98390 amplifier.
I also confirmed the following:
- Audio playback through
speaker-testworks (no errors, but no sound output) - The MAX98390 amplifier responds on I²C bus 2 at addresses 0x38–0x3d
- Manual initialization via
i2cset(power-on, unmute, etc.) does not wake the amplifier
It looks like the missing piece is a dedicated topology or machine driver for this configuration
(similar to sof-hda-98390.tplg used in Dell/Lenovo models).
Would it be possible to add ALC298 + MAX98390 support for this Samsung Galaxy Book 5 Pro (Lunar Lake)? I can provide complete logs, topology dumps, and I²C register details if needed.
@chriswa81 You might also want to file this in kernel bugzilla and provide links to the resources you've captured. SOF and the snd-hda-intel drivers share the code drivers, so this is a shared problem. At least https://bugzilla.kernel.org/show_bug.cgi?id=220674 looks very close to your case. In SOF project context, we primarily work with hardware where the OEM and codec vendor support Linux, and in cases like these, we'd either need the vendor to step up, or otherwise it's upto volunteers to support the hardware in Linux.
I think the DSP topology is fine. The HDA has a single PCM interface between the SoC and the codec, and sof-hda-generic-2ch.tplg captures this. When speaker is used, this routing is between the codec and speaker amps and is not visible to DSP.
At least older models in this series have supported configuring the amps with custom HDA commands (e.g. https://dev.to/saifuddin_saifee_f3ad0520/galaxy-book-pros-internal-speaker-audio-issue-fix-fixing-silent-speakers-on-fedora-using-an-hda-38lh ). This is fairly typical that even if there are multiple hw components, they are set up using HDA commands (verbs). Of course ideally only standard HDA verbs would be used, but in practise this is not always the case and then you need to replicate the programming done in Windows driver. There are also cases where a custom set up outside HDA (e.g. over I2C) of a speaker amp is needed, but these cases are a lot more difficult from Linux point of view as you need more than a custom quirk to the standard HDA upstream codec drivers.
Would anybody possible want to discuss this in a team over on Discord? That would make it a lot more easy. I've created a Discord server for the people who would want to participate in this. https://discord.gg/pXZzXyE6Ub
Edit: I'm not that experienced, but would this help possibly: https://github.com/coolstar/max98390
I’ve extracted the Windows DSM library that seems to be used for the MAX98390 speaker amps on this Galaxy Book 5 Pro:
C:\Windows\System32\DriverStore\FileRepository\intcoed_oemlibpath.inf_amd64_…\lnl_dsm_lib.bin
Together with the following driver packages:
intelpmax.inf/intelpmax.sysMaximExtension.infMaximServiceShell64.exe/MaximAudioService64.exe
From a quick inspection, lnl_dsm_lib.bin looks like a proprietary DSM parameter/firmware blob for Lunar Lake (no plain-text register table), which is likely consumed by intelpmax.sys and the Maxim service to configure the MAX98390 amps (over I²C) and maybe Realtek ALC298.
If it helps, I can provide this blob (and the corresponding INF/SYS/EXE files) via a private link for developers who are able to legally analyze it and derive the correct HDA verbs or amp init sequence needed for Linux support.
@chriswa81 I would like you to ask to join this discord server and provide the files pretty please. This discord is related to the Galaxy Book 4 and 5 sound issue. https://discord.gg/pXZzXyE6Ub
I’ve extracted the Windows DSM library that seems to be used for the MAX98390 speaker amps on this Galaxy Book 5 Pro:
C:\Windows\System32\DriverStore\FileRepository\intcoed_oemlibpath.inf_amd64_…\lnl_dsm_lib.binTogether with the following driver packages:
intelpmax.inf/intelpmax.sysMaximExtension.infMaximServiceShell64.exe/MaximAudioService64.exeFrom a quick inspection,
lnl_dsm_lib.binlooks like a proprietary DSM parameter/firmware blob for Lunar Lake (no plain-text register table), which is likely consumed byintelpmax.sysand the Maxim service to configure the MAX98390 amps (over I²C) and maybe Realtek ALC298.If it helps, I can provide this blob (and the corresponding INF/SYS/EXE files) via a private link for developers who are able to legally analyze it and derive the correct HDA verbs or amp init sequence needed for Linux support.
I tried extracting the verbs from your file and even from my file but I did not got and results sadly. Probably needs reverse engineering of the software (which I am not going to do ever!) or sniffing the I2C bus of the chips.
Thanks a lot for your work on this fix — this is really impressive progress in such a short time.
For reference, I’m on a Galaxy Book5 Pro 360 (Lunar Lake) and my system reports subsystem_device = 0xc1da.
Based on the confirmation from @melvyn2, it’s great to hear that this ID already works with your fixup. I’m running Ubuntu/Mint and would be very happy to test this as soon as a patched kernel (or a DKMS/backport) is available outside Arch.
If you need any logs, PCI dumps, HDA codec info or validation on Lunar Lake specifically, I’m glad to help.