TechTalk: What’s this error -517?

When looking at the boot messages in the system log, you might find some messages like this:

ASoC: failed to init link HiFiBerry DAC+: -517

That doesn’t look right – but it is.

To understand what’s going on, let’s have a look at include/linux/errno.h in the Linux kernel:

#define EPROBE_DEFER517/* Driver requests probe retry */

Ok, seems to be some “retry” – but why? Why can’t it work the first time.

As modern PCs and even the Raspberry Pi can run multiple processes in parallel, modern operating systems have been optimized to support this. This means there is no fixed order in which kernel modules are loaded, but as much as possible is running in parallel. This can lead to a situation where one kernel module (e.g. the hifiberry-dacplus driver) requires some functions from another kernel module (e.g. the underlying sound driver) that’s not yet loaded. In this case, it just return the code 517 to say: “I’m waiting for some other stuff that’s not yet there, please let me try again later”. And that’s exactly what you’re seeing here.

After some time, you should something like this:

pcm512x-hifi <-> 3f203000.i2s mapping ok

This now tells you that the sound card driver has been connected to the underlying sound subsystem driver and is ready now.

October 20, 2020

Subscribe to new blog posts