linux – Alsaが自動的に好みのサウンドデバイスを選択できるようにするには?

alsa debian-wheezy linux sound-card usb

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


タイトルとURLをコピーしました