USB DAC на Raspbian выдает ошибку

Сегодня я наконец-то получил USB-ЦАП (HiFimeDIY Sabre DAC) для своего Raspberry Pi (работающего на Raspbian Wheezy), но, конечно, просто подключить его не получится. Я довольно долго возился с настройкой ALSA, но безрезультатно. Воспроизведение звука через 3,5-дюймовый разъем для наушников работает нормально, но я не могу заставить звук воспроизводиться через USB. aplay -L дает

pi@raspberrypi ~ $ aplay -L
...
pulse
  Playback/recording through the PulseAudio sound server
  sysdefault:CARD=DAC
  HiFimeDIY DAC, USB Audio
  Default Audio Device
front:CARD=DAC
  HiFimeDIY DAC, USB Audio
  Default Audio Device
...
sysdefault:CARD=ALSA
  bcm2835 ALSA, bcm2835 ALSA
  Default Audio Device
front:CARD=ALSA
  bcm2835 ALSA, bcm2835 ALSA
  Default Audio Device

Интересно, хорошо ли, что обе карты помечены как «Аудиоустройство по умолчанию»?

В любом случае, тестирование воспроизведения через

 pi@raspberrypi ~ $ aplay /usr/share/sounds/alsa/Front_Center.wav -D sysdefault:CARD=ALSA
 Playback: WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian,  Rate: 48000 Hz, mono

работает нормально, но

 pi@raspberrypi ~ $ aplay /usr/share/sounds/alsa/Front_Center.wav -D sysdefault:CARD=DAC
 ALSA lib pcm_direct.c:980:(snd1_pcm_direct_initialize_slave) unable to install hw params
 ALSA lib pcm_dmix.c:1030:(snd_pcm_dmix_open) unable to initialize slave
 aplay: main:682: Fehler beim Öffnen des Gerätes: Datenübergabe unterbrochen (broken pipe)

(Извините за немецкий, там написано что-то вроде "Ошибка при открытии устройства: поток данных прерван")

Мой файл /etc/asound.conf выглядит следующим образом:

 pcm.!default {
 type hw
 card 0
 device 0
 }

и /etc/modprobe.d/alsa-base.conf имеет следующие записи:

# Keep snd-usb-audio from beeing loaded as first soundcard
options snd-usb-audio index=0
options snd_bcm2835 index=1

Что я делаю неправильно? Помощь будет высоко оценена!

Изменить:

Системлог говорит следующее:

Nov  7 18:30:29 raspberrypi kernel: [    2.534311] usb 1-1: new full-speed USB device number 2 using dwc_otg
Nov  7 18:30:29 raspberrypi kernel: [    2.546658] Indeed it is in host mode hprt0 = 00021501
Nov  7 18:30:29 raspberrypi kernel: [    2.752653] usb 1-1: not running at top speed; connect to a high speed hub
Nov  7 18:30:29 raspberrypi kernel: [    2.765131] usb 1-1: New USB device found, idVendor=0424, idProduct=9514
Nov  7 18:30:29 raspberrypi kernel: [    2.776874] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber$
Nov  7 18:30:29 raspberrypi kernel: [    2.790194] hub 1-1:1.0: USB hub found
Nov  7 18:30:29 raspberrypi kernel: [    2.799746] hub 1-1:1.0: 5 ports detected
Nov  7 18:30:29 raspberrypi kernel: [    3.082453] usb 1-1.1: new full-speed USB device number 3 using dwc_otg
Nov  7 18:30:29 raspberrypi kernel: [    3.192745] usb 1-1.1: not running at top speed; connect to a high speed hub
Nov  7 18:30:29 raspberrypi kernel: [    3.205857] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
Nov  7 18:30:29 raspberrypi kernel: [    3.218650] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumb$
Nov  7 18:30:29 raspberrypi kernel: [    3.239311] smsc95xx v1.0.4

...

Nov  7 18:30:29 raspberrypi kernel: [    3.308141] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-bcm2708_usb$
Nov  7 18:30:29 raspberrypi kernel: [    3.432526] usb 1-1.3: new full-speed USB device number 4 using dwc_otg
Nov  7 18:30:29 raspberrypi kernel: [    3.626813] usb 1-1.3: New USB device found, idVendor=1852, idProduct=7022
Nov  7 18:30:29 raspberrypi kernel: [    3.647601] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumb$
Nov  7 18:30:29 raspberrypi kernel: [    3.664695] usb 1-1.3: Product: HiFimeDIY DAC
Nov  7 18:30:29 raspberrypi kernel: [    3.676431] usb 1-1.3: Manufacturer: HiFimeDIY Audio
Nov  7 18:30:29 raspberrypi kernel: [    3.703597] input: HiFimeDIY Audio HiFimeDIY DAC as /devices/platform/bcm27$
Nov  7 18:30:29 raspberrypi kernel: [    3.721606] hid-generic 0003:1852:7022.0001: input,hidraw0: USB HID v1.00 D$
Nov  7 18:30:29 raspberrypi kernel: [    7.529882] usbcore: registered new interface driver snd-usb-audio

но как только процесс загрузки завершен, я получаю это миллион раз подряд:

Nov  7 18:30:38 raspberrypi kernel: [   41.221205] INFO:: schedule_periodic: Insufficient periodic bandwidth for p$
Nov  7 18:30:38 raspberrypi kernel: [   41.221205]
Nov  7 18:30:38 raspberrypi kernel: [   41.221261] ERROR::dwc_otg_hcd_urb_enqueue:544: DWC OTG HCD URB Enqueue fai$
Nov  7 18:30:38 raspberrypi kernel: [   41.221261]
Nov  7 18:30:38 raspberrypi kernel: [   41.221288] cannot submit urb 0, error -1: unknown error

Также:

Nov  7 18:45:21 raspberrypi kernel: [  861.969647] bcm2835_audio_set_ctls:558  Controls set for stream 0
Nov  7 18:47:58 raspberrypi pulseaudio[2390]: [pulseaudio] module-always-sink.c: Unable to load module-null-sink

и

Nov  7 18:48:46 raspberrypi pulseaudio[2494]: [pulseaudio] module-udev-detect.c: Tried to configure /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.1/sound/card0 (alsa_card.usb-HiFimeDIY_Audio_HiFimeDIY_DAC-01-DAC) more often than 5 times in 10 seconds

Редактировать 2:

Содержимое /proc/asound/card0/stream0

HiFimeDIY Audio HiFimeDIY DAC at usb-bcm2708_usb-1.3, full speed : USB Audio

Playback:
 Status: Stop
 Interface 3
  Altset 1
  Format: S16_LE
  Channels: 2
  Endpoint: 3 OUT (ADAPTIVE)
  Rates: 8000, 16000, 32000, 44100, 48000, 96000
 Interface 3
  Altset 2
  Format: S24_3LE
  Channels: 2
  Endpoint: 3 OUT (ADAPTIVE)
  Rates: 8000, 16000, 32000, 44100, 48000, 96000

Capture:
 Status: Stop
 Interface 2
  Altset 1
  Format: S16_LE
  Channels: 2
  Endpoint: 2 IN (ADAPTIVE)
  Rates: 8000, 16000, 32000, 44100, 48000, 96000
 Interface 2
  Altset 2
  Format: S24_3LE
  Channels: 2
  Endpoint: 2 IN (ADAPTIVE)
  Rates: 8000, 16000, 32000, 44100, 48000, 96000

Каждый раз, когда я хочу принудительно передать звук через USB-карту (ниже я установил ее как аудиоустройство по умолчанию в .asoundrc), я получаю

pi@raspberrypi ~ $ aplay piano2.wav Wiedergabe: WAVE 'piano2.wav' : Signed 16 bit Little Endian, Rate: 48000 Hz, stereo aplay: set_params:1145: Fehler beim Setzen der Hardware-Parameter: ACCESS: RW_INTERLEAVED FORMAT: S16_LE SUBFORMAT: STD SAMPLE_BITS: 16 FRAME_BITS: 32 CHANNELS: 2 RATE: 48000 PERIOD_TIME: 125000 PERIOD_SIZE: 6000 PERIOD_BYTES: 24000 PERIODS: 4 BUFFER_TIME: 500000 BUFFER_SIZE: 24000 BUFFER_BYTES: 96000 TICK_TIME: 0

(немецкая часть говорит: «aplay: set_params:1145: невозможно установить hw params:»). Кроме того, aplay -L по-прежнему дает мне

Karte 0: DAC [HiFimeDIY DAC], Gerät 0: USB Audio [USB Audio]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: DAC [HiFimeDIY DAC], Gerät 1: USB Audio [USB Audio #1]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

и когда я использую aplay -D hw:0,1 sound.wav, воспроизведение вроде работает (сообщение об ошибке не выбрасывается), но я вообще ничего не слышу. Является ли Card 0,1 записывающим устройством? Если я использую встроенный звук, все работает нормально. Я не использую USB-концентратор (ЦАП подключен непосредственно к пи). Может это проблема с питанием?

lsusb имеет

pi@raspberrypi ~ $ lsusb Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 1852:7022 GYROCOM C&C Co., LTD

На данный момент принтер подключен (правда, выключен) и его отключение ничего не меняет, lsusb по-прежнему показывает те же устройства (мне интересно, почему их 4 и 3 разные, а у Pi только 2 порта, в один из которых ЦАП). При запуске пи и подключении динамиков к цапу у меня слышно пару потрескиваний, как при подключении их в разъем для наушников.


person Vmaxx    schedule 07.11.2014    source источник
comment
Что за сообщение об ошибке в системном журнале?   -  person CL.    schedule 07.11.2014
comment
Добавлен системный журнал, по крайней мере, то, что я думал, может представлять интерес   -  person Vmaxx    schedule 08.11.2014
comment
Если ваш вопрос не о программировании, он не по теме, и вам лучше задать его на raspberrypi.stackexchange.com.   -  person nos    schedule 08.11.2014
comment
Спасибо, заметил это слишком поздно, когда уже задал вопрос   -  person Vmaxx    schedule 08.11.2014
comment
Есть ли у вас другие USB-устройства (см. lsusb)? Каково содержимое /proc/asound/card0/stream0?   -  person CL.    schedule 08.11.2014
comment
Никаких других USB-устройств. Добавлена ​​дополнительная информация об ошибках, возникающих в разделе «Правка 2». Я думаю, что ошибка, которую я опубликовал сейчас, тесно связана с содержимым /proc/asound/card0/stream0. Спасибо, что подумали об этом!   -  person Vmaxx    schedule 08.11.2014
comment
Это не проблема питания, я подключил ЦАП через активный USB-концентратор к Pi с теми же результатами: aplay: set_params:1145: невозможно установить параметры hw   -  person Vmaxx    schedule 14.11.2014


Ответы (2)


Даже я столкнулся с подобной проблемой.


Возможное решение:

Проверьте конфигурации ядра ( zcat /proc/config.gz | grep 'CONFIG_FW_LOADER' ). Если эта конфигурация не включена, попробуйте собрать ядро ​​с этой включенной конфигурацией. Я попробовал аналогичный подход в другом ядре для одной и той же корневой файловой системы, а затем проверил конфигурации, которые я нашел в приведенном выше решении.

Спасибо и С уважением, Сандеш К.А.

Дайте мне знать, если это решение сработало для вас.

person SANDESH K A    schedule 03.04.2016

Некоторое время назад я столкнулся с той же проблемой. Мне удалось исправить это, дважды проверив файлы конфигурации. В моем случае я запустил микшер alsa после того, как настроил ~/.asoundrc. При запуске микшера alsa / отключении USB-накопителя alsa автоматически обновляет файл ~/.asoundrc. Следовательно, перезаписал мой предыдущий config.

Перед повторной попыткой убедитесь, что ваши изменения в файле conf все еще в силе. Я надеюсь, что это работает и на вас.

Настройте USB-микрофон Raspberry Pi 3 ( креативный звуковой бластер )

person Wreeecks    schedule 27.09.2016