alsamixer отказывает с моим asound.conf файлом, но прекрасен без него

У меня есть специфическая проблема с alsamixer. У меня есть этот asound.conf файл, который выполняет канал, повторно отображающийся для моего устройства "USBStreamer":

pcm.usbSTR {
  type hw
  card USBStreamer
  device 0
}

pcm.usbREMAP {
  type plug
  slave.pcm usbSTR
  ttable.0.8 1
  ttable.1.9 1
}

pcm.!default {
  type plug
  slave.pcm usbREMAP
}

ctl.!default {
  type plug
  slave.pcm usbREMAP
}

Если я выполняю alsamixer без параметров командной строки, и вышеупомянутое asound.conf файл, alsamixer отказывает с not-so-helpful сообщением об ошибке:

ALSA lib dlmisc.c:254:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/i386-linux-gnu/alsa-lib/libasound_module_ctl_plug.so
cannot open mixer: No such device or address

Если я удаляю asound.conf файл, alsamixer работает отлично.

К сожалению, мне нужен канал, повторно отображающийся, чтобы mpd работал.

Существует ли способ иметь переотображение канала и не иметь катастрофический отказ alsamixer?

К вашему сведению: если я указываю, что устройство USBStreamer, alsamixer хорошо работает. К сожалению, кажется, что mpd не так конкретен, когда это называет alsamixer.

править: Если я стираю ctl.! блок по умолчанию от asound.conf и перезапуск alsa, alsamixer хорошо работают, не указывая устройство... mpd думает свое проигрывание через alsa, но никакой шум не выходит из моих динамиков. Я думаю это ctl.! блок по умолчанию делал что-то важное.

Кроме того, тест динамика больше не работает. Это жалуется на занятый ресурс:

speaker-test -c 10 -t sin -D plughw:USBStreamer

speaker-test 1.1.0

Playback device is plughw:USBStreamer
Stream parameters are 48000Hz, S16_LE, 10 channels
Sine wave rate is 440.0000Hz
Playback open error: -16,Device or resource busy

Вот моя audio_output часть/etc/mpd.conf

audio_output {
type "alsa"
name "USB Streamer - LX521.4"
device "hw:USBStreamer,0"
}

Хотя это - периферийное устройство к моей проблеме, я нашел что asound.conf файл немного ужасный. Мое понимание конфигурационных файлов ALSA является элементарным, но я полагаю, что это эквивалентно вышеупомянутому (с ctl.! стертая часть по умолчанию):

pcm.!default {
  type plug
  slave.pcm {
    type hw
    card USBStreamer
    device 0
    }
   ttable {
    0.8 1
    1.9 1
  }
}

Вот является amixer "простыми средствами управления" для звукового устройства:

amixer -D hw:USBStreamer scontrols
Simple mixer control 'Mic',0
Simple mixer control 'Mic',1
Simple mixer control 'USBStreamer Clock Selector',0
Simple mixer control 'USBStreamer Output',0
Simple mixer control 'USBStreamer Output',1

Ага! Это похоже, возможно, mpd, использует ALSA, и вот почему я не могу сделать теста динамика:

 sudo fuser -v /dev/snd/*
[sudo] password for rybu: 
                     USER        PID ACCESS COMMAND
/dev/snd/controlC0:  mpd         935 F.... mpd
/dev/snd/pcmC1D0p:   mpd         935 F...m mpd

Действительно кажется, что mpd замораживается. Запросы к mpc берут навсегда и результат в сообщениях об ошибках как:

mpc
mpd error: Timeout

Таким образом, я должен уничтожить mpd некоторое время... давайте посмотрим, могу ли я сделать это. Я верю "sudo сервис mpd, остановка" должна добиться цели. Тот запрос занимает много времени... хорошо, тест динамика работает снова!

но mplayer не работает:

[AO_ALSA] alsa-lib: pcm.c:2135:(snd_pcm_open_conf) type is not defined
[AO_ALSA] Playback open error: No such file or directory
Failed to initialize audio driver 'alsa'
[AO SDL] Samplerate: 44100Hz Channels: Stereo Format s16le
[AO SDL] using aalib audio driver.
[AO SDL] Unable to open audio: 
Failed to initialize audio driver 'sdl:aalib'
Could not open/initialize audio device -> no sound.
Audio: no sound

Хорошо, я зафиксировал это с mplayer аргументами "ao=alsa:device=default", это говорит этому использовать asound.conf повторно отображенное устройство по умолчанию.

Затем, mpd. Это чувствует себя хорошо для успехов.

Я установил mpd для использования устройства ALSA по умолчанию (не hw:USBStreamer) так, чтобы переотображение канала было сделано. Перезапустите mpd, и он работает отлично снова.

Спасибо, проблема решена.

0
задан 26 January 2018 в 15:21

1 ответ

Забудьте об этом ctl устройство; для конфигурирования mpd микшера установите его mixer_type и/или mixer_device. (Если устройство не имеет применимого микшера средствами управления, Вы, возможно, должны были бы использовать микшер программного обеспечения.)

Занятая ошибка вызывается некоторой другой программой (вероятно), PulseAudio, открывающий устройство. (Можно регистрировать PID /proc/asound/cardX/pcm0p/sub0/status.)

1
ответ дан 31 October 2019 в 03:22

Другие вопросы по тегам:

Похожие вопросы: