诊断

诊断

我的输出设备中出现了虚拟输出,没有声音。我已经阅读了此网站上的很多问题,但没有一个解决方案对我有效。

诊断

lspci -nnk | grep -A3

06:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:1637]
        Subsystem: Lenovo Device [17aa:5082]
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
--
06:00.5 Multimedia controller [0480]: Advanced Micro Devices, Inc. [AMD] Raven/Raven2/FireFlight/Renoir Audio Processor [1022:15e2] (rev 01)
        Subsystem: Lenovo Raven/Raven2/FireFlight/Renoir Audio Processor [17aa:5084]
        Kernel driver in use: snd_rn_pci_acp3x
        Kernel modules: snd_pci_acp3x, snd_rn_pci_acp3x
06:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) HD Audio Controller [1022:15e3]
        Subsystem: Lenovo Family 17h (Models 10h-1fh) HD Audio Controller [17aa:5082]
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Generic [HD-Audio Generic], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Generic [HD-Audio Generic], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 0: ALC257 Analog [ALC257 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

fuser -v /dev/snd/*

                     USER        PID ACCESS COMMAND
/dev/snd/controlC0:  jonas      1176 F.... pulseaudio
/dev/snd/controlC2:  jonas      1176 F.... pulseaudio

find /lib/modules | grep snd | grep hda | grep intel

/lib/modules/5.4.0-52-generic/kernel/sound/soc/sof/intel/snd-sof-intel-hda.ko
/lib/modules/5.4.0-52-generic/kernel/sound/soc/sof/intel/snd-sof-intel-hda-common.ko
/lib/modules/5.4.0-52-generic/kernel/sound/soc/intel/boards/snd-soc-skl_hda_dsp.ko
/lib/modules/5.4.0-52-generic/kernel/sound/pci/hda/snd-hda-intel.ko
/lib/modules/5.4.0-52-generic/kernel/sound/hda/snd-intel-dspcfg.ko
/lib/modules/5.8.0-25-generic/kernel/sound/soc/sof/intel/snd-sof-intel-hda.ko
/lib/modules/5.8.0-25-generic/kernel/sound/soc/sof/intel/snd-sof-intel-hda-common.ko
/lib/modules/5.8.0-25-generic/kernel/sound/soc/intel/boards/snd-soc-skl_hda_dsp.ko
/lib/modules/5.8.0-25-generic/kernel/sound/pci/hda/snd-hda-intel.ko
/lib/modules/5.8.0-25-generic/kernel/sound/hda/snd-intel-dspcfg.ko

以下是我尝试过的:

1.pulseaudio -k && sudo alsa force-reload

如果我经常发出此命令(大约 3-7 次),最终我的扬声器会作为输出设备出现,并且声音可以正常工作。但是,重启后,这不再起作用。

我怎样才能使它保持一致?

该命令的典型输出如下

Unloading ALSA sound driver modules: snd-soc-dmic snd-acp3x-rn snd-acp3x-pdm-dma snd-soc-core snd-compress snd-hda-codec-hdmi snd-pcm-dmaengine snd-hda-codec-realtek snd-hda-codec-generic snd-hda-intel snd-seq-midi snd-seq-midi-event snd-intel-dspcfg snd-hda-codec snd-rawmidi snd-hda-core snd-seq snd-hwdep snd-pcm snd-seq-device snd-rn-pci-acp3x snd-pci-acp3x snd-timer (failed: modules still loaded: snd-soc-dmic snd-soc-core snd-compress snd-pcm-dmaengine snd-hda-codec-realtek snd-hda-codec-generic snd-hda-codec snd-hda-core snd-hwdep snd-pcm snd-timer).
Loading ALSA sound driver modules: snd-soc-dmic snd-acp3x-rn snd-acp3x-pdm-dma snd-soc-core snd-compress snd-hda-codec-hdmi snd-pcm-dmaengine snd-hda-codec-realtek snd-hda-codec-generic snd-hda-intel snd-seq-midi snd-seq-midi-event snd-intel-dspcfg snd-hda-codec snd-rawmidi snd-hda-core snd-seq snd-hwdep snd-pcm snd-seq-device snd-rn-pci-acp3x snd-pci-acp3x snd-timer.

有时,该failed: modules still loaded部分不会出现。但我没有发现任何不同的结果。

这稍微变成aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Generic [HD-Audio Generic], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Generic [HD-Audio Generic], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 0: ALC257 Analog [ALC257 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

所以card 1现在是Subdevices: 0/1而不是Subdevices: 1/1

2. 添加行/etc/modprobe.d/alsa-base

根据解决方案这个问题我添加了行

options snd-hda-intel model=generic

改为/etc/modprobe.d/alsa-base。这实际上用 替换了Dummy outputHD-Audio Generic Digital Stereo (HDMI)我猜这会启用 HDMI 音频输出?我无法测试这一点,但扬声器不工作。

这改变了输出aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: Generic Digital [Generic Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 0: ALC257 Analog [ALC257 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

另外两条拟建线路

options snd-hda-intel dmic_detect=0
blacklist snd_soc_skl

没有产生我所认识到的任何效果。

3.胆怯

有些人在使用该程序时遇到了问题timidity,但我的系统上没有安装该程序。

我现在完全不知道该怎么办。如能得到任何帮助我将不胜感激 :)

答案1

有相同或类似的问题。sudo apt-get install --reinstall alsa-base pulseaudio或之后可以正常工作pactl load-module module-detect。 但每次重启后问题都会再次出现。

还看到有人建议/etc/pulse/default.pa通过取消注释来编辑:

load-module module-alsa-sink
load-module module-alsa-source device=hw:1,0 <-- change this to 0,0

但对我而言没用。

相关内容