2013-08-01 07:17:57 +0000 2013-08-01 07:17:57 +0000
37
37

Alsaに好みのサウンドデバイスを自動的に選択させるには?

USBサウンドカードを購入しました。LinuxのデスクトップをUSBデバイスが差し込まれている場合、USBデバイスを優先して、デバイスが(差し込まれていない)と同時に自動的に切り替わるように設定したいと思っています。それは可能でしょうか、また、どのようにしてでしょうか?

回答 (6)

37
37
37
2013-08-09 17:47:31 +0000
$ cat /proc/asound/cards

でカードを検索するには、aplay を使用します。

$ aplay -l

を使用し、以下のように/etc/asound.confを作成します。

pcm.!default {
    type hw
    card 1
}

ctl.!default {
    type hw           
    card 1
}

「カード1」を上記で決定したカードの番号または名前に置き換えてください。

16
16
16
2013-08-10 17:54:57 +0000

これは Alsa でデフォルトのサウンドカードを選択する方法です。Pulse Audio を使用している場合は、この方法を使うために Alsa をインストールする必要があるかもしれません。

cat /proc/asound/modules

は、サウンドモジュールの一覧を表示します。

nano /etc/modprobe.d/alsa-base.conf

このalsa-base.confを、優先カードのインデックスが=-2 / 0で、他のカードのインデックスが=-1 / 1になるように編集します(-2と-1のままで)

options snd_hda_intel index=-1

options snd_usb_intel index=-2

この場合は、USBデバイスが優先されます。

出力されるカードが同じ名前の異なる2枚のカードがある場合は、このようにします。

options snd_hda_intel

options snd_hda_intel

どっちがどっちなのか調べるには、このコマンドを実行します。

cat /proc/asound/cards

then edit modules in this way:

options snd_hda_intel enable=1 index=0

options snd_hda_intel enable=0 index=1

再起動が必要かも。

4
4
4
2016-05-28 03:47:19 +0000

Matija Nalis の回答は、私には半分しか効きませんでした (alsamixer はデフォルトを変更しましたが、aplay や firefox のような他のものは頑なに間違ったデフォルトで止まっていました)。この例は debian wiki にあるもので (CentOS-6 ラップトップで) 動作しました:

defaults.pcm.!card Generic_1
defaults.ctl.!card Generic_1
defaults.pcm.!device 0
defaults.ctl.!device 0

記録のために。ALSA は文書化されておらず、特にどのカードを使用するかの選択のような非常に単純なものは、あまりにも難しいです。さらに悪いことに、システム間で変更されているようです。また、"Generic_1 “というタグは、aplay -lで "card 1 "と表示されていたので、他の人も使っているようだ。他の人が使っているようだったので、私も使ってみた。

4
4
4
2015-12-14 23:55:48 +0000

また、USBデバイスからの出力も得られませんでした。cat /proc/asound/modulesの出力は

0 snd_hda_intel

1 snd_hda_intel

2 snd_usb_audio

でした。問題はUSBデバイスが起動後に初期化されてしまったことだと思います。いずれにしても、私の解決策は、/etc/modprobe.d/blacklist.confを次のように更新することで、他の2つのサウンドデバイスをブラックリストに登録することです。

blacklist snd_hda_intel
1
1
1
2016-01-07 23:45:17 +0000

.asoundrcやシステムのasound.confを編集することでデフォルトのalsaカードを変更することができますが、この方法にはいくつかの重要な問題があります。

これは壊れやすく、名誉を守るためにはアプリケーションの再起動が必要です。

オンザフライでカードを切り替えたい場合は、pulseaudioのようにサウンドカードからアプリケーションを正しく抽象化したサウンドサーバーを使う必要があります。

-1
-1
-1
2016-06-24 16:47:20 +0000

マチヤ・ナリスとテルの回答の変種です。これが私には有効でした。

~/.asoundrc

defaults.pcm.!card 1
defaults.ctl.!card 1

(Odroid C0, Debian Jessie, aplay -l によると HDMI オーディオをカード 0、USB サウンドカードをカード 1 としています)

注意: /proc/asound/modules が存在せず、ブラックリストに入れたり優先度を低くしたりする hdmi オーディオモジュールが存在しないため、他の方法ではうまくいきませんでした。完全に無効にするには、hdmi オーディオをサポートしていないカーネルを再コンパイルしなければならなかったようです。