PulseAudio не видит работающую звуковую карту USB - PullRequest
0 голосов
/ 12 января 2020

У меня Raspberry Pi с Raspbian, к которому подключена дешевая USB-карта SoundBlaster. Карта видна ALSA:

# aplay -l | grep card
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
card 0: ALSA [bcm2835 ALSA], device 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
card 1: S3 [Sound Blaster Play! 3], device 0: USB Audio [USB Audio]

И я могу воспроизводить звук через эту карту:

$ speaker-test -Dhw:1,0 -c2 -twav

выводит «передний левый» и «передний правый» "женским голосом через подключенные динамики.

Однако PulseAudio не распознает карту:

$ pacmd list-sinks|egrep -i 'index:|name:'
  * index: 0
    name: <auto_null>

Я даже не уверен, как выбрать эту карту в alsamixer; нажатие клавиши «F2» и просмотр /proc/asound/cards показывает это, но затем «F6» показывает только карту по умолчанию и пытается ввести другое значение, например «S3» (название карты), «1» или «hw1». или «hw: 1,0» просто возвращает «Невозможно открыть устройство микширования [что угодно]. Нет такого файла или каталога.»

Я пробовал множество решений, которые нашел; никто из них не работает. Например, добавление load-module module-alsa-sink device=hw:1,0 к /etc/pulse/default.pa не вызывает ошибку, но также не изменяет вывод pacmd list-sinks и не дает никакого звука.

Добавление файла конфигурации ALSA, состоящего из из:

pcm.!default {
    type hw
    card 1
}

ctl.!default {
    type hw
    card 1
}

делает доступной USB-карту для alsamixer, и я могу затем воспроизводить ее напрямую через ALSA, например, $ aplay test.wav, но она по-прежнему невидима для Pulse через list-sinks и если я пытаюсь воспроизвести что-либо через Pulse, я получаю ошибки или нет звука, например, с mocp sample.mp3 нет звука.

Я не могу себе представить, что это должно быть так сложно, поэтому я предполагаю, что ' Я упускаю что-то очевидное. Может кто-нибудь сказать мне, что это такое?

[РЕДАКТИРОВАТЬ:]

Вывод ls -l /dev/snd:

$ ls -l /dev/snd
total 0
drwxr-xr-x 2 root root       60 Jan 12 17:01 by-id
drwxr-xr-x 2 root root       80 Jan 12 17:01 by-path
crw-rw---- 1 root audio 116,  0 Jan 12 17:01 controlC0
crw-rw---- 1 root audio 116, 32 Jan 12 17:01 controlC1
crw-rw---- 1 root audio 116, 16 Jan 12 17:01 pcmC0D0p
crw-rw---- 1 root audio 116, 17 Jan 12 17:01 pcmC0D1p
crw-rw---- 1 root audio 116, 18 Jan 12 17:01 pcmC0D2p
crw-rw---- 1 root audio 116, 56 Jan 12 17:01 pcmC1D0c
crw-rw---- 1 root audio 116, 48 Jan 12 17:01 pcmC1D0p
crw-rw---- 1 root audio 116,  1 Jan 12 17:01 seq
crw-rw---- 1 root audio 116, 33 Jan 12 17:01 timer
...