USBサウンドカードを購入しました。LinuxのデスクトップをUSBデバイスが差し込まれている場合、USBデバイスを優先して、デバイスが(差し込まれていない)と同時に自動的に切り替わるように設定したいと思っています。それは可能でしょうか、また、どのようにしてでしょうか?
37 Petr Pudlák 2013-08-01
でカードを探す
$ cat /proc/asound/cards
有効なALSAカード名を取得するには、aplay
を使用します
$ aplay -l
を作成し、以下のようにして/etc/asound.conf
を作成します
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
カード1」を上記で決定したカードの番号または名前に置き換えてください
また、カードの順序を変更することができますので、USBカードはカード0になり、それはasound.conf
を編集しなくても動作するようになります
40 Matija Nalis 2013-08-09
これは Alsa でデフォルトのサウンドカードを選択する方法です。Pulse Audio を使用している場合、この方法を使うために Alsa をインストールする必要があるかもしれません
cat /proc/asound/modules
コマンドの出力はこのようになります(例)
0 snd_hda_intel
1 snd_usb_intel
あなたはかなり簡単に上からあなたの usb のサウンド カードがどれであるかを理解することができます
nano /etc/modprobe.d/alsa-base.conf
この alsa-base.conf を、あなたの好きなカードがインデックス =-2 / 0 を持ち、他のカードがインデックス =-1 / 1 を持つように編集してください ( -2 と -1 に固執する)
オプション snd_hda_intel index=-1
オプション snd_usb_intel index=-2
この場合usb装置は好ましい装置である
のように、同じ名前の異なるカードが2枚出力されている場合
options snd_hda_intel
options snd_hda_intel
このコマンドを発行して、どちらがどちらであるかを調べます
cat /proc/asound/cards
で、このようにモジュールを編集します
オプション snd_hda_intel enable=1 index=0
オプション snd_hda_intel enable=0 index=1
再起動が必要な場合がありますので、サウンドカードを手動で切り替える必要があるかもしれません
18 Ashildr 2013-08-10
また、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
4 user533723 2015-12-14
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 Tel 2016-05-28
.asoundrcやシステムのasound.confを編集することでデフォルトのalsaカードを変更することができますが、この方法にはいくつかの重要な問題があります
それは壊れやすく、名誉を得るためにはアプリケーションの再起動が必要です
オンザフライでカードを切り替えたい場合は、pulseaudioのようにサウンドカードからアプリケーションを正しく抽象化したサウンドサーバーを使う必要があります
1 Grant Diffey 2016-01-07
マチヤ・ナリスとテルの回答の変種です。これが私には効果がありました
~/.asoundrc
defaults.pcm.!card 1
defaults.ctl.!card 1
(Odroid C0, Debian Jessie, HDMI オーディオをカード 0、USB サウンドカードをカード 1 として aplay -l)
注意: /proc/asound/modules が存在せず、ブラックリストに入れたり優先度を下げたりする hdmi オーディオモジュールが存在しないため、他の方法ではうまくいきませんでした。完全に無効にするには、hdmi オーディオをサポートしていないカーネルを再コンパイルしなければならなかったようです
1 astooooooo 2016-06-24