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
[Meteor Lake + Realtek ALC298? Samsung NP960XGK] Internal speakers silent on SOF; HDMI audio works #5628
On Samsung Galaxy Book4 Pro (NP960XGK) with Meteor Lake-P HD Audio Controller and Realtek codec, PipeWire exposes Speaker/HDMI sinks under SOF, microphones work, HDMI audio works, but internal speakers are silent. ALSA mixers are unmuted, Auto-Mute disabled, and trying EAPD/pin widget enable via hda-verb does not restore speaker output. Legacy HDA (with SOF disabled) is untested/partial; HDMI is used as a workaround. Regression not confirmed; persists on latest Fedora kernel as of [date].
Hardware:
Laptop: Samsung Galaxy Book4 Pro 16 (NP960XGK) [adjust if different]
CPU/Platform: Intel Meteor Lake-P
Audio: Meteor Lake-P HD Audio Controller + Realtek codec (likely ALC298 family)
Display/audio over HDMI: working
Software:
Distro: Fedora 42
Kernel: uname -a: [paste]
SOF firmware/topology: sof-logger -l /lib/firmware/intel/sof/ or sof-info output [see “Data to attach”]
PipeWire: 1.4.9
WirePlumber: 1.4.9
ALSA utils: 1.2.14
Observed behavior:
wpctl status shows Speaker and HDMI sinks; selecting Speaker produces no sound in any app.
HDMI sink plays audio normally.
ALSA controls:
Auto-Mute Mode: Disabled
Speaker: 100% unmuted
hda-verb attempts:
hda-verb /dev/snd/hwC0D0 0x17 SET_EAPD_BTLENABLE 0x02 -> value=0x0
hda-verb /dev/snd/hwC0D0 0x21 SET_EAPD_BTLENABLE 0x02 -> value=0x0
hda-verb /dev/snd/hwC0D0 0x17 SET_PIN_WIDGET_CONTROL 0x40 -> value=0x0
No audio output afterward.
speaker-test plays (no errors), but no audible output from speakers.
Expected behavior:
Internal “Speaker” sink should produce sound.
Steps to reproduce:
Boot Fedora 42 on Samsung NP960XGK with default SOF stack.
Ensure card profile: pactl set-card-profile "HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker)"
Set default sink to Speaker and unmute:
wpctl set-default
wpctl set-mute 0
wpctl set-volume 1.0
Confirm ALSA mixers:
amixer -c 0 set 'Auto-Mute Mode' Disabled
amixer -c 0 set 'Speaker' 100% unmute
Play test tone:
speaker-test -D default -c 2 -t sine -f 440 -l 1
Observe: no sound from internal speakers; HDMI works if selected.
Notes:
PipeWire previously showed only “Dummy Output” until card profile was reapplied; current kernels expose proper sinks.
Looks like a SOF topology/codec-init quirk for this Samsung model—likely missing EAPD/amp enable or GPIO amp control in the topology/quirks.
Willing to test patches or debug builds.
For anyone looking for an easy way to apply these fixes — I've packaged tested, automated install scripts for both the speaker and webcam issues on Samsung Galaxy Book4 (and others) laptops:
Speaker fix: DKMS driver for the MAX98390 I2C amplifiers (based on thesofproject/linux PR #5616). Auto-rebuilds on kernel updates and auto-removes itself when native kernel support lands.
Webcam fix: Handles IVSC module loading, Intel IPU6 camera HAL setup, v4l2loopback relay, and PipeWire device classification. Works with Firefox, Chrome, Zoom, Teams, OBS, mpv, and more.
Tested on: Samsung Galaxy Book4 Ultra, Ubuntu 24.04 LTS, kernel 6.17 (HWE). The upstream speaker PR (#5616) has also been confirmed working on the Book4 Pro, Pro 360, and Pro 16-inch by other users. If you're on a Galaxy Book5 or a different distro (Fedora, Arch, Manjaro, Debian, etc.), the fixes may still work since the underlying hardware (ALC298 + MAX98390 amps, IPU6 + OV02C10 sensor) is shared across models — but only the Ultra on Ubuntu has been directly verified. Reports from other configurations are welcome.
Note: The built-in microphones (DMIC) do not work yet on any of these models — that requires SOF driver support which is expected in kernel 7.0 (April 2026) or 7.1 (June 2026). See the repo README for details and workarounds.
Activity
yamm1flux commentedon Dec 17, 2025
daha@gamora:~$ sudo dmidecode | egrep -i 'product name|system product|system version|bios version|bios release|board name|manufacturer'[sudo] password for daha:
Manufacturer: SAMSUNG ELECTRONICS CO., LTD.
Product Name: 960XGK
Manufacturer: SAMSUNG ELECTRONICS CO., LTD.
Product Name: NP960XGK-KG5HK
Manufacturer: SAMSUNG ELECTRONICS CO., LTD.
Manufacturer: SAMSUNG ELECTRONICS CO., LTD.
Manufacturer: Default string
Manufacturer: INTEL
Manufacturer: Samsung
Module Manufacturer ID: Bank 1, Hex 0xCE
Memory Subsystem Controller Manufacturer ID: Unknown
Manufacturer: Samsung
Module Manufacturer ID: Bank 1, Hex 0xCE
Memory Subsystem Controller Manufacturer ID: Unknown
Manufacturer: Samsung
Module Manufacturer ID: Bank 1, Hex 0xCE
Memory Subsystem Controller Manufacturer ID: Unknown
Manufacturer: Samsung
Module Manufacturer ID: Bank 1, Hex 0xCE
Memory Subsystem Controller Manufacturer ID: Unknown
Manufacturer: Samsung
Module Manufacturer ID: Bank 1, Hex 0xCE
Memory Subsystem Controller Manufacturer ID: Unknown
Manufacturer: Samsung
Module Manufacturer ID: Bank 1, Hex 0xCE
Memory Subsystem Controller Manufacturer ID: Unknown
Manufacturer: Samsung
Module Manufacturer ID: Bank 1, Hex 0xCE
Memory Subsystem Controller Manufacturer ID: Unknown
Manufacturer: Samsung
Module Manufacturer ID: Bank 1, Hex 0xCE
Memory Subsystem Controller Manufacturer ID: Unknown
Manufacturer: Intel(R) Corporation
daha@gamora:~$ uname -aLinux gamora 6.17.11-200.fc42.x86_64 thesofproject/sof#1 SMP PREEMPT_DYNAMIC Tue Dec 9 00:25:56 UTC 2025 x86_64 GNU/Linux
daha@gamora:~$
yamm1flux commentedon Dec 17, 2025
daha@gamora:~$ aplay -l**** List of PLAYBACK Hardware Devices ****
card 0: sofhdadsp [sof-hda-dsp], device 0: HDA Analog () []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 3: HDMI1 () []
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 4: HDMI2 () []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 5: HDMI3 () []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 31: Deepbuffer HDA Analog () []
Subdevices: 1/1
Subdevice #0: subdevice #0
daha@gamora:~$ arecord -l**** List of CAPTURE Hardware Devices ****
card 0: sofhdadsp [sof-hda-dsp], device 0: HDA Analog () []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 6: DMIC Raw () []
Subdevices: 1/1
Subdevice #0: subdevice #0
daha@gamora:~$ cat /proc/asound/cards0 [sofhdadsp ]: sof-hda-dsp - sof-hda-dsp
SAMSUNGELECTRONICSCO.LTD.-960XGK-P10RHA-NP960XGK_KG5HK
daha@gamora:~$ sudo cat /proc/asound/card0/codec#0 2>/dev/null || sudo cat /proc/asound/card0/codec* 2>/dev/nullCodec: Realtek ALC298
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0298
Subsystem Id: 0x144dc890
Revision Id: 0x100103
No Modem Function Group found
Default PCM:
rates [0x60]: 44100 48000
bits [0xe]: 16 20 24
formats [0x1]: PCM
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
State of AFG node 0x01:
Power states: D0 D1 D2 D3 D3cold CLKSTOP EPSS
Power: setting=D0, actual=D0
GPIO: io=8, o=0, i=0, unsolicited=1, wake=0
IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
IO[7]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
Node 0x02 [Audio Output] wcaps 0x41d: Stereo Amp-Out
Control: name="Headphone Playback Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x01, mute=0
Amp-Out vals: [0x7f 0x7f]
Converter: stream=0, channel=0
PCM:
rates [0x60]: 44100 48000
bits [0xe]: 16 20 24
formats [0x1]: PCM
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Node 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out
Control: name="Speaker Playback Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x01, mute=0
Amp-Out vals: [0x7f 0x7f]
Converter: stream=0, channel=0
PCM:
rates [0x60]: 44100 48000
bits [0xe]: 16 20 24
formats [0x1]: PCM
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x06 [Audio Output] wcaps 0x411: Stereo
Converter: stream=0, channel=0
PCM:
rates [0x40]: 48000
bits [0xe]: 16 20 24
formats [0x1]: PCM
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x08 [Audio Input] wcaps 0x10051b: Stereo Amp-In
Control: name="Capture Volume", index=0, device=0
ControlAmp: chs=3, dir=In, idx=0, ofs=0
Control: name="Capture Switch", index=0, device=0
ControlAmp: chs=3, dir=In, idx=0, ofs=0
Amp-In caps: ofs=0x43, nsteps=0x7f, stepsize=0x01, mute=1
Amp-In vals: [0x7f 0x7f]
Converter: stream=0, channel=0
SDI-Select: 0
PCM:
rates [0x60]: 44100 48000
bits [0xe]: 16 20 24
formats [0x1]: PCM
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Connection: 1
0x23
Node 0x09 [Audio Input] wcaps 0x10051b: Stereo Amp-In
Amp-In caps: ofs=0x43, nsteps=0x7f, stepsize=0x01, mute=1
Amp-In vals: [0xc3 0xc3]
Converter: stream=0, channel=0
SDI-Select: 0
PCM:
rates [0x60]: 44100 48000
bits [0xe]: 16 20 24
formats [0x1]: PCM
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Connection: 1
0x22
Node 0x0a [Audio Input] wcaps 0x100511: Stereo
Converter: stream=0, channel=0
SDI-Select: 0
PCM:
rates [0x40]: 48000
bits [0xe]: 16 20 24
formats [0x1]: PCM
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Connection: 1
0x25
Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
Control: name="Mic Playback Volume", index=0, device=0
ControlAmp: chs=3, dir=In, idx=0, ofs=0
Control: name="Mic Playback Switch", index=0, device=0
ControlAmp: chs=3, dir=In, idx=0, ofs=0
Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
Amp-In vals: [0x9c 0x9c] [0x80 0x80] [0x80 0x80] [0x80 0x80]
Connection: 4
0x18 0x19 0x1a 0x1d
Node 0x0c [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x00 0x00] [0x80 0x80]
Connection: 2
0x02 0x0b
Node 0x0d [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-In vals: [0x00 0x00]
Connection: 1
0x03
Node 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0f [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x11 [Audio Input] wcaps 0x10051b: Stereo Amp-In
Amp-In caps: ofs=0x43, nsteps=0x7f, stepsize=0x01, mute=1
Amp-In vals: [0xc3 0xc3]
Converter: stream=0, channel=0
SDI-Select: 0
PCM:
rates [0x60]: 44100 48000
bits [0xe]: 16 20 24
formats [0x1]: PCM
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Connection: 1
0x24
Node 0x12 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-In vals: [0x00 0x00]
Pincap 0x00000020: IN
Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
Conn = 1/8, Color = Black
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00:
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Node 0x13 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-In vals: [0x00 0x00]
Pincap 0x00000020: IN
Pin Default 0x40000000: [N/A] Line Out at Ext N/A
Conn = Unknown, Color = Unknown
DefAssociation = 0x0, Sequence = 0x0
Pin-ctls: 0x00:
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Node 0x14 [Pin Complex] wcaps 0x40050d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x80 0x80]
Pincap 0x00010010: OUT EAPD
EAPD 0x2: EAPD
Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
Conn = 1/8, Color = Black
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00:
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Connection: 2
0x0c 0x0d
Node 0x15 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x16 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x17 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
Control: name="Speaker Playback Switch", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x0001001c: OUT HP EAPD Detect
EAPD 0x2: EAPD
Pin Default 0x90170110: [Fixed] Speaker at Int N/A
Conn = Analog, Color = Unknown
DefAssociation = 0x1, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x40: OUT
Unsolicited: tag=00, enabled=0
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Connection: 3
0x0c 0x0d* 0x06
Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
Control: name="Mic Boost Volume", index=0, device=0
ControlAmp: chs=3, dir=In, idx=0, ofs=0
Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-In vals: [0x03 0x03]
Pincap 0x00003724: IN Detect
Vref caps: HIZ 50 GRD 80 100
Pin Default 0x04a11020: [Jack] Mic at Ext Right
Conn = 1/8, Color = Black
DefAssociation = 0x2, Sequence = 0x0
Pin-ctls: 0x24: IN VREF_80
Unsolicited: tag=02, enabled=1
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-In vals: [0x00 0x00]
Pincap 0x00003724: IN Detect
Vref caps: HIZ 50 GRD 80 100
Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
Conn = 1/8, Color = Black
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00: VREF_HIZ
Unsolicited: tag=00, enabled=0
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Node 0x1a [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out
Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
Amp-In vals: [0x00 0x00]
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x80 0x80]
Pincap 0x0001373c: IN OUT HP EAPD Detect
Vref caps: HIZ 50 GRD 80 100
EAPD 0x2: EAPD
Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
Conn = 1/8, Color = Black
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00: VREF_HIZ
Unsolicited: tag=00, enabled=0
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Connection: 2
0x0c* 0x0d
Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1d [Pin Complex] wcaps 0x400400: Mono
Pincap 0x00000020: IN
Pin Default 0x40630245: [N/A] Modem Line at Ext N/A
Conn = ATAPI, Color = Unknown
DefAssociation = 0x4, Sequence = 0x5
Pin-ctls: 0x20: IN
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Node 0x1e [Pin Complex] wcaps 0x400501: Stereo
Pincap 0x00000014: OUT Detect
Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
Conn = 1/8, Color = Black
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00:
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Connection: 1
0x06
Node 0x1f [Pin Complex] wcaps 0x400401: Stereo
Pincap 0x00000024: IN Detect
Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
Conn = 1/8, Color = Black
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x00:
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono
Processing caps: benign=0, ncoeff=150
Node 0x21 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
Control: name="Headphone Playback Switch", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x80 0x80]
Pincap 0x0000001c: OUT HP Detect
Pin Default 0x04211050: [Jack] HP Out at Ext Right
Conn = 1/8, Color = Black
DefAssociation = 0x5, Sequence = 0x0
Pin-ctls: 0xc0: OUT HP
Unsolicited: tag=01, enabled=1
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Connection: 2
0x0c* 0x0d
Node 0x22 [Audio Selector] wcaps 0x300101: Stereo
Connection: 6
0x18* 0x19 0x1a 0x1d 0x0b 0x12
Node 0x23 [Audio Selector] wcaps 0x300101: Stereo
Connection: 6
0x18* 0x19 0x1a 0x1d 0x0b 0x13
Node 0x24 [Audio Selector] wcaps 0x300101: Stereo
Connection: 2
0x12* 0x13
Node 0x25 [Audio Selector] wcaps 0x300101: Stereo
Connection: 1
0x1f
daha@gamora:~$
yamm1flux commentedon Dec 17, 2025
audio-debug-20251217-111413.tar.gz
lgirdwood commentedon Dec 17, 2025
@shumingfan could this be a missing HDA verb ?
shumingfan commentedon Dec 23, 2025
@KailangYang Do you have any idea?
KailangYang commentedon Dec 24, 2025
Node 0x17 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
Control: name="Speaker Playback Switch", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals: [0x00 0x00]
Pincap 0x0001001c: OUT HP EAPD Detect
EAPD 0x2: EAPD
Pin Default 0x90170110: [Fixed] Speaker at Int N/A
Conn = Analog, Color = Unknown
DefAssociation = 0x1, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x40: OUT
This platform also has speaker Amp. It's not own by Realtek.
Please report to Samsung or Amp vendor directly.
Andycodeman commentedon Feb 14, 2026
For anyone looking for an easy way to apply these fixes — I've packaged tested, automated install scripts for both the speaker and webcam issues on Samsung Galaxy Book4 (and others) laptops:
https://github.com/Andycodeman/samsung-galaxy-book4-linux-fixes
Speaker fix: DKMS driver for the MAX98390 I2C amplifiers (based on thesofproject/linux PR #5616). Auto-rebuilds on kernel updates and auto-removes itself when native kernel support lands.
Webcam fix: Handles IVSC module loading, Intel IPU6 camera HAL setup, v4l2loopback relay, and PipeWire device classification. Works with Firefox, Chrome, Zoom, Teams, OBS, mpv, and more.
Tested on: Samsung Galaxy Book4 Ultra, Ubuntu 24.04 LTS, kernel 6.17 (HWE). The upstream speaker PR (#5616) has also been confirmed working on the Book4 Pro, Pro 360, and Pro 16-inch by other users. If you're on a Galaxy Book5 or a different distro (Fedora, Arch, Manjaro, Debian, etc.), the fixes may still work since the underlying hardware (ALC298 + MAX98390 amps, IPU6 + OV02C10 sensor) is shared across models — but only the Ultra on Ubuntu has been directly verified. Reports from other configurations are welcome.
Note: The built-in microphones (DMIC) do not work yet on any of these models — that requires SOF driver support which is expected in kernel 7.0 (April 2026) or 7.1 (June 2026). See the repo README for details and workarounds.