Що означають пристрої ALSA, такі як "hw: 0,0"? Як розібратися, що використовувати?


58

Я шукав знову і знову і не можу знайти пояснення того, що означає "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, чи стає картка 2 карткою 2? Чи існують інші способи ідентифікації пристроїв? Де я можу знайти документацію для цього?


так що ж закінчилося працювати?
quack quixote

Перемикання на PulseAudio працювало, начебто. :) Але мені довелося увійти в систему локально і змінити аудіо маршрутизацію. Тоді я вирішив MPD смокче та відмовився.
endolith

Насправді "hw: 1,0", ймовірно, працював, але він сказав, що пристрій був у використанні (від Pulse?) Я не спробував інший метод, але сподіваюся, це допоможе іншим.
endolith

Відповіді:


45

Відповідь Джонта дає хороший базовий. Я довідаюся, як знайти пристрої у вашій системі. Використовуйте "aplay -l", щоб отримати список пристроїв у вашій системі. The 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" є псевдонімом і, ймовірно, не змінюватиметься між різними плагінами пристроїв, де X у "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 стане "aplay -D front: CARD = CK804, DEV = 0 somefile.wav", і ви можете використовувати ту ж саму пристрій у вашому .asoundrc.


Якщо вам потрібно щось більш стабільне на ще більш низькому рівні, фактичні пристрої ядра, udev це те, що ви хочете - це система, яка дозволяє гаряче підключення пристроїв до системи. Ти можеш Правила запису для udev (і ось сторінка людини ), які дозволять пристроям отримувати однакову назву пристрою під час підключення.


3
Ага! Мені сказали aplay -L, який не забезпечує такого ж виводу, як aplay -l. зітхання
endolith

1
Як ви можете це сказати surround40:CARD=CK804,DEV=0 є hw:0,1? Наскільки я можу це сказати hw:0,0 враховуючи, що воно відноситься до DEV=0, але в іншій конфігурації (4 канали, а не 2 як у front:CARD=CK804,DEV=0 ).
zpon

17

hw:0,0 вказує пристрій за замовчуванням на стандартній звуковій карті. Щоб отримати доступ до першого пристрою вашої другої звукової карти, вам слід вказати hw:1,0. Вони вказані у вашому .asoundrc. Більше про все це тут .


4
Конкретно тут: alsa-project.org/main/index.php/…
endolith
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.