I have an HP 15z-fc000 that won't play sound from its built-in speakers after a warm boot (i.e., after doing "reboot"). It works fine after a cold boot (i.e., after doing "shutdown", waiting for it to turn completely off, and then turning it back on with the power button). When it's not working, the name of the output device I see is "Dummy output". Here's the relevant device from lspci -vvvnn
from a warm boot when it's broken:
03:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) HD Audio Controller [1022:15e3]
Subsystem: Hewlett-Packard Company Family 17h (Models 10h-1fh) HD Audio Controller [103c:8b2f]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin C routed to IRQ 54
IOMMU group: 17
Region 0: Memory at fccc0000 (32-bit, non-prefetchable) [size=32K]
Capabilities: [48] Vendor Specific Information: Len=08 <?>
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [64] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0.000W
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
MaxPayload 256 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 16GT/s (ok), Width x16 (ok)
TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR-
10BitTagComp+ 10BitTagReq- OBFF Not Supported, ExtFmt+ EETLPPrefix+, MaxEETLPPrefixes 1
EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
FRS- TPHComp- ExtTPHComp-
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- OBFF Disabled,
AtomicOpsCtl: ReqEn-
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1-
EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
Retimer- 2Retimers- CrosslinkRes: unsupported
Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
Capabilities: [2a0 v1] Access Control Services
ACSCap: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
On cold boots when it's working, it has DisINTx+
instead of DisINTx-
, MSI: Enable+
instead of MSI: Enable-
, and Address: 00000000fee00000
instead of Address: 0000000000000000
.
On warm boots when it's broken, I don't see this device in aplay -l
at all, but on cold boots when it's working, it appears there like this:
card 1: Generic_1 [HD-Audio Generic], device 0: ALC236 Analog [ALC236 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
I've tried on both Ubuntu 22.04 (a clean installation, not an upgrade from an older version) and 23.04 (from a live USB), and neither one works. I'm happy to use either, should there be a solution that works on one but not the other. Here's some other things I tried, and the results:
- Adding
snd-hda-intel.model=generic
to the kernel command line, or appending options snd-hda-intel model=generic
to /etc/modprobe.d/alsa-base.conf
- Changes the output device I see to "HD-Audio Generic Digital Stereo (HDMI)", but I still can't hear anything played through it.
- Adding
snd-hda-intel.dmic_detect=0
to the kernel command line, or appending options snd-hda-intel dmic_detect=0
to /etc/modprobe.d/alsa-base.conf
- No noticeable change
- Both of the above at the same time - No noticeable change beyond what the first one did alone
- Booting the 6.3.0 mainline kernel from https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.3/amd64/ - No noticeable change
pulseaudio --kill
followed by pulseaudio --start
: PulseAudio never comes back up and I can't even see sound preferences anymore until I reboot
sudo touch /usr/share/pipewire/media-session.d/with-pulseaudio
followed by systemctl --user restart pipewire-session-manager
: No noticeable change
I'm out of ideas. What should I try/do next?