web-dev-qa-db-ja.com

"hw:0,0"のようなALSAデバイスはどういう意味ですか?

何度も検索しましたが、 "hw:0,0"の意味についての説明が見つかりません。 USBオーディオカードの数を確認するにはどうすればいいですか? MPD を入力する必要があります。

audio_output {
        type                    "alsa"
        name                    "Sound Card"
        device                  "hw:0,0"     # optional
        format                  "44100:16:2" # optional
}

"alsamixer -c 1"を実行すると、USBカードのボリュームコントロールが開きますが、実際には役に立ちません。

システム上のデバイス名/番号のリストはどこにありますか?それらはハードウェアの変更に対して耐性がありますか?カード2を取り外すと、カード3はカード2になりますか?デバイスを識別する方法は他にありますか?これに関する文書はどこにありますか。

60
endolith

JohnTの答えは良い基本を与えます。私はあなたのシステム上のデバイスを見つける方法でそれをフォローアップします。システム上のデバイスのリストを取得するには、 "aplay -l"を使用してください。 hw:X、Yはあなたのハードウェアのこのマッピングから来ています - この場合、Xはカードの番号です。 Yはデバイス番号です。

$ aplay -l   # note lower-case "L" option
**** List of PLAYBACK Hardware Devices ****
card 0: T71Space [Terratec Aureon 7.1-Space], device 0: ICE1724 [ICE1724]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 1: IEC1724 IEC958 [IEC1724 IEC958]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 2: ICE1724 Surrounds [ICE1724 Surround PCM]
  Subdevices: 3/3
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2

これらはUSBデバイスであるため、接続されるたびに常に同じデバイス番号を取得するとは限らないため、hw:X、Yデバイスは変わる可能性があります。最も簡単な答えは、デスクトップシステムの場合、GNOME/KDE/Xfce設定ツールを試してみて、変更がうまくいくかどうかを確認することです。

あなたがデスクトップシステムでこれをしていないならば、複雑な方法は...面白くなります。あなたは "hw:X、Y"の代わりにデバイスエイリアス を使うことで逃げることができるかもしれません - これは "aplay -L"の出力です。示しています。 "something:CARD = FOO、DEV = Y"のものは別名で、おそらく "hw:X、Y"の中のXが違うかもしれない異なるデバイスプラグインの間では変わることはないでしょう。 (毎回同じUSBドングルを使用していると仮定します。)

$ aplay -L
default:CARD=CK804
    NVidia CK804, NVidia CK804
    Default Audio Device
front:CARD=CK804,DEV=0                 # hw:0,0
    NVidia CK804, NVidia CK804
    Front speakers
surround40:CARD=CK804,DEV=0            # hw:0,1
    NVidia CK804, NVidia CK804
    4.0 Surround output to Front and Rear speakers

そのため、あなたのaplayコマンドは "aplay -D front:CARD = CK804、DEV = 0 somefile.wav"になるでしょう、そしてあなたはあなたの.asoundrcの中で同じdevicenameを使うことができます。


もっと低いレベルでもっと安定したものが必要なら、実際のカーネルデバイス、udevがあなたが望むものです - それはシステムをデバイスにホットプラグすることを可能にするシステムです。あなたは udev のルールを書くことができます(そしてここに manページ があります)。

45
quack quixote

hw:0,0は、デフォルトのサウンドカード上のデフォルトのデバイスを指定します。 2番目のサウンドカードの最初のデバイスにアクセスするには、hw:1,0を指定します。これらはあなたの.asoundrcで指定されています。このすべての詳細 はこちら

18
John T