升级到Debian测试(Buster)后,PulseAudio无法识别Intel HDA


9

从Debian 9稳定版升级到Debian 10测试后的整个夏天,我注意到一个问题:PulseAudio不再识别我的Intel HDA音频设备。当时我能够切换到通过nVidia HDMI连接的显示器的音频,因此我回避了问题,希望将来进行更新以解决该问题。他们没有。很快过去了几个月,我已经重新布置了工作区,现在需要让Intel HDA重新工作。

到目前为止,这是我看过的东西

Debian 10测试

内核看到它:

# dmesg | grep HDA
[  +0.005509] input: HDA Intel PCH Front Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input17
[  +0.000073] input: HDA Intel PCH Rear Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input18
[  +0.000057] input: HDA Intel PCH Line as /devices/pci0000:00/0000:00:1b.0/sound/card0/input19
[  +0.000054] input: HDA Intel PCH Line Out Front as /devices/pci0000:00/0000:00:1b.0/sound/card0/input20
[  +0.000052] input: HDA Intel PCH Line Out Surround as /devices/pci0000:00/0000:00:1b.0/sound/card0/input21
[  +0.000051] input: HDA Intel PCH Line Out CLFE as /devices/pci0000:00/0000:00:1b.0/sound/card0/input22
[  +0.000053] input: HDA Intel PCH Line Out Side as /devices/pci0000:00/0000:00:1b.0/sound/card0/input23
[  +0.000058] input: HDA Intel PCH Front Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input24
[followed by NVidia HDMI audio devices that are recognized]

# lspci -nnk | grep -A2 Audio
00:1b.0 Audio device [0403]: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller [8086:1e20] (rev 04)
    Subsystem: Gigabyte Technology Co., Ltd 7 Series/C216 Chipset Family High Definition Audio Controller [1458:a002]
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd_hda_intel
[followed by NVidia HDMI audio devices that are recognized]

ALSA看到了:

# aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: Generic Analog [Generic Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: Generic Digital [Generic Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
[followed by NVidia HDMI audio devices that are recognized]

# aplay -L | grep PCH
default:CARD=PCH
    HDA Intel PCH, Generic Analog
sysdefault:CARD=PCH
    HDA Intel PCH, Generic Analog
front:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
iec958:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Digital
dmix:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
dmix:CARD=PCH,DEV=1
    HDA Intel PCH, Generic Digital
dsnoop:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
dsnoop:CARD=PCH,DEV=1
    HDA Intel PCH, Generic Digital
hw:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
hw:CARD=PCH,DEV=1
    HDA Intel PCH, Generic Digital
plughw:CARD=PCH,DEV=0
    HDA Intel PCH, Generic Analog
plughw:CARD=PCH,DEV=1
    HDA Intel PCH, Generic Digital

扬声器测试正常播放音频,而播放-D默认则正常播放:CARD = PCH /usr/share/sounds/alsa/Front_Left.wav

但是PulseAudio完全看不到该设备:

$ pacmd list-sinks
1 sink(s) available.
  * index: 0
    name: <auto_null>
    driver: <module-null-sink.c>
    flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
    state: SUSPENDED
    suspend cause: IDLE
    priority: 1000
    volume: front-left: 55705 /  85% / -4.24 dB,   front-right: 55705 /  85% / -4.24 dB
            balance 0.00
    base volume: 65536 / 100% / 0.00 dB
    volume steps: 65537
    muted: no
    current latency: 0.00 ms
    max request: 344 KiB
    max rewind: 344 KiB
    monitor source: 0
    sample spec: s16le 2ch 44100Hz
    channel map: front-left,front-right
                 Stereo
    used by: 0
    linked by: 0
    configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
    module: 16
    properties:
        device.description = "Dummy Output"
        device.class = "abstract"
        device.icon_name = "audio-card"

当我转到“声音设置”时,我看到的只是虚拟输出设备。(此处不再列出nVidia设备,因为在进行重新排列时,我使用的是另一台没有音频的监视器,因此当前没有连接HDMI音频设备。)

我试图清除PulseAudio配置,以为我可能会通过以下方式遗留一些遗留问题:

rm ~/.pulse/* ~/.config/pulse/*

Debian 9稳定版

我在这台仍在运行Debian 9稳定版的计算机上有另一个分区,其中Intel HDA在PulseAudio下工作,并且ALSA驱动程序与Debian 10确实存在差异,因此以下是我注意到的差异...

# aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC887-VD Digital [ALC887-VD Digital]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

# aplay -L | grep PCH

sysdefault:CARD=PCH
    HDA Intel PCH, ALC887-VD Analog
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
iec958:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Digital
dmix:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
dmix:CARD=PCH,DEV=1
    HDA Intel PCH, ALC887-VD Digital
dsnoop:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
dsnoop:CARD=PCH,DEV=1
    HDA Intel PCH, ALC887-VD Digital
hw:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
hw:CARD=PCH,DEV=1
    HDA Intel PCH, ALC887-VD Digital
plughw:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
plughw:CARD=PCH,DEV=1
    HDA Intel PCH, ALC887-VD Digital

当然,Debian 9在PulseAudio中看到了英特尔HDA:

$ pacmd list-sinks
1 sink(s) available.
  * index: 2
    name: <alsa_output.pci-0000_00_1b.0.iec958-stereo>
    driver: <module-alsa-card.c>
    flags: HARDWARE HW_MUTE_CTRL DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
    state: RUNNING
    suspend cause: 
    priority: 9958
    volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
            balance 0.00
    base volume: 65536 / 100% / 0.00 dB
    volume steps: 65537
    muted: no
    current latency: 24.26 ms
    max request: 4 KiB
    max rewind: 344 KiB
    monitor source: 3
    sample spec: s16le 2ch 48000Hz
    channel map: front-left,front-right
                 Stereo
    used by: 1
    linked by: 1
    configured latency: 25.00 ms; range is 0.50 .. 1837.50 ms
    card: 1 <alsa_card.pci-0000_00_1b.0>
    module: 7
    properties:
        alsa.resolution_bits = "16"
        device.api = "alsa"
        device.class = "sound"
        alsa.class = "generic"
        alsa.subclass = "generic-mix"
        alsa.name = "ALC887-VD Digital"
        alsa.id = "ALC887-VD Digital"
        alsa.subdevice = "0"
        alsa.subdevice_name = "subdevice #0"
        alsa.device = "1"
        alsa.card = "0"
        alsa.card_name = "HDA Intel PCH"
        alsa.long_card_name = "HDA Intel PCH at 0xf5130000 irq 30"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:00:1b.0"
        sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
        device.bus = "pci"
        device.vendor.id = "8086"
        device.vendor.name = "Intel Corporation"
        device.product.id = "1e20"
        device.product.name = "7 Series/C216 Chipset Family High Definition Audio Controller"
        device.form_factor = "internal"
        device.string = "iec958:0"
        device.buffering.buffer_size = "352800"
        device.buffering.fragment_size = "176400"
        device.access_mode = "mmap+timer"
        device.profile.name = "iec958-stereo"
        device.profile.description = "Digital Stereo (IEC958)"
        device.description = "Built-in Audio Digital Stereo (IEC958)"
        alsa.mixer_name = "Realtek ALC887-VD"
        alsa.components = "HDA:10ec0887,1458a002,00100302"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    ports:
        iec958-stereo-output: Digital Output (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
            properties:

    active port: <iec958-stereo-output>

所以问题很明显:我如何在Debian 10的PulseAudio中使Intel HDA音频再次工作?从配置的角度来看,这是我可以解决的问题,还是ALSA或PulseAudio维护人员需要解决的驱动程序问题?


1
Debian 10 Buster仍在测试中。您在这里所能做的就是提交一个错误报告,然后等待它正式发布并获得实际支持。
纳西尔·莱利

但是错误报告是为了什么呢?(即内核驱动程序?ALSA?PulseAudio?)很明显,行为已更改,但我完全不清楚问题的根源是什么。我也不知道问题是否仅针对我当前的配置,还是完全重新安装(我现在不能做的事情)是否会重现。Debian软件包维护者想要一个特定的软件包,该软件包存在重现步骤的问题……我不相信我在那儿。
blihp

您需要对PulseAudio进行故障排除,并查看内核是否有问题或其他问题。您也可以等待它正式发布,看看问题是否解决。
纳西尔·莱利

@blihp您解决了您的问题吗?我遇到的是完全一样的……
nicoco

1
@nicoco我找到的解决方案对您有用吗?
blihp

Answers:


10

由于同样的问题,我在这里结束,从Stretch升级后,音频消失了。类似的症状和输出(Nvidia卡和Intel HDA声音)。但是,在按照说明进行操作时,我发现无法执行此步骤:

root@desk:~# aplay -D plughw:0,0 /usr/share/sounds/alsa/Front_Center.wav
aplay: main:828: audio open error: Device or resource busy

我发现罪魁祸首是胆小:

root@desk:~# fuser -v /dev/snd/*
                     USER        PID ACCESS COMMAND
/dev/snd/pcmC0D0p:   timidity   1274 F...m timidity
/dev/snd/seq:        timidity   1274 F.... timidity

一旦我杀死了它,我就可以继续编辑/etc/pulse/default.pa,一切都固定到位。我仍然不确定问题是否在于缺少PA接收器或胆小的接管。

我也考虑过提交错误报告,但是我不确定哪里更合适。如果您有任何建议,我们将很乐意跟随您,并为报告提供支持。

感谢您分享解决方案!


2
刚从我的系统中删除了胆怯-谢谢!
dsz

完全相同的问题,将其删除可以解决问题,可能我过去曾使用过胆小,但最近没有使用,因此,即使有更合适的解决方案,也可以将其删除就好了:)
muni764

我没有首先安装它,仍然遇到类似的问题。
马丁·尤丁

以我为例,这是muroard在绑住音响设备。提醒您:fuser除非您记得将其运行为,否则可能无法告诉您任何有用的信息root
rakslice

仅供参考:我遇到了同样的问题。我以相同的方式修复它-但是fuser -v /dev/snd/*没有产生任何结果。还是我通过卸载怯来解决它!
christianparpart

8

我只是遇到了这个确切的问题,而卸载“怯id”解决了这一问题。从字面上看,当该软件包被apt移除时,我看到一条通知,显示我有一个声卡(被解释为音量变化)。


2
这里也存在同样的问题。我是Debian开发人员,所以我可以告诉您要看的地方。参见bugs.debian.org/910048(“胆小:通过pulseaudio升级到2.14.0-2会破坏声音”)
Steve McIntyre,

同样的问题,谢谢
muni764 '19

@SteveMcIntyre错误是bugs.debian.org/901148
LatinSuD

确实,一个简单的apt-get purge timidity事情花了几个小时才解决了我所有的问题……非常感谢您分享您的解决方案。
克莱门特

我有一个系统,一timidity开始没有安装。以后我仍然没有声音pulseaudio --start。使用后,aplay我会听到一些声音。
马丁·尤丁

5

如果其他任何人遇到这种情况,这里有一个解决方法,可以强制PulseAudio使用ALSA设备...

首先,直接通过ALSA播放一些音频,以确认您知道正确的声卡和所需的设备:

aplay -D plughw:<CARD#>,<DEVICE#> /usr/share/sounds/alsa/Front_Center.wav

就我而言,我想要光学音频输出,因此根据aplay -l我上面的问题所看到的输出是:

aplay -D plughw:0,1 /usr/share/sounds/alsa/Front_Center.wav

记下卡和设备号,并添加一个条目/etc/pulse/default.pa(将0,1替换为上一步中适用的代码):

load-module module-alsa-sink device=plughw:0,1

我在文件中的.ifexists模块-udev-detect.so行之前添加了这一行(即,在###静态加载音频驱动程序下方)

然后以登录桌面会话的用户身份(即不是以root 用户身份)运行以下命令:

pulseaudio --kill
pulseaudio --start

然后,您应该可以打开“声音设置”以查看并选择卡:

在此处输入图片说明

此时,您应该可以通过PulseAudio重新播放音频。(有什么我注意到的是,pacmd list-cards依然不会列出,即使它现在工作卡)提醒:这是一个解决办法,而不是长期的修复,所以一定要记到自己在某些时候在将来撤消此看如果已正确修复。但是它暂时可以使音频工作。


0

从debian 9升级到debian 10后,我只有一个虚拟接收器,没有任何音频

aplay -l 失败,报告打开99-pulse.conf时出错

/etc/alsa/conf.d/99-pulse.conf使用从Xubuntu安装中获取的内容创建的:

# PulseAudio alsa plugin configuration file to set the pulseaudio plugin as
# default output for applications using alsa when pulseaudio is running.
hook_func.pulse_load_if_running {
    lib "libasound_module_conf_pulse.so"
    func "conf_pulse_hook_load_if_running"
}

@hooks [
    {
        func pulse_load_if_running
        files [
            "/usr/share/alsa/pulse-alsa.conf"
        ]
        errors false
    }
]

这解决了我的问题


这个文件已经存在,我曾与Debian的9安装并升级到Debian的10系统上
马丁Ueding
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.