音频无法正常工作

音频无法正常工作

我正在运行 Debian 11。我无法同时使用耳机麦克风和音频。我在执行命令时发现了一些错误initframs(与此无关),并且我发现我缺少一些 Realtek 固件(这是我的板载主板声卡)。所以,然后我使用安装了 Realtek 固件sudo apt-get install firmware-realtek,重新启动后,我可以看到另外两个选项。我使用Stereo Duplex它并一直工作,直到我重新启动我的电脑,现在我回到了初始部分。我没有这些选项,并且软件包已安装。我该怎么办?

编辑:

这是以下的输出:sudo dmesg -H |grep snd_

[  +0.000007] snd_hda_intel 0000:26:00.1: Handle vga_switcheroo audio client
[  +0.000078] snd_hda_intel 0000:28:00.4: enabling device (0000 -> 0002)
[  +0.003414] snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC892: line_outs=4 (0x14/0x15/0x16/0x17/0x0) type:line
[  +0.000002] snd_hda_codec_realtek hdaudioC1D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[  +0.000001] snd_hda_codec_realtek hdaudioC1D0:    hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[  +0.000001] snd_hda_codec_realtek hdaudioC1D0:    mono: mono_out=0x0
[  +0.000001] snd_hda_codec_realtek hdaudioC1D0:    inputs:
[  +0.000001] snd_hda_codec_realtek hdaudioC1D0:      Front Mic=0x19
[  +0.000001] snd_hda_codec_realtek hdaudioC1D0:      Rear Mic=0x18
[  +0.000001] snd_hda_codec_realtek hdaudioC1D0:      Line=0x1a

我也通过运行得到相同的输出:journalctl -xb |grep snd

我还 grep 编辑了这个,以防有帮助journalctl -xb |grep Audio

Mar 03 11:26:26 Deb-PC kernel: ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
Mar 03 11:26:26 Deb-PC kernel: input: HD-Audio Generic Front Mic as /devices/pci0000:00/0000:00:08.1/0000:28:00.4/sound/card1/input30
Mar 03 11:26:26 Deb-PC kernel: input: HD-Audio Generic Rear Mic as /devices/pci0000:00/0000:00:08.1/0000:28:00.4/sound/card1/input31
Mar 03 11:26:26 Deb-PC kernel: input: HD-Audio Generic Line as /devices/pci0000:00/0000:00:08.1/0000:28:00.4/sound/card1/input32
Mar 03 11:26:26 Deb-PC kernel: input: HD-Audio Generic Line Out Front as /devices/pci0000:00/0000:00:08.1/0000:28:00.4/sound/card1/input33
Mar 03 11:26:26 Deb-PC kernel: input: HD-Audio Generic Line Out Surround as /devices/pci0000:00/0000:00:08.1/0000:28:00.4/sound/card1/input34
Mar 03 11:26:26 Deb-PC kernel: input: HD-Audio Generic Line Out CLFE as /devices/pci0000:00/0000:00:08.1/0000:28:00.4/sound/card1/input35
Mar 03 11:26:26 Deb-PC kernel: input: HD-Audio Generic Line Out Side as /devices/pci0000:00/0000:00:08.1/0000:28:00.4/sound/card1/input36
Mar 03 11:26:26 Deb-PC kernel: input: HD-Audio Generic Front Headphone as /devices/pci0000:00/0000:00:08.1/0000:28:00.4/sound/card1/input37
Mar 03 11:26:28 Deb-PC /usr/libexec/gdm-x-session[909]: (II) config/udev: Adding input device HD-Audio Generic Front Mic (/dev/input/event19)
Mar 03 11:26:28 Deb-PC /usr/libexec/gdm-x-session[909]: (II) config/udev: Adding input device HD-Audio Generic Rear Mic (/dev/input/event20)
Mar 03 11:26:28 Deb-PC /usr/libexec/gdm-x-session[909]: (II) config/udev: Adding input device HD-Audio Generic Line (/dev/input/event21)
Mar 03 11:26:28 Deb-PC /usr/libexec/gdm-x-session[909]: (II) config/udev: Adding input device HD-Audio Generic Line Out Front (/dev/input/event22)
Mar 03 11:26:28 Deb-PC /usr/libexec/gdm-x-session[909]: (II) config/udev: Adding input device HD-Audio Generic Line Out Surround (/dev/input/event23)
Mar 03 11:26:28 Deb-PC /usr/libexec/gdm-x-session[909]: (II) config/udev: Adding input device HD-Audio Generic Line Out CLFE (/dev/input/event24)
Mar 03 11:26:28 Deb-PC /usr/libexec/gdm-x-session[909]: (II) config/udev: Adding input device HD-Audio Generic Line Out Side (/dev/input/event25)
Mar 03 11:26:28 Deb-PC /usr/libexec/gdm-x-session[909]: (II) config/udev: Adding input device HD-Audio Generic Front Headphone (/dev/input/event26)
Mar 03 11:26:39 Deb-PC /usr/libexec/gdm-x-session[1425]: (II) config/udev: Adding input device HD-Audio Generic Front Mic (/dev/input/event19)
Mar 03 11:26:39 Deb-PC /usr/libexec/gdm-x-session[1425]: (II) config/udev: Adding input device HD-Audio Generic Rear Mic (/dev/input/event20)
Mar 03 11:26:39 Deb-PC /usr/libexec/gdm-x-session[1425]: (II) config/udev: Adding input device HD-Audio Generic Line (/dev/input/event21)
Mar 03 11:26:39 Deb-PC /usr/libexec/gdm-x-session[1425]: (II) config/udev: Adding input device HD-Audio Generic Line Out Front (/dev/input/event22)
Mar 03 11:26:39 Deb-PC /usr/libexec/gdm-x-session[1425]: (II) config/udev: Adding input device HD-Audio Generic Line Out Surround (/dev/input/event23)
Mar 03 11:26:39 Deb-PC /usr/libexec/gdm-x-session[1425]: (II) config/udev: Adding input device HD-Audio Generic Line Out CLFE (/dev/input/event24)
Mar 03 11:26:39 Deb-PC /usr/libexec/gdm-x-session[1425]: (II) config/udev: Adding input device HD-Audio Generic Line Out Side (/dev/input/event25)
Mar 03 11:26:39 Deb-PC /usr/libexec/gdm-x-session[1425]: (II) config/udev: Adding input device HD-Audio Generic Front Headphone (/dev/input/event26)

答案1

我终于“解决”了这个问题。正如电信公司所建议的,这可能是 PulseAudio 问题(可能是设备尚未初始化)。所以,关于修复它的部分很简单。我注意到了这一点,systemctl --user restart pulseaudio.service或者pulseaudio -k正在暂时解决我的问题,所以我只是添加pulseaudio -k~/.profile.也systemctl --user restart pulseaudio.service应该有效(未经测试)。

注意:添加crontab(即使是特定于用户的)将不起作用。它应该在用户登录后立即执行~/.profile,否则登录后音频设备将再次损坏。如果有人遇到这个问题,希望这会有所帮助!

答案2

Google 发现了一些有关 Realtek ALC892 的讨论及其类似问题。

这个视频收集了很多信息: https://www.youtube.com/watch?v=68jOe2rh6jE

基于此,尝试运行alsamixer -c 0.它应该会显示基于终端的混音器显示。在左上角,它显示当前正在调整哪个声音设备:如果它显示除 以外的任何内容Card: HD-Audio Generic,请按F6选择另一个声音设备,或按Esc退出并增加选项后的数字-c以定位另一个声音设备。

当您看到 时Card: HD-Audio Generic,请使用箭头键在各个项目之间移动:除非您的窗口非常宽,否则当您触及边缘时,显示屏可能会向左/向右滚动。找到名为“自动静音”和“环回”的设置,并确保它们都是Disabled(使用向上/向下箭头切换设置)。

每当有东西插入耳机连接时,自动静音通常会使扬声器静音。关闭自动静音将允许耳机和扬声器同时工作。但如果自动静音功能已将扬声器通道静音,您可能需要手动取消静音,方法是使用左/右光标键移动到该通道,然后按M切换静音状态。请注意,您需要在Playback视图(= 默认视图,键)处取消耳机/扬声器静音,但在视图(键)F3处取消麦克风静音。CaptureF4

您还可以运行hdajacksensetest(在包中alsa-tools)并查看结果是否合理。如果它显示present = No您知道实际已连接的音频插孔,则系统 BIOS 中的插孔检测映射可能不正确。然后,您可以使用hdajackretask(在包中alsa-tools-gui)覆盖 BIOS 提供的插孔检测映射。如果您需要这样做,您应该尝试更新系统固件(BIOS/UEFI),看看是否能够持续解决问题。如果没有,那么您应该向 Linux 声音驱动程序开发人员报告您的系统/主板型号以及hdajackretask需要使用的选项,以便他们可以使未来的内核版本自动应用更正。

对于某些 Realtek 芯片型号,司机支持内核模块的大量model=<something>选项snd_hda_intel。但对于 ALC892,唯一支持的选项(至少在 Debian 11 的 5.10 内核中)似乎是model=asrock-mobo,得到华擎 B150M 自动激活。如果您认为您的主板可能类似于 ASRock B150M(即由 Asus/ASRock 设计,和/或使用 Intel B150 芯片组),您可以尝试该模块选项。


pulseaudio -k如果可以使用或来解决问题systemctl --user restart pulseaudio.service,那么问题似乎只是 PulseAudio 守护进程在所有声音设备准备就绪之前启动。在这种情况下,将音频设备的显式依赖项添加到 PulseAudio 用户服务可能会有所帮助。

首先,您需要找出音频设备的 systemd 设备单元名称。该命令应该输出它们:

systemctl --user | awk '/sound-/{ print $1; }'

例如,在我的系统上,它将输出三个(长)设备单元名称,每行一个:

sys-devices-pci0000:00-0000:00:01.0-0000:01:00.1-sound-card1-controlC1.device
sys-devices-pci0000:00-0000:00:14.0-usb1-1\x2d4-1\x2d4.4-1\x2d4.4.1-1\x2d4.4.1:1.2-sound-card2-controlC2.device
sys-devices-pci0000:00-0000:00:1f.3-sound-card0-controlC0.device

为了测试,我添加了一个包含以下内容的~/.config/systemd/user/pulseaudio.service.d/override.conf文件(首先创建目录):pulseaudio.service.d

[Unit]
Wants=sys-devices-pci0000:00-0000:00:01.0-0000:01:00.1-sound-card1-controlC1.device
Wants=sys-devices-pci0000:00-0000:00:14.0-usb1-1\x2d4-1\x2d4.4-1\x2d4.4.1-1\x2d4.4.1:1.2-sound-card2-controlC2.device
Wants=sys-devices-pci0000:00-0000:00:1f.3-sound-card0-controlC0.device
After=sys-devices-pci0000:00-0000:00:01.0-0000:01:00.1-sound-card1-controlC1.device
After=sys-devices-pci0000:00-0000:00:14.0-usb1-1\x2d4-1\x2d4.4-1\x2d4.4.1-1\x2d4.4.1:1.2-sound-card2-controlC2.device
After=sys-devices-pci0000:00-0000:00:1f.3-sound-card0-controlC0.device

这将明确表明systemd需要这三个声音设备pulseaudio.service,并且该服务应该仅启动这些设备已准备就绪。

您可以对特定的声音设备执行相同的操作。

免责声明:由于我首先遇到了您的问题,因此我无法确认我的建议是否有效。通过测试,我只能证明它没有害处。但如果此修复有效,它应该通过防止过早启动来消除问题的实际根本原因pulseaudio.service,而不是通过强制重新启动服务一次来解决问题。

如果此修复有效并且您希望使其对系统的所有用户都有效,只需将文件移动override.conf到目录/etc/systemd/user/pulseaudio.service.d/(根据需要创建目录)即可。

相关内容