web-dev-qa-db-ja.com

Alsa-デフォルトのオーディオ出力がhdmiではなくカード2とデバイス0であることをどのように確認できますか?

システムのデフォルトのサウンド出力がカード2でデバイス0がカード2デバイス3または7または1ではないことを確認するにはどうすればよいですか?

私はこれをしましたが音はしませんでした。

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Device [C-Media USB Audio Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

$ cat /etc/asound.conf
#pcm.!default { 
#  type plug; 
#  slave { pcm "hw:2" } 
#} 
pcm.!default {
    type hw
    card 2
    device 0
}
6
user11085

デフォルトのデバイスを設定するには、defaultデバイスを再定義せず、単に/etc/asound.conf

defaults.pcm.card 2      # or better "PCH"
defaults.pcm.device 0

これは、デバイスを明示的に指定せずにデフォルトのデバイスを実際に使用するプログラムでのみ機能します。 PulseAudioやVLCなどのプログラムが特定の出力デバイス用に構成されている場合は、その構成を変更する必要があります。

4
CL.

サウンドカードがインデックスを切り替え続けることがわかった場合、defaults.pcm.card 2/etc/asound.confにハードコードすることはできません。 1つの(複雑な)アプローチが機能する場合があります。サウンドカーネルモジュールを希望の優先順位で構成することです。

このアプローチは Debian Bug#61411 で説明されています:

  1. alsamixer;を実行します
  2. f6を使用して、利用可能なサウンドデバイスを調査する
  3. デバイスで再生するための正しいレベルを設定します。
  4. サウンドデバイスの選択を許可するサウンドプレーヤーを実行します(audaciousなど)。
  5. サウンドデバイスを使用して(手順2、3を繰り返して)、デフォルトにするものを決定します。
  6. alsamixerとプレーヤーを終了します。
  7. rootとしてログインします。
  8. lsmod | grep sndを実行して、物理的なサウンドデバイスに対応するモジュールを理解してください。
  9. 手順2でモジュールを正しく決定しているかわからない場合は、/sys/moduleに移動し、名前が「snd」で始まるすべてのディレクトリを調べます。このディレクトリは、モジュールとまったく同じ名前です。検査済みディレクトリに「drivers」ディレクトリが表示される場合-検査済みディレクトリの名前は、物理的なサウンドデバイスに対応するモジュールの名前です。そのようなすべてのモジュールを覚えて(メモ帳に書いて)ください。
  10. 手順2と3で見つけたモジュールごとにmodinfo <module name> | grep descを実行します。説明を読み、このモジュールの優先順位を決定します。これは、対応するサウンドデバイスの優先順位になります。
  11. /etc/modprobe.dに移動します。
  12. 作成snd_cards_priorities.conf;
  13. 次のようにsnd_cards_priorities.confに書き込みます。

    alias snd-card-0 <module for highest priority card>
    options <module for highest priority card> index=0
    alias snd-card-1 <module for lower priority card>
    options <module for lower priority card> index=1
    
  14. ファイルを保存;
  15. /usr/sbin/alsa force-reloadコマンドでalsaを再起動します。
  16. cat /proc/asound/cardsコマンドを実行して、サウンドデバイスが正しい順序になっていることを確認します(デバイス#0の優先度が最も高い)。
  17. 手順9、10を数回繰り返し、サウンドデバイスの順序が変わっていないことを確認します。
  18. ルートを終了します。

  19. alsamixerを実行してデフォルトのサウンドデバイスを設定し、alsamixerを終了します。

  20. お気に入りのサウンドプレーヤーを使用して、新しい構成をテストします。
3
Dan Cecile