我的 3.5 毫米声音插孔突然停止工作。我不知道除了重新启动计算机之外我还做了什么。 HDMI 音频(和视频)输出仍然可以正常工作。即使我的耳机插入 3.5 毫米端口,Gnome 声音设置中也仅显示 HDMI 输出。我还尝试插入一对扬声器,以确保耳机不是问题。
我的内核版本:
Balancar# uname -a
Linux Balancar 5.8.0-2-amd64 #1 SMP Debian 5.8.10-1 (2020-09-19) x86_64 GNU/Linux
我尝试了我碰巧安装的三个不同的内核版本。对于 5.7.0-3,结果是相同的,而对于 5.8.0-1,有趣的是,我什至无法显示 HDMI 输出。
访问alsamixer
和取消静音所有输出不起作用(如此处类似问题中所建议的)。我在这里看到两个声卡,Realtek ALC892(我主板上的那个)和 Nvidia GPU 71 HDMI/DP(我显卡上用于 HDMI 输出的那个),以及所有声音输出,但取消静音或更改音量级别不会使它们出现在声音设置中。
示例pacmd
输出:
Balancar# pacmd list-cards
No PulseAudio daemon running, or not running as session daemon.
更新:pacmd
以用户身份而不是 root 身份运行会给我一些输出。list-cards
正确列出了两个声卡,其中list-sinks
仅列出了 HDMI 输出。
lspci
输出:
Balancar# lspci|grep Audio
00:1f.3 Audio device: Intel Corporation 100 Series/C230 Series Chipset Family HD Audio Controller (rev 31)
01:00.1 Audio device: NVIDIA Corporation GM204 High Definition Audio Controller (rev a1)
更新:
dmesg
这是@dirkt 的答案中建议的一些输出。我不确定我在寻找什么,所以我尝试查找一些看起来相关的关键字。我在这里找不到任何表明存在问题的内容:
Balancar# dmesg|grep Audio
[ 0.185862] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
Balancar# dmesg|grep audio
[ 22.873042] snd_hda_intel 0000:01:00.1: Handle vga_switcheroo audio client
[ 23.046498] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC892: line_outs=4 (0x14/0x15/0x16/0x17/0x0) type:line
[ 23.046573] snd_hda_codec_realtek hdaudioC0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 23.046651] snd_hda_codec_realtek hdaudioC0D0: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[ 23.046722] snd_hda_codec_realtek hdaudioC0D0: mono: mono_out=0x0
[ 23.046789] snd_hda_codec_realtek hdaudioC0D0: inputs:
[ 23.046852] snd_hda_codec_realtek hdaudioC0D0: Front Mic=0x19
[ 23.046915] snd_hda_codec_realtek hdaudioC0D0: Rear Mic=0x18
[ 23.046978] snd_hda_codec_realtek hdaudioC0D0: Line=0x1a
Balancar# dmesg|grep realtek
[ 23.046498] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC892: line_outs=4 (0x14/0x15/0x16/0x17/0x0) type:line
[ 23.046573] snd_hda_codec_realtek hdaudioC0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 23.046651] snd_hda_codec_realtek hdaudioC0D0: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[ 23.046722] snd_hda_codec_realtek hdaudioC0D0: mono: mono_out=0x0
[ 23.046789] snd_hda_codec_realtek hdaudioC0D0: inputs:
[ 23.046852] snd_hda_codec_realtek hdaudioC0D0: Front Mic=0x19
[ 23.046915] snd_hda_codec_realtek hdaudioC0D0: Rear Mic=0x18
[ 23.046978] snd_hda_codec_realtek hdaudioC0D0: Line=0x1a
Balancar# dmesg|grep PCH
[ 0.246713] acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug SHPCHotplug PME AER PCIeCapability LTR]
[ 0.253513] pci 0000:00:1c.0: Intel SPT PCH root port ACS workaround enabled
[ 0.253935] pci 0000:00:1d.0: Intel SPT PCH root port ACS workaround enabled
[ 22.799586] iTCO_wdt: Found a Intel PCH TCO device (Version=4, TCOBASE=0x0400)
[ 23.094955] input: HDA Intel PCH Front Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input25
[ 23.095081] input: HDA Intel PCH Rear Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input26
[ 23.095983] input: HDA Intel PCH Line as /devices/pci0000:00/0000:00:1f.3/sound/card0/input27
[ 23.096086] input: HDA Intel PCH Line Out Front as /devices/pci0000:00/0000:00:1f.3/sound/card0/input28
[ 23.097163] input: HDA Intel PCH Line Out Surround as /devices/pci0000:00/0000:00:1f.3/sound/card0/input29
[ 23.097264] input: HDA Intel PCH Line Out CLFE as /devices/pci0000:00/0000:00:1f.3/sound/card0/input30
[ 23.097359] input: HDA Intel PCH Line Out Side as /devices/pci0000:00/0000:00:1f.3/sound/card0/input31
[ 23.100062] input: HDA Intel PCH Front Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input32
aplay
这是和命令的输出arecord
。我看不出有什么异常:
Balancar# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 11: HDMI 5 [HDMI 5]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 12: HDMI 6 [HDMI 6]
Subdevices: 1/1
Subdevice #0: subdevice #0
Balancar# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: ALC892 Alt Analog [ALC892 Alt Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
答案1
部分答案,快速概述声音的工作原理:
ALSA 由内核驱动程序、库和工具组成。内核驱动程序获取硬件。启动后查看dmesg
一下它们做了什么,以及是否存在问题。
aplay -l
您可以使用和列出 ALSA 级别上的可用输出设备arecord -l
。看看您的 Intel HDA 声音硬件是否在其中。
如果没有,则 ALSA 驱动程序级别出现问题,因此请阅读dmesg
以找出问题所在。
如果是,许多电脑会在耳机/扬声器之间切换。你的也可以这样做,也可以不这样做。仔细查看alsamixer
或amixer
找出它不切换的原因。
此外,在大多数现代发行版上,Pulseaudio 都是默认运行的。 Pulseaudio 比 ALSA 高一级,提供设备、程序等之间的声音传输。如果您不是故意禁用它,请弄清楚您做了什么(卸载一些软件包?)使其消失,然后撤消它。
好的,HDA 卡检测正常,并且耳机具有正确的自动配置信息。这意味着它可能是混音器设置。
再次关闭 Pulseaudio ( pulseaudio --kill
)。我们只想在 ALSA 级别进行调试,以使事情变得更简单。
找到一些 WAV 文件,尝试类似的操作
aplay -D plughw:CARD=PCH xxx.wav
开始alsamixer
,选择带有 的卡F6
,确保查看所有设置(左/右光标键),并查看是否需要取消静音或切换到耳机。
如果这不起作用,请尝试
amixer -D hw:0 info
确保它是 ALC892(或更改 中的数字hw:0
),然后执行
amixer -D hw:0 contents
并将输出上传到pastebin等中,从问题链接到它,这样我就可以看一下。
还要弄清楚为什么上次 Pulseaudio 没有运行
No PulseAudio daemon running, or not running as session daemon.
以及为什么这次会运行。