Issue with Bang & Olufsen speakers

Status
Not open for further replies.
We have to do some manual settings editing on pulse audio config. The path is /etc/pulse/daemon.conf. Open a terminal by pressing ctrl+alt+t. First of all, backup the configuration file:

Code:
sudo cp /etc/pulse/daemon.conf /etc/pulse/daemon.conf.backup

Then type
Code:
sudo gedit /etc/pulse/daemon.conf
- you may have to replace gedit with your text editor

(If your file is empty, it means the file you are looking for is not in this directory. In this case, try to locate it:
Code:
sudo updatedb
, this will update your files database index. Then type
Code:
locate daemon.conf
to find the file location. Replace /etc/pulse/ with the path to your daemon.conf file)

Find the following lines (ctrl+w to find text in file) and replace your values with the following (lines might be in a different order in your system):

default-sample-format = float32ne
default-sample-rate = 48000
alternate-sample-rate = 44100
default-sample-channels = 2
default-channel-map = front-left,front-right

default-fragments = 2
default-fragment-size-msec = 125
resample-method = speex-float-5
enable-lfe-remixing = no
high-priority = yes
nice-level = -11
realtime-scheduling = yes
realtime-priority = 9
rlimit-rtprio = 9
rlimit-rttime = -1
daemonize = no

Press ctrl+o to save changes, then press ctrl+x to quit

now type
Code:
gedit ~/.asoundrc
in terminal and paste the following code:

pcm.!default {
type plug
slave.pcm hw
}

This will bypass dmix for pulseaudio increasing sound quality by a lot. You can’t have more than one resampler because if you do it gets resampled twice and some sound quality is lost
 


Fixing HP Pavilion 15-cs3xxx B&O Audio on Kubuntu/Linux

Hardware tested: HP Pavilion Laptop 15-cs3xxx

Audio controller: Intel Ice Lake-LP Smart Sound Technology Audio Controller

Codec: Realtek ALC295

HP subsystem: 103C:86AB

Windows hardware ID: INTELAUDIO\FUNC_01&VEN_10EC&DEV_0295&SUBSYS_103C86AB&REV_1000

Summary​

The internal Bang & Olufsen / B&O speakers on an HP Pavilion 15-cs3xxx can work under Kubuntu/Linux, but the working configuration may require the Intel SOF audio path and a true cold boot.

The key discovery was that warm reboots left the audio hardware in a bad state. Rebooting from Windows into Kubuntu failed. Rebooting from Kubuntu into Kubuntu also failed. A full shutdown followed by powering on and booting directly into Kubuntu made the internal speakers work.

Symptoms​

  • Windows speaker audio worked normally.
  • Kubuntu detected the Realtek ALC295 codec.
  • Headphones worked under Linux after some configuration changes.
  • Internal speakers stayed silent during many tests.
  • PipeWire and ALSA could select the speaker output.
  • The final fix worked only after a full power-off cold boot.

Hardware identity​

Linux identified the device as an Intel Ice Lake-LP Smart Sound Technology audio controller with HP subsystem 103c:86ab.

Useful Linux check:

lspci -nnk | grep -A6 -i audio

Working driver after the fix:

Kernel driver in use: sof-audio-pci-intel-icl

Windows identified the Realtek audio device as:

INTELAUDIO\FUNC_01&VEN_10EC&DEV_0295&SUBSYS_103C86AB&REV_1000

What did not fully work​

Legacy HDA mode​

The system originally used the legacy snd_hda_intel path. Several Realtek model quirks were tested, including:

options snd-hda-intel model=alc295-hp-x360
options snd-hda-intel model=hp
options snd-hda-intel model=alc295-hp
options snd-hda-intel model=alc285-hp-amp-init

The best legacy HDA result was:

options snd-hda-intel model=alc295-hp-x360
options snd-hda-intel power_save=0 power_save_controller=N

That helped get headphone output working, but the internal speakers still did not work.

Manual pin and amp wake attempts​

Several hda-verb attempts were tested against the Realtek ALC295 speaker-related pins:

sudo hda-verb /dev/snd/hwC0D0 0x14 SET_PIN_WIDGET_CONTROL 0x40
sudo hda-verb /dev/snd/hwC0D0 0x14 SET_EAPD_BTLENABLE 0x02

sudo hda-verb /dev/snd/hwC0D0 0x17 SET_PIN_WIDGET_CONTROL 0x40
sudo hda-verb /dev/snd/hwC0D0 0x17 SET_EAPD_BTLENABLE 0x02

sudo hda-verb /dev/snd/hwC0D0 0x1b SET_PIN_WIDGET_CONTROL 0x40
sudo hda-verb /dev/snd/hwC0D0 0x1b SET_EAPD_BTLENABLE 0x02

These did not solve the internal speaker problem. The evidence suggested this was not a normal mute, volume, or basic pin-routing issue.

Working fix​

1. Enable Intel SOF / DSP mode​

Edit GRUB:

sudo nano /etc/default/grub

Find:

GRUB_CMDLINE_LINUX_DEFAULT="..."

Add this inside the quotes:

snd_intel_dspcfg.dsp_driver=3

Example:

GRUB_CMDLINE_LINUX_DEFAULT="snd_intel_dspcfg.dsp_driver=3"

If there are already boot options, append it:

GRUB_CMDLINE_LINUX_DEFAULT="existing_option_here snd_intel_dspcfg.dsp_driver=3"

You do not need to add quiet splash. If you prefer to see boot messages, leave those out.

Update GRUB:

sudo update-grub

2. Remove old forced HDA model quirks​

Edit:

sudo nano /etc/modprobe.d/alsa-base.conf

Comment out forced legacy model lines such as:

# options snd-hda-intel model=alc295-hp-x360
# options snd-hda-intel model=alc285-hp-amp-init

The power-save line can remain:

options snd-hda-intel power_save=0 power_save_controller=N

Rebuild initramfs:

sudo update-initramfs -u

3. Fully shut down and cold boot​

This was the critical step.

Do not just restart. Fully power off:

sudo poweroff

Wait several seconds. Press the power button and boot directly into Kubuntu.

After this cold boot, the internal B&O speakers worked.

Confirm the fix​

Check the active driver:

lspci -nnk | grep -A6 -i audio

Expected result:

Kernel driver in use: sof-audio-pci-intel-icl

Check sinks:

pactl list short sinks

The analog SOF sink may look like:

alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink

List ports:

pactl list sinks | grep -A40 "HiFi__hw_sofhdadsp__sink"

The useful analog ports may appear as:

[Out] Speaker
[Out] Headphones

If needed, force the speaker port:

pactl set-sink-port alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink "[Out] Speaker"

Set volume:

pactl set-sink-volume alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink 100%

Test:

speaker-test -D default -c 2 -t wav

Save the working state​

Once the speakers work, save ALSA state:

sudo alsactl store

Capture a known-good reference:

mkdir -p ~/audio-working-state

amixer -c 0 > ~/audio-working-state/amixer-working.txt
pactl list sinks > ~/audio-working-state/pactl-sinks-working.txt
pactl list cards > ~/audio-working-state/pactl-cards-working.txt
lspci -nnk | grep -A6 -i audio > ~/audio-working-state/audio-driver-working.txt
cat /proc/asound/card0/codec#0 > ~/audio-working-state/codec-working.txt

Dual-boot warning​

If Windows is installed alongside Kubuntu, disable Windows Fast Startup / hibernation.

In Windows PowerShell as Administrator:

powercfg /h off

When switching from Windows to Kubuntu, avoid Restart. Use a full shutdown:

shutdown /s /t 0

Then power on and boot Kubuntu.

Observed behavior:

Warm reboot from Windows to Kubuntu: failed
Warm reboot from Kubuntu to Kubuntu: failed
Cold boot directly into Kubuntu: worked

Final working configuration​

GRUB​

snd_intel_dspcfg.dsp_driver=3

/etc/modprobe.d/alsa-base.conf

Legacy model overrides commented out:

# options snd-hda-intel model=alc295-hp-x360
# options snd-hda-intel model=alc285-hp-amp-init

Optional power-save disable:

options snd-hda-intel power_save=0 power_save_controller=N

Boot method​

Full shutdown
Power on
Boot directly into Kubuntu

Final diagnosis​

This HP Pavilion 15-cs3xxx with Realtek ALC295 and HP subsystem 103C:86AB can run its B&O internal speakers under Kubuntu/Linux, but the working setup depends on:

  • Intel SOF driver path
  • no forced legacy HDA model override
  • cold hardware initialization
  • avoiding warm-reboot audio state problems
This was not caused by ordinary KDE volume, PipeWire routing, ALSA mixer levels, or dead speakers. The SOF driver path plus a true cold boot initialized the HP/B&O speaker amplifier path correctly.
 
Status
Not open for further replies.


Follow Linux.org

Members online

No members online now.

Top