what does dtoverlay=hifiberry-dac actually do?

Previously the Dac+ Zero on my Zero W worked just fine without touching the config.txt. Now there isn't an audio device any more.

If I add dtoverlay=hifiberry-dac to config.txt the hifiberry appears again, but doesn't seem to work.

Odd is, that even if the hifiberry isn't installed at all, the device is listed.

What does dtoverlay actually do?

Is there any newer guide than https://www.hifiberry.com/docs/software/configuring-linux-3-18-x

output with dtoverlay set no matter if hifiberry actually is installed or not:

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 [HifiBerry D
AC HiFi pcm5102a-hifi-0]
 Subdevices: 0/1
 Subdevice #0: subdevice #0

$ speaker-test  
speaker-test 1.1.8
Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Playback open error: -16,Device or resource busy

This is a Zero W with headless raspian buster kernel 5.10.17

I tried the hifiberry on my Raspberry 3B with librelec 9.2 installed, but I wasn't able to find out anything about audio devices. Seems librelec uses a different audio system? Could not find config.txt on libreelec either.

zero with hifiberry installed:

001831.767: Loaded overlay 'hifiberry-dac'
001838.798: dtdebug: merge_fragment(/soc/i2s@7e203000,/fragment@0/__overlay__)
001838.825: dtdebug:   +prop(status)
001839.418: dtdebug: merge_fragment() end
001839.575: dtdebug: merge_fragment(/,/fragment@1/__overlay__)
001846.426: dtdebug: merge_fragment(/pcm5102a-codec,/fragment@1/__overlay__/pcm5102a-codec)
001846.454: dtdebug:   +prop(#sound-dai-cells)
001847.347: dtdebug:   +prop(compatible)
001848.165: dtdebug:   +prop(status)
001849.041: dtdebug: merge_fragment() end
001849.070: dtdebug: merge_fragment() end
001859.624: dtdebug: merge_fragment(/soc/sound,/fragment@2/__overlay__)
001859.651: dtdebug:   +prop(compatible)
001859.984: dtdebug:   +prop(i2s-controller)
001860.614: dtdebug:   +prop(status)
001860.948: dtdebug: merge_fragment() end

thanks for any help.

1 comment

Please sign in to leave a comment.