Over four days. That’s how long I spent trying to get the internal speakers on my Samsung Galaxy Book2 (NT950XDA) to produce a single sound after switching from Windows to Ubuntu.
And I wasn’t alone.
The Problem
Right out of the box, Ubuntu (even the latest 24.04) doesn’t play well with the Realtek ALC298 audio codec on many Samsung Galaxy Book devices. Headphones might work, but internal speakers remain silent due to uninitialized smart speaker amps.
I found myself crawling through obscure forum posts, GitHub issues, and deep dmesg logs. I came across broken workarounds, kernel parameters, even dead-end firmware downloads. Nothing stuck — until I discovered a promising thread from the Manjaro community and a early work of @joshuagrisham.
The Breakthrough
The answer turned out to be hda-verb, a tool for sending manual codec commands to initialize the amp. After copying dozens of lines of hda-verb commands into a script and running it manually, audio finally burst through my speakers.
It worked—but only until the next reboot.
The Automation
That’s when I decided to build a real solution:
- Auto-run the fix at boot and after resume
- Avoid breaking any existing audio setups
- Use systemd services for reliability
- Keep it simple, safe, and open source
The Tool: galaxybook-linux-setup
Now available on GitHub: https://github.com/topzyray/galaxybook-linux-setup
Features:
- 🛠 Initializes smart speaker amps via hda-verb
- 🌀 Runs fix on boot + resume using systemd
- 🎚 Disables PulseAudio's suspend-on-idle to prevent speaker freezing
- 📁 Backs up existing config files to avoid damage
- ⚙️ Detects your current user and system safely
- 🤝 MIT-licensed, contributions welcome
Installation is as easy as:
git clone https://github.com/topzyray/galaxybook-linux-setup.git
cd galaxybook-linux-setup
chmod +x install.sh
./install.sh
Reboot when prompted, and you’re done. No more silent boots.
Who This Might Helps
- Galaxy Book2 NT950XDA users or other device with similar issue or device/driver info
- Anyone with Realtek ALC298 codec and no speaker output
- Linux newcomers switching from Windows
- Ubuntu/Mint/Pop_OS/Manjaro users on 5.8+ kernels though I tested on 6.14.
Credit Where Due
Joshua Grisham @joshuagrisham – GitHub
Community post from user @drlucas – Manjaro Forum
Access hda-ver used here
The Bigger Picture
This project reminded me why open source matters. Without the knowledge of those before me, I’d still be rebooting into silence.
Now, I’m extending this to include fingerprint readers, screen brightness fixes, and more for Galaxy Book users and I will also be testing on other devices. Please you can test too.
NOTE: The script does not delete any file rather it create a backup whenever updating an existing file.
Have a similar issue? Found this useful? Contribute, fork, share, or open an issue!
👉 Repo: https://github.com/topzyray/galaxybook-linux-setup
If you have further question, suggestion or observations please leave them in the comment section. Thank you for reading.
Top comments (2)
Hello,
I am a complete linux newbie and I found this blog post while desperately searching for the solution to the problem with my galaxy4.
Unfortunately the script does not seem to fix the issue for me was wondering if there was anything different I could try along these lines to fix the issue?
Hello and thank you Tope for putting this solution together. Unfortunately, it did not work on my system, but I suspect a buggy intel driver may share the blame, specifically intel-ipu6-dkms. I have a Samsung Galaxy Book4 Pro 360.
inxi -F
System:
Host: Archimedes Kernel: 6.14.0-33-generic arch: x86_64 bits: 64
Desktop: Cinnamon v: 6.4.8 Distro: Linux Mint 22.2 Zara
Machine:
Type: Convertible System: SAMSUNG product: 960QGK v: P13RHB
serial:
Mobo: SAMSUNG model: NP960QGK-KG1US
v: SGLB843A0D-C01-G001-S0002+10.0.26100 serial:
UEFI: American Megatrends LLC. v: P13RHB.430.241024.04 date: 10/24/2024
Battery:
ID-1: BAT1 charge: 74.4 Wh (97.9%) condition: 76.0/73.8 Wh (102.9%)
CPU:
Info: 16-core (6-mt/10-st) model: Intel Core Ultra 7 155H bits: 64
type: MST AMCP cache: L2: 18 MiB
Speed (MHz): avg: 613 min/max: 400/4500:4800:3800:2500 cores: 1: 400
2: 2000 3: 400 4: 400 5: 1943 6: 400 7: 1946 8: 400 9: 400 10: 400 11: 400
12: 400 13: 400 14: 400 15: 400 16: 400 17: 400 18: 400 19: 400 20: 400
21: 400 22: 400
Graphics:
Device-1: Intel Meteor Lake-P [Intel Arc Graphics] driver: i915 v: kernel
Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.6 driver: X:
loaded: modesetting unloaded: fbdev,vesa dri: iris gpu: i915
resolution: 2880x1800~120Hz
API: EGL v: 1.5 drivers: iris,swrast platforms: gbm,x11,surfaceless,device
API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa
v: 25.0.7-0ubuntu0.24.04.2 renderer: Mesa Intel Arc Graphics (MTL)
Audio:
Device-1: Intel driver: intel-ipu6
Device-2: Intel Meteor Lake-P HD Audio driver: sof-audio-pci-intel-mtl
API: ALSA v: k6.14.0-33-generic status: kernel-api
Server-1: PulseAudio v: 16.1 status: active
Network:
Device-1: Intel Meteor Lake PCH CNVi WiFi driver: iwlwifi
IF: wlo1 state: up mac: 28:95:29:ad:cb:90
Bluetooth:
Device-1: Intel AX211 Bluetooth driver: btusb type: USB
Report: hciconfig ID: hci0 rfk-id: 0 state: down
bt-service: enabled,running rfk-block: hardware: no software: yes
address: 28:95:29:AD:CB:94
Drives:
Local Storage: total: 953.87 GiB used: 33.54 GiB (3.5%)
ID-1: /dev/nvme0n1 vendor: Samsung model: MZVL41T0HBLB-00B
size: 953.87 GiB
Partition:
ID-1: / size: 91.11 GiB used: 28.07 GiB (30.8%) fs: ext4 dev: /dev/nvme0n1p7
ID-2: /boot/efi size: 256 MiB used: 74.2 MiB (29.0%) fs: vfat
dev: /dev/nvme0n1p1
ID-3: /home size: 457.28 GiB used: 5.4 GiB (1.2%) fs: ext4
dev: /dev/nvme0n1p8
Swap:
ID-1: swap-1 type: partition size: 30.73 GiB used: 0 KiB (0.0%)
dev: /dev/nvme0n1p9
Sensors:
Src: /sys System Temperatures: cpu: 45.0 C mobo: N/A
Fan Speeds (rpm): N/A
Info:
Memory: total: 16 GiB note: est. available: 15.2 GiB used: 3.41 GiB (22.4%)
Processes: 409 Uptime: 8m Shell: Bash inxi: 3.3.34
Out of the box sound works through the headphone jack but not from the internal speakers. Bluetooth and the fingerprint sensor also do not work, although the keyboard backlighting works fine.
I have spent many hours combing the forums looking for answers including checking alsamixer to ensure speakers are not muted (they're not), reinstalling Pulseaudio, etc.
I have been told that the ipu6 driver is for the webcam, but looking at the Audio section of the inxi output (above) it is a sound driver, too. Anytime a kernel update is applied via the Mint Update Manager it throws an error message about ipu6. I got a similar error message when I ran your script, although otherwise the script seems to run fine. In order to reproduce the error message I uninstalled then reinstalled the ipu6 driver in the Synaptic package manager and got the following messages:
Selecting previously unselected package intel-ipu6-dkms.
(Reading database ... 652588 files and directories currently installed.)
Preparing to unpack .../intel-ipu6-dkms_0~git202406240945.aecec2aa-0ubuntu2~24.04.3_amd64.deb ...
Unpacking intel-ipu6-dkms (0~git202406240945.aecec2aa-0ubuntu2~24.04.3) ...
Setting up intel-ipu6-dkms (0~git202406240945.aecec2aa-0ubuntu2~24.04.3) ...
Loading new ipu6-drivers-0~git202406240945.aecec2aa-0ubuntu2~24.04.3 DKMS files...
Building for 6.14.0-33-generic 6.14.0-35-generic
Building initial module for 6.14.0-33-generic
Error! Bad return status for module build on kernel: 6.14.0-33-generic (x86_64)
Consult /var/lib/dkms/ipu6-drivers/0~git202406240945.aecec2aa-0ubuntu2~24.04.3/build/make.log for more information.
dpkg: error processing package intel-ipu6-dkms (--configure):
installed intel-ipu6-dkms package post-installation script subprocess returned error exit status 10
Errors were encountered while processing:
intel-ipu6-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install. Trying to recover:
Setting up intel-ipu6-dkms (0~git202406240945.aecec2aa-0ubuntu2~24.04.3) ...
Removing old ipu6-drivers-0~git202406240945.aecec2aa-0ubuntu2~24.04.3 DKMS files...
Deleting module ipu6-drivers-0~git202406240945.aecec2aa-0ubuntu2~24.04.3 completely from the DKMS tree.
Loading new ipu6-drivers-0~git202406240945.aecec2aa-0ubuntu2~24.04.3 DKMS files...
Building for 6.14.0-33-generic 6.14.0-35-generic
Building initial module for 6.14.0-33-generic
Error! Bad return status for module build on kernel: 6.14.0-33-generic (x86_64)
Consult /var/lib/dkms/ipu6-drivers/0~git202406240945.aecec2aa-0ubuntu2~24.04.3/build/make.log for more information.
dpkg: error processing package intel-ipu6-dkms (--configure):
installed intel-ipu6-dkms package post-installation script subprocess returned error exit status 10
Errors were encountered while processing:
intel-ipu6-dkms
Any assistance you can provide would be greatly appreciated.