web-dev-qa-db-ja.com

両方とも同じドライバを使用しながら、デフォルトのサウンドカードを切り替えます

Linux Mint17.1のサウンドに問題があります。通常は機能しますが、ほとんどの場合、引っかき傷のあるノイズによって中断されます。

私はいくつかのチュートリアルに従いました、そしてここに私が見つけたものがあります:

$ LC_ALL=C Sudo aplay -l
**** List of PLAYBACK Hardware Devices ****
No protocol specified
xcb_connection_has_error() returned true
Home directory not accessible: Permission denied
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Intel [HDA Intel], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Intel [HDA Intel], device 1: ALC887-VD Digital [ALC887-VD Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0


$ lspci -v  # relevant parts
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
    Subsystem: Intel Corporation Device 2010
    Flags: bus master, fast devsel, latency 0, IRQ 50
    Memory at f7d14000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: [50] Power Management version 2
    Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit-
    Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
    Kernel driver in use: snd_hda_intel
--
00:1b.0 Audio device: Intel Corporation Device 8ca0
    Subsystem: Gigabyte Technology Co., Ltd Device a182
    Flags: bus master, fast devsel, latency 0, IRQ 51
    Memory at f7d10000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: [50] Power Management version 2
    Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
    Capabilities: [100] Virtual Channel
    Kernel driver in use: snd_hda_intel

00:1c.0 PCI bridge: Intel Corporation Device 8c90 (rev d0) (prog-if 00 [Normal decode])


$ cat /proc/asound/modules
 0 snd_hda_intel
 1 snd_hda_intel

サウンドカードが2枚あるようです。私はもう一方を使うべきだと思います。チュートリアルの1つで、options snd_hda_intel index=0のような行を/etc/modprode.d/alsa-baseに追加して順序を設定するように指示されましたが、私の場合、両方のカードでsnd_hda_intelが使用されているため、意味がありません。

では、どうすれば他のサウンドカードに切り替えることができますか?

私が間違った方法でそれを承認していて、あなたがそれを別の方法で解決する方法を知っているなら、どんなアドバイスも歓迎します。

[〜#〜]編集[〜#〜]

@jcoppensが提供する link を使用して問題を解決しました。サウンドカードを切り替える必要はありませんでしたが、次のようになりました。

  • echo "options snd-hda-intel vid=8086 pid=8ca0 snoop=0" >> /etc/modprobe.d/sound.conf
  • カーネルコマンドラインにintel_iommu=igfx_offを追加します

この問題はIntelカードに固有のものです。

まあ、私はそれらのカードを所有しておらず、私のディストリビューションは異なりますが、いくつかの提案があります:

options snd_hda_intel index=1を追加してみましたか? index=0カードを使用しているようです。したがって、index=1オプションを使用すると、マザーボードのオーディオを有効にする必要があります(おそらく背面のコネクタを切り替える必要があります)。

別の方法は、alsa.confファイルを編集することです。場所は、ディストリビューションによって異なる場合があります。場合によっては、/usr/share/alsaにあります。デフォルトのカードを示す行があります。

defaults.ctl.card 0   <-
defaults.pcm.card 0   <-
defaults.pcm.device 0    <-
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
defaults.pcm.compat 0    <-
defaults.pcm.minperiodtime 5000         # in us

<-とマークされているものを1に変更し、再起動して確認することをお勧めします。

1
jcoppens