HP 15z-fc000 热启动后无声音

HP 15z-fc000 热启动后无声音

我有一台 HP 15z-fc000,在热启动(即执行“重启”后)后,其内置扬声器无法播放声音。冷启动(即执行“关机”后,等待其完全关闭,然后使用电源按钮将其重新打开)后,它工作正常。当它不工作时,我看到的输出设备名称为“虚拟输出”。这是lspci -vvvnn当它损坏时,热启动时的相关设备:

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

在冷启动工作时,它有DisINTx+而不是DisINTx-MSI: Enable+而不是MSI: Enable-Address: 00000000fee00000而不是Address: 0000000000000000

当它坏了的时候,热启动时我根本看不到这个设备aplay -l,但是当它工作的时候,冷启动时它就出现在这里,就像这样:

card 1: Generic_1 [HD-Audio Generic], device 0: ALC236 Analog [ALC236 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

我尝试过 Ubuntu 22.04(全新安装,不是从旧版本升级)和 23.04(从实时 USB 升级),但都无法正常工作。如果有解决方案可以解决其中一个问题,我很乐意使用其中任何一个。以下是我尝试过的其他一些方法及其结果:

  • 添加snd-hda-intel.model=generic到内核命令行,或附加options snd-hda-intel model=generic/etc/modprobe.d/alsa-base.conf- 将我看到的输出设备更改为“HD-Audio 通用数字立体声 (HDMI)”,但我仍然听不到通过它播放的任何内容。
  • 添加snd-hda-intel.dmic_detect=0到内核命令行,或附加options snd-hda-intel dmic_detect=0/etc/modprobe.d/alsa-base.conf- 没有明显的变化
  • 同时进行上述两项操作 - 除了第一种操作单独进行的操作外,没有明显的变化
  • 从以下位置引导 6.3.0 主线内核https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.3/amd64/- 没有明显变化
  • pulseaudio --kill其次是pulseaudio --start:PulseAudio 再也没有恢复,我甚至无法再看到声音偏好设置,直到我重新启动
  • sudo touch /usr/share/pipewire/media-session.d/with-pulseaudio其次是systemctl --user restart pipewire-session-manager:没有明显变化

我没什么主意了。我下一步该尝试/做什么?

答案1

我编写了一组“标准”命令,它帮助许多人诊断(然后解决)音频问题。特别是,如果您看到“虚拟输出”。

请检查Ubuntu 20.04 重启后只有“虚拟输出”(声音)-驱动程序/模块损坏 并发布您发现的任何结果。

答案2

同一台笔记本电脑也存在同样的问题。第一次可以正常工作,但重启后就不行了(虚拟输出)。我还发现 Ubuntu 21.10 仍然可以正常工作美好的至少在这方面是这样的(即,你可以重启而不会出现任何问题)。但是,Ubuntu 22.04(第一个版本)与 Linux 5.15 却不是无法正常工作。如果我没记错的话,Ubuntu 21.10 仍然使用 Linux 5.13。这意味着该问题很可能是在 5.13 和 5.15 之间的某个驱动程序中引入的。

我注意到的另一件事是声音设备标识符的枚举方式不同:

  1. 在 Ubuntu 22.04+ 中,我们有:

猫/系统/类/声音/hwC1D0/子系统_id:0xaa0100

猫/系统/类/声音/hwC2D0/子系统_id:0x103c8b30

  1. 在 Ubuntu 21.10 中,我们有:

猫/系统/类/声音/hwC0D0/子系统_id:0xaa0100

猫/系统/类/声音/hwC1D0/子系统_id:0x103c8b30

注意,在 Ubuntu 21.10 中它从 hwC0D0 启动,但在 Ubuntu 22.04+ 中它从 hwC1D0 启动。此外,在完全重启后,hwC2D0消失

当驱动程序卸载时,编解码器(hwC2D0)是否会以某种方式关闭?

答案3

在收到来自鲁斯兰,也就是说,这在以前的 Ubuntu 版本中工作正常,我设法确认这是由提交导致的内核回归5aec98913095ed3b4424ed6c5fdeb6964e9734da。我报告说https://bugzilla.kernel.org/show_bug.cgi?id=217440并且目前正在通过构建自定义内核并恢复该更改来解决这个问题。Regzbot 链接:https://linux-regtracking.leemhuis.info/regzbot/regression/bugzilla.kernel.org/217440/

相关内容