You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Samsung Galaxy Book4 Pro 14" (NP940XGK) - speakers do not work #5002
The speakers on the Galaxy Book4 Pro 14" NP940XGK don't work out of the box on Linux. The issue seems very similar to previously reported issues with Galaxy Book2 and Book3 laptop speakers not producing sound despite seeing the volume meter move when sound is being output. #4055
I tried using many of the provided hda-verb scripts but they don't fix the problem - still no sound output.
Bluetooth headphones do work. I haven't tried using the onboard headphone jack yet.
My hunch is that the HDA verb sequence is different and needs to be recaptured for this specific device. I might give this a shot while I'm still in the return window, but it's my first time doing something like this so no promises.
I looked at the Reverse-engineer the Windows audio driver section yesterday while rabbit-holing in that direction but not the rest of it. I'll go through it step by step tonight.
I followed the steps outlined in Disable SOF on PCI/HDaudio devices to test audio playback. No sounds were produced, again despite the volume monitor showing movement on the output device:
Followed the Try booting into Windows first, then reboot into Linux step. No dice. Sound works in Windows, continues to not work in Linux. I didn't expect this to work since I booted to Windows quite a bit at first to get firmware updates, but worth a shot.
For Make sure the ME is enabled - I'm not seeing any way of configuring ME in the BIOS for this laptop, and I think I remember Windows Update downloading drivers for Intel ME when I first booted the thing, so I'm going to just assume for now that I have ME and it is enabled.
I'm not totally sure what to make of the commands mentioned in the guide.
Installing the suggested packages didn't do anything. When I enabled pulseaudio, it actually broke audio in a different way (YouTube videos would no longer play in Firefox until I disabled it). Installing pulseaudio-alsa fixed that, but did not result in sound coming out of the speakers.
Just pulled yours repos with all yours commits of the day and test a fresh ubuntu 25.10 with latest mainline kernel 6.18.7.
Uninstall and install again, then reboot ; secureboot is enabled and working fine and try without it too (same result)
Just pulled yours repos with all yours commits of the day and test a fresh ubuntu 25.10 with latest mainline kernel 6.18.7. Uninstall and install again, then reboot ; secureboot is enabled and working fine and try without it too (same result)
Thanks for the logs! Helped find the bug — the I2C bus detection was failing on your model. The setup script assumed a specific sysfs path structure that doesn't match the Pro4.
Your service log confirms it:
max98390-hda: No MAX98390 ACPI device found on I2C bus
This means only the first amp (0x38, left woofer) was active — the other 3 were never created. Just pushed a fix.
Get the latest from the repo and run the install script again.
After reboot, verify all amps probed:
journalctl -k -b | grep "MAX98390 HDA I2C probe"
ls /sys/bus/i2c/devices/ | grep -E '003[89cd]|MAX'
You should see 4 amps (0x38, 0x39, 0x3c, 0x3d) and audio from both sides.
Hi, i'm just trying to find and understand the same things by playing with your find_i2c_bus, find_present_addrs and the content of my device /sys content :
dginhoux@pc-dg21-u:/sys/bus/acpi/devices/MAX98390:00$ ll
total 0
drwxr-xr-x 4 root root 0 Feb 14 22:13 ./
drwxr-xr-x 7 root root 0 Feb 14 22:30 ../
-r--r--r-- 1 root root 4096 Feb 14 22:30 hid
-r--r--r-- 1 root root 4096 Feb 14 22:30 modalias
-r--r--r-- 1 root root 4096 Feb 14 22:30 path
lrwxrwxrwx 1 root root 0 Feb 14 22:11 physical_node@ -> ../../../../../pci0000:00/0000:00:15.2/i2c_designware.2/i2c-2/i2c-MAX98390:00
drwxr-xr-x 2 root root 0 Feb 14 22:30 power/
-r--r--r-- 1 root root 4096 Feb 14 22:30 status
lrwxrwxrwx 1 root root 0 Feb 14 22:02 subsystem@ -> ../../../../../../bus/acpi
-rw-r--r-- 1 root root 4096 Feb 14 22:30 uevent
-r--r--r-- 1 root root 4096 Feb 14 22:30 uid
drwxr-xr-x 3 root root 0 Feb 14 22:30 wakeup/
dginhoux@pc-dg21-u:/sys/bus/i2c/devices$ ll
total 0
drwxr-xr-x 2 root root 0 Feb 14 22:02 ./
drwxr-xr-x 4 root root 0 Feb 14 22:02 ../
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-0@ -> ../../../devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-1@ -> ../../../devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-10@ -> ../../../devices/pci0000:00/0000:00:02.0/i2c-10
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-11@ -> ../../../devices/pci0000:00/0000:00:02.0/i2c-11
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-12@ -> ../../../devices/pci0000:00/0000:00:02.0/i2c-12
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-13@ -> ../../../devices/pci0000:00/0000:00:02.0/i2c-13
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-14@ -> ../../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/i2c-14
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-15@ -> ../../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1/i2c-15
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-16@ -> ../../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2/i2c-16
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-17@ -> ../../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-3/i2c-17
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-2@ -> ../../../devices/pci0000:00/0000:00:15.2/i2c_designware.2/i2c-2
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-3@ -> ../../../devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-3
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-4@ -> ../../../devices/pci0000:00/0000:00:1f.4/i2c-4
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-5@ -> ../../../devices/pci0000:00/0000:00:02.0/i2c-5
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-6@ -> ../../../devices/pci0000:00/0000:00:02.0/i2c-6
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-7@ -> ../../../devices/pci0000:00/0000:00:02.0/i2c-7
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-8@ -> ../../../devices/pci0000:00/0000:00:02.0/i2c-8
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-9@ -> ../../../devices/pci0000:00/0000:00:02.0/i2c-9
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-GXTP7936:00@ -> ../../../devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-GXTP7936:00
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-MAX98390:00@ -> ../../../devices/pci0000:00/0000:00:15.2/i2c_designware.2/i2c-2/i2c-MAX98390:00
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-OVTI02C1:00@ -> ../../../devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-3/i2c-OVTI02C1:00
lrwxrwxrwx 1 root root 0 Feb 14 22:02 i2c-ZNT0001:00@ -> ../../../devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-ZNT0001:00
@dginhoux - Awesome! Glad to hear it worked as I thought it might have been a race condition but nope, looks like the last fix will work for book4 Pro users. Thanks for the willingness to troubleshoot. :)
Battery Impact: This workaround keeps the speaker amplifiers powered on at all times (even when not playing audio), which uses an estimated 0.3–0.5W extra (~3–5% battery life). This is a limitation of the workaround approach
Is this a limitation just for your DKMS module, or this the case for the kernel patch in #5616 as well?
Is there anyone on this thread who has experience contributing to the kernel? It would be great to get the code from #5616 merged into mainline, but I'm not sure where to start.
Battery Impact: This workaround keeps the speaker amplifiers powered on at all times (even when not playing audio), which uses an estimated 0.3–0.5W extra (~3–5% battery life). This is a limitation of the workaround approach
Is this a limitation just for your DKMS module, or this the case for the kernel patch in #5616 as well?
Is there anyone on this thread who has experience contributing to the kernel? It would be great to get the code from #5616 merged into mainline, but I'm not sure where to start.
Good question! The always-on battery impact is only a limitation of this DKMS workaround only, not of the upstream PR #5616.
The difference: the upstream PR modifies patch_realtek.c to add a Samsung-specific quirk that creates an HDA component master with proper playback hooks - the amps power on when audio plays and power off when it stops. This DKMS package
can't modify patch_realtek.c (that would require recompiling the kernel), so we bypass the quirk entirely and set the amps to "always on" during driver probe instead. That's the trade-off for easy DKMS install vs. full kernel compilation (this DKMS does it intentionally to avoid kernel compilation).
Once #5616 lands in mainline (expected kernel 7.0 or 7.1), proper power management comes with it — and this DKMS package will auto-detect native support and remove itself.
Well, we need to submit a patch via email unfortunately, as discussed a bit in #5616. That pull request will never be merged since it's not touching code in SOF.
Well, we need to submit a patch via email unfortunately, as discussed a bit in #5616. That pull request will never be merged since it's not touching code in SOF.
Ah, didn't realize that was the current state - so the "real" fix is even further out as of this moment. :/
Activity
plbossart commentedon May 17, 2024
I presume you've looked at https://thesofproject.github.io/latest/getting_started/intel_debug/suggestions.html for the verb tables?
dgunay commentedon May 17, 2024
I looked at the
Reverse-engineer the Windows audio driversection yesterday while rabbit-holing in that direction but not the rest of it. I'll go through it step by step tonight.Thank you for the very prompt response.
dgunay commentedon May 18, 2024
Ran
alsa-info.sh. Results: http://alsa-project.org/db/?f=6105eef8dd841227908a445246a6b2582aff57dadgunay commentedon May 18, 2024
I followed the steps outlined in
Disable SOF on PCI/HDaudio devices to test audio playback. No sounds were produced, again despite the volume monitor showing movement on the output device:dgunay commentedon May 18, 2024
Followed the
Try booting into Windows first, then reboot into Linuxstep. No dice. Sound works in Windows, continues to not work in Linux. I didn't expect this to work since I booted to Windows quite a bit at first to get firmware updates, but worth a shot.dgunay commentedon May 18, 2024
I'm going to save the reverse engineering step for later since the other steps look like much lower hanging fruit.
dgunay commentedon May 18, 2024
For
Make sure the ME is enabled- I'm not seeing any way of configuring ME in the BIOS for this laptop, and I think I remember Windows Update downloading drivers for Intel ME when I first booted the thing, so I'm going to just assume for now that I have ME and it is enabled.dgunay commentedon May 18, 2024
Tried
Test at the ALSA ‘hw’ device levelI'm not totally sure what to make of the commands mentioned in the guide.
Installing the suggested packages didn't do anything. When I enabled
pulseaudio, it actually broke audio in a different way (YouTube videos would no longer play in Firefox until I disabled it). Installingpulseaudio-alsafixed that, but did not result in sound coming out of the speakers.dgunay commentedon May 18, 2024
I've done
Verify mixer settingsmultiple times now so I'm pretty sure the mixer isn't muting my speakers.dgunay commentedon May 18, 2024
Enabled dynamic debugging and ran
sudo dmesg | rg -i 'snd|sof|pci'Maybe someone more knowledgeable than me can glean something from this: https://gist.github.com/dgunay/0eea4dc528c55d30906429e9419d8264
dgunay commentedon May 18, 2024
I'm not really qualified to tell whether the SOF tracing step is necessary yet, but I have
sof-loggerinstalled now.dgunay commentedon May 18, 2024
I don't think
Digital mic issuesapplies to me, so I'm skipping that step.dgunay commentedon May 18, 2024
Looks like my system does not have
ES8336 supportaccording to the output of alsa-info - skipping that step.37 remaining items
Andycodeman commentedon Feb 14, 2026
Glad to hear it @Santigf12 and thanks for the update with your specific adjustment! I'll look to add notes and streamline more.
Edit: Added specific support for signing on Fedora so hopefully Fedora users won't have to do this manually like you did.
dginhoux commentedon Feb 14, 2026
Hi @Andycodeman,
Thank for your help, this is what i have :
dginhoux commentedon Feb 14, 2026
Just pulled yours repos with all yours commits of the day and test a fresh ubuntu 25.10 with latest mainline kernel 6.18.7.
Uninstall and install again, then reboot ; secureboot is enabled and working fine and try without it too (same result)
diag-sgb4p_1.log
Andycodeman commentedon Feb 14, 2026
Thanks for the logs! Helped find the bug — the I2C bus detection was failing on your model. The setup script assumed a specific sysfs path structure that doesn't match the Pro4.
Your service log confirms it:
max98390-hda: No MAX98390 ACPI device found on I2C bus
This means only the first amp (0x38, left woofer) was active — the other 3 were never created. Just pushed a fix.
Get the latest from the repo and run the install script again.
After reboot, verify all amps probed:
journalctl -k -b | grep "MAX98390 HDA I2C probe"
ls /sys/bus/i2c/devices/ | grep -E '003[89cd]|MAX'
You should see 4 amps (0x38, 0x39, 0x3c, 0x3d) and audio from both sides.
dginhoux commentedon Feb 14, 2026
Hi, i'm just trying to find and understand the same things by playing with your find_i2c_bus, find_present_addrs and the content of my device /sys content :
dginhoux commentedon Feb 14, 2026
Yes, and now it's fully working left/right with your latest commit (dd30c15).
I hope your work will help lot of samsung laptop owners.
Amazing work
Andycodeman commentedon Feb 14, 2026
@dginhoux - Awesome! Glad to hear it worked as I thought it might have been a race condition but nope, looks like the last fix will work for book4 Pro users. Thanks for the willingness to troubleshoot. :)
dginhoux commentedon Feb 14, 2026
Because i'm in testing mode, i'll reinstall from scratch an ubuntu 25.10, just os upgrade and add start the patch.
Let me 20/30min...
Seen on the windows (dualboot) an new bios v13, i'm doing upgrade
dginhoux commentedon Feb 14, 2026
Fully working on fresh ubuntu install 25.10, kernek 6.17.0 on the book4 pro14 ; and the same with mainline 6.18.7 kernel.
stephanlensky commentedon Feb 15, 2026
@Andycodeman thanks for putting this together.
Is this a limitation just for your DKMS module, or this the case for the kernel patch in #5616 as well?
Is there anyone on this thread who has experience contributing to the kernel? It would be great to get the code from #5616 merged into mainline, but I'm not sure where to start.
Andycodeman commentedon Feb 15, 2026
Good question! The always-on battery impact is only a limitation of this DKMS workaround only, not of the upstream PR #5616.
The difference: the upstream PR modifies patch_realtek.c to add a Samsung-specific quirk that creates an HDA component master with proper playback hooks - the amps power on when audio plays and power off when it stops. This DKMS package
can't modify patch_realtek.c (that would require recompiling the kernel), so we bypass the quirk entirely and set the amps to "always on" during driver probe instead. That's the trade-off for easy DKMS install vs. full kernel compilation (this DKMS does it intentionally to avoid kernel compilation).
Once #5616 lands in mainline (expected kernel 7.0 or 7.1), proper power management comes with it — and this DKMS package will auto-detect native support and remove itself.
stephanlensky commentedon Feb 15, 2026
Is there a patch already submitted for this? Or is it an LLM hallucination?
Andycodeman commentedon Feb 15, 2026
Definitely an estimate from AI due to submission date and number of responses, but no confirmation/guarantees on any of it.
stephanlensky commentedon Feb 15, 2026
Well, we need to submit a patch via email unfortunately, as discussed a bit in #5616. That pull request will never be merged since it's not touching code in SOF.
Andycodeman commentedon Feb 15, 2026
Ah, didn't realize that was the current state - so the "real" fix is even further out as of this moment. :/