我最近更新了我的系统,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"
Run Code Online (Sandbox Code Playgroud)
但是,对于卡上的每个端口,它都会显示available: no
. 我相信这是它自动检测是否有任何东西插入插孔。这会很好,除非已知此声卡的插孔自动检测已损坏。
在过去,它只会显示为“未插电”,我可以选择输出到它。现在,pulseaudio 甚至不会为它设置接收器。pacmd list-sinks
仅显示视频卡的 HDMI/DP 输出的接收器。
如何关闭插孔自动检测,或者强制这些端口可用?
我找到了解决此问题的方法: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"
Run Code Online (Sandbox Code Playgroud)
您可以在 /sys/class/sound/hwC?D?/chip_name 中找到您的chip_name,或者使用其他东西作为选择器...
有关更多信息,请参阅此页面:https : //www.kernel.org/doc/html/latest/sound/hd-audio/notes.html#hd-audio-reconfiguration
许多卡都有配置文件,它决定了哪些输入和输出可用。您的卡具有以下信息:
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)
Run Code Online (Sandbox Code Playgroud)
当前活动的配置文件是
active profile: <off>
Run Code Online (Sandbox Code Playgroud)
pavucontrol
您可以在“配置”选项卡中选择一个配置文件,或者使用pacmd set-card-profile
。选择名称中带有输出的两个配置文件之一应启用模拟立体声输出。