我正在运行 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处取消麦克风静音。Capture
F4
您还可以运行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/
(根据需要创建目录)即可。