「hw:0,0」のようなALSAデバイスはどういう意味ですか?どちらを使用すればよいですか?


63

私は何度も検索しましたが、「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になりますか?デバイスを識別する他の方法はありますか?これに関するドキュメントはどこにありますか?


それで何が機能しましたか?
いんちきのキホーテ

PulseAudioへの切り替えはうまくいきました。:)しかし、ローカルにログインして、オーディオルーティングを変更する必要がありました。それから、私はMPDが嫌いで、あきらめることにしました。
エンドリス

実際には「hw:1,0」はおそらく動作しましたが、デバイスが使用中だったと言いました(Pulseによる)。
エンドリス

回答:


48

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で同じデバイス名を使用できます。


さらに低いレベルの実際のカーネルデバイスでより安定したものが必要な場合は、udevが必要です。システムにデバイスをホットプラグできるのはシステムです。プラグイン時にデバイスが同じデバイス名を取得できるようにするudevのルールを記述することができます(これがmanページです)。


3
あぁ!と言われましたがaplay -L、それは同じ出力を提供しませんaplay -lため息
エンドリス

1
どのようにそれを伝えることができsurround40:CARD=CK804,DEV=0ていますかhw:0,1?私が知る限りhw:0,0、それはを参照していることが与えられていますDEV=0が、異なる構成(のように2チャンネルではなく4チャンネルfront:CARD=CK804,DEV=0)にあります。
-zpon

19

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


5
具体的にここに:alsa-project.org/main/index.php/...
endolith
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.