我有一台安装了 PCIe FX100 KVM 主机卡的 Dell Precision 服务器(制造商是 Teradici,但已更名为 Dell 解决方案。)
我没有使用这张卡(它安装在机器上,但没有外部连接到任何东西),但我相信它仍然会覆盖板载音频,使其成为默认的和唯一的音频输出。因此,来自服务器的音频被路由到 KVM 卡。我不希望发生这种情况,因为我有扬声器连接到音频输出插孔。
在系统->首选项->声音下,唯一列出的是“HDA Teradici”,即 KVM 卡。
根据服务器手册,板载音频应该是“集成的双芯片音频解决方案,由 Sigmatel 的 STAC9200 高清晰度音频编解码器和 ESB2 的集成 AC97/高清晰度数字控制器组成”。但是,板载声音似乎已被 KVM 卡禁用。
中唯一的条目/dev/snd/
是pci-0000:02:00.1
,它是 KVM 卡上的音频接口(见lspci
下面的输出)。
- 我可以在哪里选择使用板载音频而不是 KVM 卡?
- 如果这不可能,是否有可能以某种方式禁用 PCIe KVM 卡?这是一台远程机器,所以我无法物理移除该卡。
我还希望任何故障排除步骤能够为我指明正确的方向,以了解这张卡可能覆盖哪些内容、任何相关日志等。
lspci
输出
lspci
列出该设备的以下内容:
02:00.0 USB Controller: Teradici Corp. Device 1200
02:00.1 Audio device: Teradici Corp. Device 1200
lshw
输出
并lshw
有以下相关部分:
*-pci:1
description: PCI bridge
product: 5400 Chipset PCI Express Port 5
vendor: Intel Corporation
physical id: 5
bus info: pci@0000:00:05.0
version: 20
width: 32 bits
clock: 33MHz
capabilities: pci pm msi pciexpress bus_master cap_list
configuration: driver=pcieport
resources: irq:73 memory:dbf00000-dbffffff
*-usb
description: USB Controller
product: Teradici Corp.
...
configuration: driver=ohci_hcd latency=0
resources: irq:52 memory:dbffb000-dbffbfff
*-multimedia
description: Audio device
product: Teradici Corp.
vendor: Teradici Corp.
physical id: 0.1
bus info: pci@0000:02:00.1
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list
configuration: driver=HDA Intel latency=0
resources: irq:52 memory:dbffc000-dbffffff
pacmd list-cards
输出
并且pacmd list-cards
只列出了一张可用的卡(这就是为什么我认为我无法选择任何其他卡):
Welcome to PulseAudio! Use "help" for usage information.
>>> 1 card(s) available.
index: 0
name: <alsa_card.pci-0000_02_00.1>
driver: <module-alsa-card.c>
owner module: 4
properties:
alsa.card = "0"
alsa.card_name = "HDA Teradici"
alsa.long_card_name = "HDA Teradici at 0xdbffc000 irq 52"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:02:00.1"
sysfs.path = "/devices/pci0000:00/0000:00:05.0/0000:02:00.1/sound/card0"
device.bus = "pci"
device.vendor.id = "6549"
device.vendor.name = "Teradici Corp."
device.product.id = "1200"
device.string = "0"
device.description = "HDA Teradici"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
profiles:
output:analog-stereo: Analog Stereo Output (priority 6000)
output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (priority 6060)
input:analog-stereo: Analog Stereo Input (priority 60)
off: Off (priority 0)
active profile: <output:analog-stereo>
sinks:
alsa_output.pci-0000_02_00.1.analog-stereo/#0: HDA Teradici Analog Stereo
sources:
alsa_output.pci-0000_02_00.1.analog-stereo.monitor/#0: Monitor of HDA Teradici Analog Stereo
>>>
aplay
输出
同样aplay -l
只列出 Teradici 设备:
**** List of PLAYBACK Hardware Devices ****
card 0: Teradici [HDA Teradici], device 0: ALC883 Analog [ALC883 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
答案1
我从服务器上移除了 KVM 卡,然后自动检测到了板载音频。很明显,Ubuntu 的制造商对这款卡的支持不是很好,所以对于遇到这种情况的人,我建议你使用不依赖于特定服务器硬件的外部 KVM 解决方案。
答案2
您应该检查服务器上的 BIOS,以确保板载音频已启用。Teradici 卡本身显示为音频设备,这可能会触发 BIOS 禁用板载音频。您应该能够覆盖此设置。
答案3
可以尝试一下:
除非板载硬件使用相同的驱动程序“snd_hda_intel”驱动程序,否则您可以尝试编辑 /etc/modprobe.d/blacklist 文件并添加:
blacklist snd_hda_intel
为了阻止驱动程序启动并抓取 KVM 板。
另一种更有选择性的方法可能是忽略与不需要的设备匹配的 udev 规则的设备,并指定OPTIONS+="ignore_device"
有关编写规则的更多信息,请参阅这。