Hp Spectre 2020 - Speakers not working, the headphones do

It is booted via UEFI, and didn’t find any option regarding legacy boot or CSM in the BIOS options…

Have you tried any other live ISO’s?

Yeah, I tried with Ubuntu 20.04 LTS, Ubuntu 20.10, Manjaro and Pop OS, but no sound at all (the speakers worked fine on windows !)

Update : I recently installed Windows in dual boot for gaming, and the speakers work out of the box on Windows, but still not on Manjaro…
Such a conundrum :woozy_face:

Hello! Please let me know if you ever manage to get this issue resolved as I too don’t really want to return to Windows and all of its problems.

I have the Spectre x360 15t-eb000, which I believe is identical to the eb0xxx model, except it came with the older HP Pen.

On a different note, did you ever manage to find good tools to rotate the screen automatically and configure trackpad gestures? I’m impressed with how much worked out of the box, but there’s a couple things in that regard which I still need to find a way to set up.

Thanks for your help!

I just noticed that both these Spectre models have Nvidia options, and want to clarify that Nvidia cards (especially with proprietary driver) are often accompanied with audio problems. I personally have recurring audio problems on the one desktop with Nvidia card, and no issues anywhere else.

Since it seems to be mostly related to the proprietary Nvidia driver, you should check out the open-source Nouveau driver, although this may reduce gaming performance. You’ll have to pick a compromise; soundless gaming with good performance, or great-sounding gaming with slightly reduced performance :disappointed:

In the end, I’ve found it pays dividends to avoid Nvidia graphics like the plague on any device that is intended to primarily run Linux.

Thanks for the suggestion! I just tried installing the open source drivers for this device through the KDE system settings, letting it auto-install the open source driver. As you can see, the nvidia driver is not installed, but the graphics switching ones still are. After a reboot, there is no change with the audio situation: Headphones still work but the speakers are not producing sound. Do you think there’s anything else I can do to investigate the nVidia path, or is it not feasible?

Thanks again for your help.

I’m sorry, but I’m not familiar with KDE or the GUI approach, I generally maintain my system with pacman/yay. From that screenshot it looks like you’re using the proprietary driver for Nvidia Optimus.

I’ve never used that, and I don’t know if this is related to your audio problem, but I guess you could try using the open-source drivers. See PRIME on the Archwiki.

Other than that I have no specific ideas. I suggest googling your system model along with the problem description, or to replace the model in the query with a more general criterium, like e.g. Nvidia Optimus.

If your audio codec is working on Windows, you might be able to use this to get the values for the HDA verbs
GitHub - Conmanx360/QemuHDADump: Dumps HDA verbs from the CORB buffer of a virtual machine. Useful for reverse engineering drivers on different operating systems.
The data from a working OS and the alsa-info data could then be posted to the kernel developers at bugzilla.org to create a kernel patch


Your ALSA data is showing a modprobe option added to system

!!Modprobe options (Sound related)

snd_hda_intel: model=alc285-hp-x360

But there is no model option with that name in the kernel
So I suggest you find the file where you added this in /etc/modprobe.d/ and remove it

(There is a model option alc295-hp-x360 but that does not appear to relate to your hardware - ALC295_FIXUP_HP_X360 identifier - Linux source code (v5.10.15) - Bootlin)

I was hoping @auguy would respond since he mentioned that he ended up reinstalling windows, but alas. I’d be willing to try out your recommendation and deal with fixing grub and whatnot, but I’m a bit uncertain so if you’ll bear with me I want to confirm what you’re suggesting:

  1. Reinstall Windows and deal with whatever issues it causes booting linux

  2. Within Windows, given sound is working upon install, install Qemu in the manner described on the github page then run that program to get the data from a virtualized linux machine (running manjaro?). Said linux machine would have to have functioning sound

  3. Submit the data to a bug-tracking site for the kernel devs to eventually patch in

  4. Keep track of submission to see if it ever gets resolved, then upgrade to whichever kernel version contains the patch

  5. Have functional speakers again

Is this right? I’m still quite new to linux so my knowledge of its backend is still limited.

In regards to kernels, I tried 5.11 but it also did not solve the issue and actually broke brightness adjustment. 5.9 is still functional.

Thank you for your help.

I am not sure about QemuHDADump because I have not had the chance to use it myself, but I have seen it used in bugzilla reports and it has been really effective

This a bit tricky and not something I would be suggesting for most new users

From what I can see from the Instructions this is intended to be run in a Windows VM inside a Linux OS
The Linux OS needs extra boot options for the VM to access the audio card
From OP data the boot options would be pci-stub.ids=8086:06c8 intel_iommu=on
And then setup the Windows VM
then run the script to dump data from the VM

I see, so it’s passing through the PC’s audio hardware into the VM while still running in Linux. I guess that’s easier than formatting my drive and trying to get Windows installed again on hardware. The instructions seem pretty clear so I could probably try out the process, it just might need to be a weekend project.

If I do end up going through with this, what would I be submitting to bugzilla? A link to this thread and my VM dump and Alsa info from my current linux installation?


Before making this reply I also tried to do the pin setting with hda-verb and it unfortunately did not work, same as what happened to auguy.

OH MY GOD I GOT IT WORKING!!!

Turns out the GPIO pin setting from before does work, it just takes an unknown number of tries. I had run it a couple times and restarted pulseaudio but got nothing. HOWEVER! I had downloaded a random mp3 and had it looping in VLC. While hunting google for more solutions I kept seeing that command mentioned over and over again, so I ran it one more time and lo and behold it worked. Granted, it’s only the bottom two speakers, and from what I’ve read, you need to do it each time you boot, however sound was coming out so I see this as an absolute victory. I’ll have to do more digging into making the other speakers work and getting it to automatically run at boot.


For others with this issue scouring the net:
Install alsa-tools (pacman -Syu alsa-tools)
Run the commands from pobrn’s reply (you can just copy the whole block into your terminal and it’ll work)

sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x01
sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x01
sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01
sudo hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x00

Restart pulseaudio, either with pulseaudio -k or with systemctl --user restart pulseaudio.service (I had done both at different times)
Just keep running the hda-verb command chunk until it works. It’s easiest to have something looping in the background so you can immediately hear when it starts. I didn’t have to restart pulseaudio when the sound finally started working so it may not even be necessary after the first time. You may just have to experiment, but if you’re persistent it should eventually work.


Edit: This fix stops working upon waking the PC from sleep, where you then need to run the commands again. It’s not ideal, but still better than nothing.

Edit 2: It also stops working if there is no audio playing for a few seconds. On windows I had an issue with there being a couple second pause when starting to play audio after a period of silence. I’m assuming its a similar situation here where the audio drivers go to sleep. Perhaps there’s a way to permanently set the pins with hdajackretask, but I’m not sure how I’d go about that. I’ve also found that upon running the command audio immediately starts being played, without having to restart pulseaudio.

Oh my God you’re right it works.
Man I do not know how I could thank you enough, you’ve actually changed my life (I haven’t gone back to windows, just installed it in dualboot to see if I still had sound).

And you’re right, sound goes off again when ther’es nothing playing for a while and I do have to run the command again, same thing when restarting the computer but oh my God itis already such a huge change.
I’ll also try to dig that on my side and I’ll let you know !

1 Like

I’m really happy I was able to help!

I was looking into this bugzilla thread from a couple years ago where they were trying to make both speakers work on 13-inch spectres and theoretically patch it into the kernel. It’s a lot of pretty dense technical stuff, and I only read around 150 comments in, but perhaps there’s some sort of solution in here: https://bugzilla.kernel.org/show_bug.cgi?id=189331

It seemed like they were having luck setting pin 0x17 with something called hdaanalyzer, which I don’t think ships in alsa-tools. However, pin 0x17 shows as an active pin in hdajacketretask, so eventually I want to experiment with setting it to something else. I just haven’t found the time yet. Feel free to skim the thread and see if you can glean any useful information out of there.

As for the sleep after inactivity, I suspect it has something to do with either ALSA or pulseaudio automatically putting the audio codec to sleep after a time, probably for power savings. Perhaps a good path to go down would be to look into disabling this functionality. I found this thread near the top of a google search, maybe it will be of use:

When I get a chance again I’d like to do some experimentation with this stuff and see if I can get a more long-lasting solution.


On a similar note, do the speakers on your spectre buzz at higher volumes? It seemed like on a previous RMA’d spectre and my current replacement, windows noises at too high of a level would almost sound as if they were peaking the speakers. I noticed this again after using the speaker fix on an audio call from Linux. I looked online and it seemed as if other people had this issue. Perhaps I just need to stick to lower volumes.

Hi,
First of all thanks for the quick and complete answer :slight_smile:
Concerning the bugzilla thread, I’ll peak through it but I’m not that good so I might be a little slow. I’ve played a bit with the 0x17 today with a mp3 looping in the background and the speakers on (as you showed me to :wink: ) but had no luck finding a setup which would work.
As for the second link, it seems to work fine and sound stays on !!
Thank again,
Auguste

And btw, I do not seem to have buzzing issues with higher volumes !