禁用 Linux 声卡

禁用 Linux 声卡

我已经从 12.04 更新到 Kubuntu 12.10,但我的声音停止工作了...我想是因为我的系统中有两个声卡,我认为禁用其中一个应该可以解决问题。以下是 inxi 的输出:

$ inxi -Ax
Audio:     Card-1: NVIDIA GF106 High Definition Audio Controller
             driver: snd_hda_intel     bus-ID: 05:00.1
           Card-2: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA) 
             driver:     snd_hda_intel bus-ID: 00:14.2
           Sound: Advanced Linux Sound Architecture ver: 1.0.25
$ 

我想禁用 NVIDIA GF106,因为它的 HDMI 输出无法传输到我的耳机。我该怎么做?或者还有其他恢复声音的技巧吗?非常感谢。

输出如下aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: SB [HDA ATI SB], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Headset [Logitech USB Headset], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

这是~/.asoundrc

pcm.!default {type hw card 0 device 0}
ctl.!default {type hw card 0 device 0}

但仍然无法正常工作 :(

答案1

也许您的 NVIDIA 卡被设置为默认音频设备;当我尝试通过 HDMI 获取音频时,例如在 Flash 中,我遇到了类似的问题。问题是我的 Realtek 卡被设置为默认,而某些应用程序不允许您选择要使用的声音设备。我通过将 HDMI 音频设置为默认音频设备解决了该问题,这可以通过编辑.asoundrc主目录中的文件来实现。

以下是操作方法。首先,您必须找到要使用的正确卡和设备。运行命令aplay -l。我猜您想让音频从 USB 耳机中出来?从输出中,aplay -l您可以看到 USB 耳机已卡号 2设备编号 0,因此请将以下内容放入您的.asoundrc文件中。

pcm.!default {
type hw
card 2
device 0
}

ctl.!default {
type hw
card 2
device 0
}

答案2

  1. 您可以使用 sysfs 节点从 ALSA 中取出 PCI/PCIe 卡remove

    echo 1 | sudo tee /sys/class/sound/card0/device/remove
    

    例如:

    # current cards
    $ cat /proc/asound/cards
    0 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                        HDA ATI HDMI at 0xfcba0000 irq 73
    1 [Generic        ]: HDA-Intel - HD-Audio Generic
                        HD-Audio Generic at 0xfca00000 irq 76
    2 [Mic            ]: USB-Audio - Samson Meteor Mic
                        Samson Technologies Samson Meteor Mic at usb-0000:09:00.3-2.3, full speed
    3 [SoundBar       ]: USB-Audio - Dell AC511 USB SoundBar
                        Dell Dell AC511 USB SoundBar at usb-0000:09:00.3-2.4.1, full speed
    
    # remove cards
    $ echo 1 | sudo tee /sys/class/sound/card0/device/remove
    1
    $ echo 1 | sudo tee /sys/class/sound/card1/device/remove
    1
    
    # updated cards
    $ cat /proc/asound/cards
    2 [Mic            ]: USB-Audio - Samson Meteor Mic
                        Samson Technologies Samson Meteor Mic at usb-0000:09:00.3-2.3, full speed
    3 [SoundBar       ]: USB-Audio - Dell AC511 USB SoundBar
                        Dell Dell AC511 USB SoundBar at usb-0000:09:00.3-2.4.1, full speed
    

    要重新启用卡,请戳 PCIrescan节点:

    echo 1 | sudo tee /sys/bus/pci/rescan
    
  2. USB 卡有点棘手,因为你必须从/sys/class/sound/cardX/device符号链接中读取 USB 设备路径才能将其接入device/unbind

    CARD=card3; \
    basename $(readlink /sys/class/sound/$CARD/device) | \
    sudo tee /sys/class/sound/$CARD/device/unbind
    

请注意,移除卡 0 会引起混淆alsamixer

$ alsamixer
cannot open mixer: No such file or directory

...因此请确保选择具有该--card选项的其他卡。

答案3

最常见的情况是,您的系统会配备 PulseAudio。要禁用音频设备,请安装PulseAudio 音量控制并使用“配置”选项卡禁用设备。

相关内容