Hi.
Just received and hooked up the DAC+.
I'm running a pretty standard ArchLinux.
Modules:
[root@archie ~]# lsmod
Module Size Used by
snd_soc_tas5713 5597 0
snd_soc_bcm2708_i2s 6202 0
regmap_mmio 2838 1 snd_soc_bcm2708_i2s
snd_soc_core 155972 2 snd_soc_tas5713,snd_soc_bcm2708_i2s
snd_compress 8351 1 snd_soc_core
snd_pcm_dmaengine 5533 1 snd_soc_core
snd_pcm 81802 2 snd_soc_core,snd_pcm_dmaengine
snd_page_alloc 5192 1 snd_pcm
leds_gpio 2142 0
led_class 4162 1 leds_gpio
snd_timer 20370 1 snd_pcm
spi_bcm2708 4844 0
i2c_bcm2708 4895 0
snd 62046 4 snd_soc_core,snd_timer,snd_pcm,snd_compress
regmap_spi 1941 1 snd_soc_core
regmap_i2c 1685 2 snd_soc_core,snd_soc_tas5713
bcm2708_rng 1044 0
rng_core 4159 1 bcm2708_rng
ipv6 320186 0
Some potenially conflicting modules are blacklisted already.
My kernel:
[root@archie ~]# uname -a
Linux archie 3.12.28-2-ARCH #1 PREEMPT Mon Sep 22 02:02:11 MDT 2014 armv6l GNU/Linux
The modules
snd_soc_pcm5102a
snd_soc_hifiberry_dac
are available and can be loaded. I can also see the DAC in /proc/asound or aplay for a short time. But the system hangs up soon.
I do miss the bcm2708_dmaengine module as it seems. I can't get it loaded. Can't find it under /lib/modules. Probably it's not part of the Arch-kernel. This might be the issue.
Though as far as I know the Arch team tries to stay pretty close to the Rasbian kernel folks.
Any help is appreciated.
Thx
Date
Votes
22 comments
-
HiFiBerry team The DAC+ does not use the modules
snd_soc_pcm5102a
snd_soc_hifiberry_dac
but
snd_soc_hifiberry_dacplus
You should also not load snd_soc_tas5713
The dma engine has been renamed to snd_pcm_dmaengine, this should be ok.
Best regards
Daniel -
Klaus Schulz Thx.
I'll check it out.
You might update your documentation. The last time I looked (yesterday) your info wasn't introduced.
Please clearly state modules to be loaded and blacklisted modules that might interfere. As you know, most of
the Distros come with the onboard audio stuff and more enabled.
That'll make life a bit easier.
You might add your "lsmod" and "uname -a" output of your raspi installations as example to your documentation as reference.
Thx again.
Cheers -
Klaus Schulz Just saw that the snd_soc_hifiberry_dacplus module is available on my Arch image. That's good.
I'll check later today if it works.
Cheers -
Klaus Schulz snd_soc_bcm2708 is not available in my kernel.
I also tried to install a newer 3.16 kernel. No success.
Then I found a http://www.hifiberry.com/forums/topic/snd_soc_bcm2708/
where you state that above modules is no more required in newer?? kernels !?!?
Hmmh. Am I chasing ghosts ???
The board is still not recognized by Alsa. -
Klaus Schulz I don't make it work.
Find enclosed my logs. If you need more let me know.
#################################################################
[root@archie ~]# cat /etc/modules-load.d/raspberrypi.conf
#bcm2708-rng
#snd_soc_bcm2708 ## not available
#snd_pcm_dmaengine ## gets automatically loaded
snd_soc_hifiberry_dacplus
##################################################################
[root@archie ~]# cat /etc/modprobe.d/modules.conf
blacklist i2c-bcm2708
blacklist snd_soc_bcm2708_i2s
blacklist snd_soc_pcm512x
blacklist snd_usb_audio
blacklist snd_soc_tas5713
blacklist ipv6
blacklist leds_gpio
blacklist led_class
[root@archie ~]#
############################################################
[root@archie ~]# zcat /proc/config.gz | grep -i bcm2708
CONFIG_ARCH_BCM2708=y
# Broadcom BCM2708 Implementations
CONFIG_MACH_BCM2708=y
CONFIG_BCM2708_GPIO=y
CONFIG_BCM2708_VCMEM=y
# CONFIG_BCM2708_NOL2CACHE is not set
CONFIG_BCM2708_SPIDEV=y
CONFIG_BCM2708_VCHIQ=y
CONFIG_HW_RANDOM_BCM2708=m
CONFIG_I2C_BCM2708=m
CONFIG_I2C_BCM2708_BAUDRATE=100000
CONFIG_SPI_BCM2708=m
CONFIG_BCM2708_WDT=m
CONFIG_FB_BCM2708=y
CONFIG_SND_BCM2708_SOC_I2S=m
CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC=m
CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS=m
CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI=m
CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m
CONFIG_SND_BCM2708_SOC_RPI_DAC=m
CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC=m
CONFIG_MMC_SDHCI_BCM2708=y
CONFIG_MMC_SDHCI_BCM2708_DMA=y
CONFIG_DMA_BCM2708=y
##############################################################
[root@archie ~]# find /lib/modules -name "*" -print | grep -i snd-soc
/lib/modules/3.12.28-2-ARCH/kernel/sound/soc/codecs/snd-soc-wm8804.ko.gz
/lib/modules/3.12.28-2-ARCH/kernel/sound/soc/codecs/snd-soc-pcm512x.ko.gz
/lib/modules/3.12.28-2-ARCH/kernel/sound/soc/codecs/snd-soc-tas5713.ko.gz
/lib/modules/3.12.28-2-ARCH/kernel/sound/soc/codecs/snd-soc-pcm1794a.ko.gz
/lib/modules/3.12.28-2-ARCH/kernel/sound/soc/codecs/snd-soc-pcm5102a.ko.gz
/lib/modules/3.12.28-2-ARCH/kernel/sound/soc/bcm/snd-soc-iqaudio-dac.ko.gz
/lib/modules/3.12.28-2-ARCH/kernel/sound/soc/bcm/snd-soc-hifiberry-amp.ko.gz
/lib/modules/3.12.28-2-ARCH/kernel/sound/soc/bcm/snd-soc-hifiberry-digi.ko.gz
/lib/modules/3.12.28-2-ARCH/kernel/sound/soc/bcm/snd-soc-rpi-dac.ko.gz
/lib/modules/3.12.28-2-ARCH/kernel/sound/soc/bcm/snd-soc-hifiberry-dacplus.ko.gz
/lib/modules/3.12.28-2-ARCH/kernel/sound/soc/bcm/snd-soc-hifiberry-dac.ko.gz
/lib/modules/3.12.28-2-ARCH/kernel/sound/soc/bcm/snd-soc-bcm2708-i2s.ko.gz
/lib/modules/3.12.28-2-ARCH/kernel/sound/soc/snd-soc-core.ko.gz
###############################################################
[root@archie ~]# lsmod
Module Size Used by
spi_bcm2708 4844 0
snd_soc_hifiberry_dacplus 2351 0
snd_soc_core 155972 1 snd_soc_hifiberry_dacplus
snd_compress 8351 1 snd_soc_core
snd_pcm_dmaengine 5533 1 snd_soc_core
snd_pcm 81802 2 snd_soc_core,snd_pcm_dmaengine
snd_page_alloc 5192 1 snd_pcm
snd_timer 20370 1 snd_pcm
snd 62046 4 snd_soc_core,snd_timer,snd_pcm,snd_compress
regmap_spi 1941 1 snd_soc_core
regmap_i2c 1685 1 snd_soc_core -
HiFiBerry team Dear Klaus,
the modules that need to be loaded are documented here:
http://www.hifiberry.com/guides/hifiberry-software-configuration/
Is there still another page with incorrect information? If yes, please send us the link that we can correct the information.
Best regard,
Daniel -
Klaus Schulz Hi.
Just installed your Raspbian Test image. That one works. The testtone is played back. At least I
know that the DAC is working.
Unfortunately I can't ssh into you Image to see what's different compared to my Arch setup.
It can't be that much differerent. Arch and Rasbian most probably use very similar kernels. And it's
mainly the kernel and the Alsa version which can make the difference.
Ok. I'm slightly overclocking (900MHz) my ARch install. But that shouldn't make a difference I'd guess.
One strange thing happened during a test when activating other snd modules step by step. When loading the snd_soc_pcm512x module a sound card Hifiberry was recognized (aplay -l)!! It wouldn't work though. -
Klaus Schulz Daniel.
Your document is flawed. Have a look at the
For the B+ and DAC+:
modules
snd_soc_bcm2708 ## gets automatically loaded with your snd_soc_hifiberry_dacplus
bcm2708_dmaengine ## no longer avlailable or replaced with snd_pcm_dmaengine
blacklist:
snd_soc_tas5713 ## not listed.
Beside that it would be helpful to see your lsmod listing and a kernel reference!!
My earlier post reflects these issues with your document and recommendations.
Of course -- related to my Arch setup and my 3.12.28-2-ARCH kernel.
One more. With the DAC modules you were also loading the 5102 module. That's gone with the DAC+.
However. Loading the snd_soc_pcm512x brought the DAC+ up half the way at least. What's wrong there?
Do I miss a kernel patch on my Arch kernel sources? -
HiFiBerry team Dear laus,
unfortunately the name of some module have changed. We will update this. Arch Linux might have a different blacklist then Raspbian.
We won't provide an lsmod output as the default modules change from time to time and different distributions use different modules.
In your modules it looks like you blacklisted "i2c-bcm2708". This module is needed. Without it no communication between Linux and the sound card is possible. Make sure that this module can be loaded.
What do you mean by it worked "halfway"? What is working, what isn't?
Best regards
Daniel -
Klaus Schulz If I do a modprobe snd_soc_pcm512x_i2c --- and only then -- the led on the DAC+ goes on. At that time aplay shows a
card 0: sndrpihifiberry [snd_rpi_hifiberry_dacplus], device 0: HiFiBerry DAC+ HiFi pcm512x-hifi-0 []
But at that poit the system gets unstable. It locks up for a while, when running a simple ls or aplay -l or similar.
Daniel.
If you post a basic "lsmod" related to your 3.12.28-2 kernel there won't be any naming issues I'd guess.
You could also load a basic Arch system image from the official RPI image download page and have a quick look yourself.
Cheers -
HiFiBerry team Hi Klaus,
I don't have a 3.12.28 kernel here, Raspbian already is using 3.12.29.
If the system is running unstable, this looks more like a power supply problem than a driver issue. However it can be also an incompatibility between different modules on your Arch linux installation. Is there any specific reason you use Arch Linux.
Unfortunately we don't have the resources to test any available distribution, therefore we recommend using with Raspbian.
Best regards
Daniel -
Klaus Schulz The Arch distro is not "any" Distro. It's one of the very few offcially supported distros which you can download from the official RPI page. I'd expect that you'd at least support and test these. They all use pretty much the same kernel sources and firmware. It's just another SD card you plug in and boot up.
I'm using Arch because it is a bleeding edge and a rolling release distro. With Debian you'll be usually years behind current developments, packages, compilers etc. . (I'm actually running the 3.16 Arch kernel, I only rolled back to 3.12 because of Hifiberry btw.)
Obviously the advantage of Debian based systems are stability (which doesn't apply for new(est) HW), package availability
and less manual interactions.
If you use the 3.12.29 kernel and you tested your modules against it, you should mention it in your document.
Obviously your installation document needs descriptions on a per kernel and Alsa revision basis.
A pity that I've chosen the wrong DAC module.
PS:
The PS is stable. Your Rasbian test image works! I think I mentioned that before. And I'm using the module for quite some time with a nice little PCM5102 USB DAC - which is giving me much less hazzle. -
HiFiBerry team Dear Klaus,
I'm very sorry that your not happy with the HiFiBerry DAC.
The status of support can be found here:
http://www.hifiberry.com/guides/supportedsoftware/
We know that many customers use different distributions, which work usually well. I'm also aware of at least one Arch-based distribution that supports our DAC (the release is not officially available, but will be soon).
If Arch Linux is using exactly the same kernel sources and compilation options, it should work with the documentation we have provided.
I think, the best for you is sending us back the DAC. We will refund your money after receiving it back. Please return it and note your order number on the return.
Best regards
Daniel -
HiFiBerry team Dear Klaus,
I have tested ArchLinux. The modules file has been configured exactly the way as it is documented here:
http://www.hifiberry.com/guides/hifiberry-software-configuration/
(the only issue is that it is at another location in Arch linux).
It doesn't matter that some modules have been renamed as the important modules will be loaded with this configuration.
No blacklists have been changed, no other configurations have been changed. Only /etc/asoundrc has been configured as
shown in the configuration guide linked above.
Kernel is 3.12.28
This is the lsmod output:
Module Size Used by
cfg80211 440137 0
evdev 10444 0
joydev 9030 0
snd_soc_wm8804 7940 0
snd_soc_pcm512x 9034 1
snd_soc_tas5713 5597 0
hid_logitech_dj 11241 0
leds_gpio 2142 0
led_class 4162 1 leds_gpio
spi_bcm2708 4844 0
i2c_bcm2708 4895 0
snd_soc_bcm2708_i2s 6202 2
regmap_mmio 2838 1 snd_soc_bcm2708_i2s
snd_soc_hifiberry_dacplus 2351 0
snd_soc_core 155972 5 snd_soc_pcm512x,snd_soc_wm8804,snd_soc_tas5713,snd_soc_hifiberry_dacplus,snd_soc_bcm2708_i2s
snd_compress 8351 1 snd_soc_core
snd_pcm_dmaengine 5533 1 snd_soc_core
snd_pcm 81802 2 snd_soc_core,snd_pcm_dmaengine
snd_page_alloc 5192 1 snd_pcm
snd_timer 20370 1 snd_pcm
snd 62046 4 snd_soc_core,snd_timer,snd_pcm,snd_compress
regmap_spi 1941 3 snd_soc_pcm512x,snd_soc_wm8804,snd_soc_core
regmap_i2c 1685 4 snd_soc_pcm512x,snd_soc_wm8804,snd_soc_core,snd_soc_tas5713
bcm2708_rng 1044 0
rng_core 4159 1 bcm2708_rng
ipv6 320186 0
The HiFiBerry DAC+ is recognized and works without problem. If this does not work in your case, it can have different reasons:
- Your hardware has a problem. This can be the power supply, the Raspberry Pi itself or the DAC. As our boards are tested before shipping, is is relatively unlikely that the board itself is the problem.
- You have done some other configurations that interfere with the HiFiBerry driver
- You have software running that reconfigures the GPIOs that are used by the HiFiBerry DAC+.
My best guess is still that the power supply is the problem. Even if the test image is working, different load situations might still create problems.
Best regards
Daniel -
Klaus Schulz Ok. I saw in the forum that I'm not the only onw having problems with the B+ and DAC+.
Anyhow I keep trying.
I'm one step further now.
I just loaded
snd_soc_hifiberry_dacplus
and blacklisted
blacklist snd_soc_wm8804
blacklist snd_soc_tas5713
That leads to:
[root@archie ~]# lsmod
Module Size Used by
snd_soc_pcm512x_i2c 1933 1
snd_soc_pcm512x 8142 1 snd_soc_pcm512x_i2c
regmap_i2c 2554 1 snd_soc_pcm512x_i2c
spi_bcm2708 5458 0
i2c_bcm2708 5468 0
snd_soc_bcm2708_i2s 6182 2
regmap_mmio 3270 1 snd_soc_bcm2708_i2s
snd_soc_hifiberry_dacplus 2469 0
snd_soc_core 155635 3 snd_soc_pcm512x,snd_soc_hifiberry_dacplus,snd_soc_bcm2708_i2s
snd_compress 8109 1 snd_soc_core
snd_pcm_dmaengine 5443 1 snd_soc_core
snd_pcm 85710 2 snd_soc_core,snd_pcm_dmaengine
snd_timer 20710 1 snd_pcm
snd 61424 4 snd_soc_core,snd_timer,snd_pcm,snd_compress
Which seesm to look OK to me now. Please check!
The LED on the DAC+ module turns on after booting. Great.
No hard lockups, like yesterday. Great.
Test:
aplay -D plughw:0,0 -r 44100 -c 2 -f S16_LE test16.wav
produced sound after fidling around with the alsamixer settings! ( Is there any documentation about these/your alsamixer settings?? E.g. Playback Digital needs to be turned on to play Analog !?!? I guess there are more settings that need some explanantion.)
!!!!!Now when trying a 24bit file:
[root@archie ~]# aplay -D plughw:0,0 -r 44100 -c 2 -f S24_3LE test24.wav
Playing WAVE 'test.wav' : Signed 24 bit Little Endian in 3bytes, Rate 44100 Hz, Stereo
aplay: set_params:1297: Unable to install hw params:
ACCESS: RW_INTERLEAVED
FORMAT: S24_3LE
SUBFORMAT: STD
SAMPLE_BITS: 24
FRAME_BITS: 48
CHANNELS: 2
RATE: 44100
PERIOD_TIME: (125011 125012)
PERIOD_SIZE: 5513
PERIOD_BYTES: 33078
PERIODS: 4
BUFFER_TIME: (500045 500046)
BUFFER_SIZE: 22052
BUFFER_BYTES: 132312
TICK_TIME: 0
The driver dumps!!!!!!! Even the LED on the DAC+ board turns off. This doesn't look good. Not at all.
Please check!!!!!!!!!!!!!!!!!
The other strange thing with your driver is. There is no stream0 file under /proc/asound/card0.
That one usually (with USB DACs at least) shows all available parameters that can be send to the audio interface.
Cheers -
HiFiBerry team Dear Klaus,
24bit playback is not supported by the Raspberry Pi I2S driver as of today, as there are problems with XBMC at the moment. Therefore the Kernel maintainer decided to disable it at the moment. You can use 16bit and 32bit playback.
The LED turns off when playback is stopped, this is normal. When you start playback again, it will turn on again.
About the stream0 file. I guess, the Linux driver does not implement it. We haven't heard about any program that needs it.
What do you mean with "all available parameters"?
Best regards
Daniel -
Klaus Schulz Surprise surprise.
You have specified that that Hifiberry supports 24bits!!!
That's been a buying reason for me! I'm not interested in a broken driver. I'd love to return that device. Let me know how that works!
The day before yesterday I always tried with a 24bit file first btw. No wonder I didn't make it work.
Man, you guys cost me a day of hazzle and another set of grey hairs. Please document those limitations - if not done yet!
The problem also seems that the driver doesn't even announce/offer the 32 bit as it seems.
That's why plughw is not working. Alsa can't change the bitdpeth on its own. Otherwise it would do it, if
I recall it correctly. Maybe that has a similar background then the missing stream0 file.
"All available parameters". That file shows e.g. what bitrates and samplerates are offerd by the driver.
Just hook up a USB DAC with a proper driver and you'll see what I mean.
Probably the driver is not announcing anything towards Alsa.
And please. Have a look at the Alsamixer and its related controls. That looks not good or rather weired to me.
Thx -
HiFiBerry team Dear Klaus,
The DAC does support 24bit, you just need the use the 32bit data format. You just need to use an application that is a bit more clever than the trivial aplay. For instance mplayer works without problems. Also a lot of audio distributions like Volumio can playback 24bit files without problems.
Please return your DAC+ to us. We will refund it after we received it.
Modul 9 GmbH
Bachmattstr. 23
CH-8932 Mettmenstetten
Best regards
Daniel -
Klaus Schulz You does not support 24bit!
You support 16 and 32 bit for the time being.
All you can offer currently, is a workaround in using this or that application!
That's a difference.
If even aplay doesn't work, I/you probably will face issues with much more apps out there.
You shouldn't ever release a product that's not compatible with aplay/speakertest etc. There
are hundreds of guides out there refering to these kind of apps as test base.
Looking at your very limited time you mentioned earlier, you'll keep yourself busy with these kind of discussions instead of getting the drivers and docs right. You could even test an Arch Linux image.
Anyhow. As I understood you're working on a solution. That's good.
I'll send my module back anyhow.
Good luck.
Klaus (aka soundcheck - blog/and several (diy-)audio forums) -
no_bulbs Hi,
I just wanted to leave a short reply. Since this is one of the first entries you find about Arch Linux and the Hifiberry Dac via google: I own a DAC+ and run Arch Linux on my Raspberry Pi 2 B. Getting the HifiBerry to work was very easy following the guide for "Configuring Linux 3.18.x". No problems here (I'm using gmediarender on the Pi to stream music).
Regards
no_bulbs -
nezhac Hi no_bulbs,
Could you elaborate a bit on what you configured to make it work with Arch? Specifically which modules you loaded and which configuration files you used to do this.
I've been following this thread and have had a bit of a hard time installing the DAC+ for use on a RPi 2 with Arch.
I had tried the instructions for Linux 3.12 available here https://www.hifiberry.com/guides/hifiberry-software-configuration/
Did you use those for 3.18 with dtoverlay? Did you also just edit /boot/config.txt to get this?
Thanks -
no_bulbs Hi nezhac,
I think I just made the steps described in the mentioned guide for Linux 3.18 under https://www.hifiberry.com/guides/configuring-linux-3-18-x/
I can check the configuration back at home if you like.
Kind regards
Florian
Please sign in to leave a comment.