如何强制脉冲音频端口可用

如何强制脉冲音频端口可用

我最近更新了我的系统,pulseaudio 现在拒绝使用我的声卡。它确实知道它存在,如下pacmd list-cards所示:

    index: 2
    name: <alsa_card.pci-0000_00_1b.0>
    driver: <module-alsa-card.c>
    owner module: 8
    properties:
        alsa.card = "0"
        alsa.card_name = "HDA Intel PCH"
        alsa.long_card_name = "HDA Intel PCH at 0xf7210000 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 = "0"
        device.description = "Built-in Audio"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    profiles:
        input:analog-stereo: Analog Stereo Input (priority 60, available: no)
        output:analog-stereo: Analog Stereo Output (priority 6000, available: no)
        output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (priority 6060, available: no)
        off: Off (priority 0, available: unknown)
    active profile: <off>
    ports:
        analog-input-front-mic: Front Microphone (priority 8500, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "audio-input-microphone"
        analog-input-rear-mic: Rear Microphone (priority 8200, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "audio-input-microphone"
        analog-input-linein: Line In (priority 8100, latency offset 0 usec, available: no)
            properties:

        analog-output-lineout: Line Out (priority 9900, latency offset 0 usec, available: no)
            properties:

        analog-output-headphones: Headphones (priority 9000, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "audio-headphones"

但是,对于卡上的每个端口,它都会显示available: no.我相信这是它自动检测是否有任何东西插入插孔。这没什么问题,除非该声卡的插孔自动检测已损坏。

在过去,它只会显示为“未插入”,我可以选择输出到它。现在,pulseaudio 甚至不会为其设置接收器。pacmd list-sinks仅显示视频卡 HDMI/DP 输出的接收器。

如何关闭插孔自动检测,或强制这些端口可用?

答案1

我找到了这个问题的解决方案:hda 驱动程序中有一个选项可以禁用 Jack 检测。我制定了一条 udev 规则来在启动前强制执行此操作:

/etc/udev/rules.d/jackdetect.rules:

ACTION=="add", SUBSYSTEM=="sound", ATTRS{chip_name}=="ALC898", ATTR{hints}="jack_detect=false"
ACTION=="add", SUBSYSTEM=="sound", ATTRS{chip_name}=="ALC898", ATTR{reconfig}="1"

您可以在 /sys/class/sound/hwC?D?/chip_name 中找到您的chip_name,或使用其他内容作为选择器...

请参阅此页面了解更多信息:https://www.kernel.org/doc/html/latest/sound/hd-audio/notes.html#hd-audio-reconfiguration

答案2

很多卡都有简介,除其他外,它决定哪些输入和输出可用。您的卡具有以下信息:

 profiles:
    input:analog-stereo: Analog Stereo Input (priority 60, available: no)
    output:analog-stereo: Analog Stereo Output (priority 6000, available: no)
    output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (priority 6060, available: no)
    off: Off (priority 0, available: unknown)

当前活动的配置文件是

active profile: <off>

您可以在pavucontrol中选择一个配置文件配置选项卡,或使用pacmd set-card-profile.选择两个配置文件之一输出其名称应启用模拟立体声输出。

相关内容