it-swarm.asia

ماذا تعني أجهزة ALSA مثل "hw: 0،0"؟ كيف يمكنني معرفة أي استخدام؟

لقد بحثت مرارًا وتكرارًا ولا يمكنني العثور على أي تفسير لما يعنيه "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. "شيء: CARD = FOO ، DEV = Y" الأشياء هي الاسم المستعار ، وربما لن تتغير بين المكونات الإضافية للأجهزة المختلفة ، حيث يمكن لـ X in "hw: X، Y". (على افتراض أنك تستخدم نفس دونجل 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 -D front: CARD = CK804 ، DEV = 0 somefile.wav" ، ويمكنك استخدام اسم devicename نفسه في .asoundrc.


إذا كنت بحاجة إلى شيء أكثر ثباتًا بمستوى أقل ، فإن أجهزة kernel الفعلية ، udev هو ما تريده - إنه النظام الذي يسمح بتوصيل الأجهزة بالكمبيوتر بالنظام. يمكنك كتابة قواعد لـ udev (وإليك صفحة رجل ) سيسمح للأجهزة بالحصول على نفس اسم devicename عند توصيله.

45
quack quixote

hw:0,0 يحدد الجهاز الافتراضي ، على بطاقة الصوت الافتراضية. للوصول إلى أول جهاز لبطاقة الصوت الثانية ، يمكنك تحديد hw:1,0. هذه محددة في .asoundrc الخاص بك. المزيد عن كل هذا هنا .

18
John T