Volumio Network Problem

Volumio Information

Volumio Version: 2.907
Hardware: RPi 3b
DAC: No

As soon as I set the device to “Always the same IPv4 address” within the router config, Volumio is not getting a proper ip anymore and the UI goes into a bootloop, ringing every few seconds.

Whatever the router is doing, this is also a shortcoming of Volumio so I thought to share it here and to figure it out together.

I noticed the following within the logs:
dhcpcd using ipv4LL address 169.254.125.135

as well as

dhcpcd not running because there is already an interface specific instance.

As far as I know, dhcpcd and /etc/network/interfaces must not be configured both at the same time.

Any ideas?

Thanks a lot!

1 Like

Alright. I suspect the problem coming from a fu**** up firmware of the Telekom Speedport Smart 3 router.

First

The Always the same IPv4 address option of the router is apparently not doing what it’s supposed to to.

Hence I need to manually set a static ip on client side.

Second

On Volumio, /etc/network/interfaces and dhcpcd both run – that’s not good. Either, or.

In terms of Volumio development, I would aim for dhcpcd.

But my gut feeling told me to go for the legacy /etc/network/interfaces now.

So, what I did is

sudo systemctl disable dhcpcd

as well as change eth0 from dhcp to static in /etc/network/interfaces:

auto wlan0
auto lo
iface lo inet loopback

allow-hotplug eth0
#iface eth0 inet dhcp
iface eth0 inet static
    address 192.168.2.99
    gateway 192.168.2.1
    netmask 255.255.255.0
    dns-nameservers 192.168.2.1
    post-up /sbin/ifconfig $IFACE mtu 1500

allow-hotplug wlan0
iface wlan0 inet manual

Edit 1

My gut feeling was right. /static/volumio/app/plugins/system_controller/network/index.js has a hard-coded configuration for /etc/network/interfaces within.

That means, when I change my network settings on the web ui, /etc/network/interfaces gets overwritten.

So, for now: Make the web ui network settings, manually alter /etc/network/interfaces and don’t touch the web ui on this one again.

some routers have problems with dhcp if you use a static ip it will work :slight_smile:

the 192.168.2.99 should be the good one if this is your pi.

To me, DHCP is one of the very core functions of a router.

But you have to go through (Telekom) first level support hell in order to have the chance to reach someone responsible, that is to have the chance to have it fixed in an unforeseeable amount of time.

I’m gonna incorporate an edit in my post above.

dhcp is not smart to do because if you reboot you will have a different ip every time.
with static ip for volumio you always know your ip, btw for your router you could use dhcp.

Unless this option would work. E.g. every FritzBox has this option since ages.
This is an internal list so that the DHCP always assigns the same address to this specific device.

But for me, the DHCPOFFER never seems to come.

a router should not have that problem. volumio has in some releases i found out the hard way.
so i use always static for volumio.

The static ip configuration on the web ui for Ethernet seems to be broken (it doesn’t even work after a factory reset for me).
The details don’t make it to the /etc/network/interfaces and the RPi gets the link local ip again.

So, my final touch on this issue:

  1. Disable wifi and bluetooth by adding the following to /boot/userconfig.txt (I don’t need them and they interfere with the bt of my amplifier):
dtoverlay=disable-wifi
dtoverlay=disable-bt
  1. Manually change /etc/network/interfaces to
auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
    address 192.168.2.99
    gateway 192.168.2.1
    netmask 255.255.255.0
    dns-nameservers 192.168.2.1
    post-up /sbin/ifconfig $IFACE mtu 1500

whereat gateway and dns-nameservers is my routers ip and address is an ip outside of the dhcp range of my routers dhcp.

  1. Make a local copy of /etc/network/interfaces in case of update-interference.

  2. Never touch the network section of the web ui again.

1 Like

Thanks for the detailed info.
I assign static IP adress in the router to every local device based also in Mac adress.

As far as I am aware static IP addresses are dealt with in Volumio by ‘dhcpcd’. The old ‘interfaces’ file has not been used for a long time.

That might partially be true – I haven’t gone through the whole logic of /static/volumio/app/plugins/system_controller/network/index.js.

But you can clearly see there that /etc/network/interfaces and dhcpcd are both touched and this is a typical havoc scenario.

You can verify that easily: Change your network settings and the interfaces-file will be changed – at least that is the case for me.

Everything in my house, including the Volumio Raspberry pi, uses DHCP. However, once the pi connected to the router, I used a router feature to reserve that IP address for the pi. It’s not static; it’s reserved. So when the pi sends a DHCP request for an IP address, the router returns the address previously reserved for it. My router is a D-Link AX1800 Wi-Fi 6, model DIR-X1870.

Reserved IP addresses are within the DHCP address range that you configure. Static addresses must be outside the DHCP address range to avoid contention. For example, you might allocate 192.168.1.2 through 192.168.1.100 for DCHP and use .101 or above for static addresses (if you actually need static addresses).

This all works most of the time for me. Sometimes, though, just when I want to play music, my iPhone can’t connect to Volumio. It might 10 minutes later. Very annoying. Once, I was about to sell speakers to someone, and just when I needed to demonstrate them, the iPhone could not connect to Volumio! I had to use a laptop with VLC media player instead!

This very functionality is broken on the “Speedport Smart 3” routers as of now and setting a static IP on my devices was less of a pain than getting the Telekom to fix it.