Volumio 4 Feedback Thread

Hey @maxxxmm,

The image shows exactly what is happening. Your EEPROM configuration is correct - the bootloader IS attempting USB first (“mode USB-MSD 4 order f14”). The USB drive IS detected and enumerated:

USB3[3] 00281203 connected enabled
MSD [02:00] 3.32 0000e003 register MSD
MSD READ_CAPACITY... block-count 60125184 block-size 512

The 30GB SanDisk is recognized at hardware level. However, partition reads fail:

Trying partition: 0
Unable to read partition as FAT
type: 32 lba: 0 ' 1 S' y1L R ' clusters 0 (48)

This is garbled partition data. The bootloader cannot read valid FAT partition structure, so it falls back to SD card.

This is a known problem with SanDisk Ultra Fit drives. These drives have firmware quirks that prevent proper reinitialization during warm reboot because USB power does not cycle - the drive remains powered but does not reset its internal state. Cold boot works because full power cycle forces complete reinitialization.

Had you mentioned the exact USB hardware in your initial post, this would have saved time and effort - SanDisk Ultra Fit compatibility issues with Raspberry Pi bootloaders are well documented.

I researched this problem extensively in the past in this thread:

Your options:

  1. Add EEPROM timing parameters to force USB power cycling during reboot. Edit bootloader config and add:
USB_MSD_PWR_OFF_TIME=1000
USB_MSD_STARTUP_DELAY=2000
USB_MSD_DISCOVER_TIMEOUT=10000
  1. Use a different USB drive. SanDisk Extreme Portable or Samsung drives generally work better. Avoid “Fit” style drives that run hot and have aggressive power management firmware.

  2. Accept the limitation - use cold boot (power cycle) when switching to OSMC, use Volumio reboot only when staying within Volumio.

Kind Regards,

1 Like

Thanks for the advice!

USB_MSD_PWR_OFF_TIME=1000
USB_MSD_STARTUP_DELAY=2000
USB_MSD_DISCOVER_TIMEOUT=10000

In which file should I register? On USB in the OSMC section?

Hey @maxxxmm,

These parameters are stored in the Raspberry Pi EEPROM bootloader configuration, not in any file on the SD card or USB drive.

You have two options:

  1. Use the Raspberry Pi EEPROM Config plugin (shown in screenshot)

    image

    This plugin provides a GUI interface to modify EEPROM bootloader parameters. Install it from the Volumio plugin store, then navigate to its settings page. Add the timing parameters there and apply.

  2. Via SSH command line

    sudo rpi-eeprom-config --edit
    

    This opens the bootloader configuration in a text editor. Add the three lines under the [all] section:

    [all]
    BOOT_UART=0
    WAKE_ON_GPIO=1
    ENABLE_SELF_UPDATE=1
    BOOT_ORDER=0xf14
    NET_INSTALL_AT_POWER_ON=1
    USB_MSD_PWR_OFF_TIME=1000
    USB_MSD_STARTUP_DELAY=2000
    USB_MSD_DISCOVER_TIMEOUT=10000
    

    Save and exit. The new configuration is written to the EEPROM on next reboot.

The plugin method is cleaner and provides validation. The SSH method is faster if you are comfortable with command line.

After applying changes, reboot Volumio and test whether warm reboot now correctly boots OSMC from the USB drive.

Kind Regards,

1 Like

Hi,
pay attention when you have an Argon One Case if you want to enable the powerbutton.
Therefore you must download and run a script argon1.sh, this can be downloaded and executed:
curl https://download.argon40.com/argon1.sh | bash
When its running it does an sudo apt-get update and sudo apt-get UPGRADE in the EEPROM section starting from line 793 in argon1.sh
So the whole Volumiosystem is upgraded! (an apt-get upgrade has to be avoid, it can brick the system they told me???)
So luckely i had an image 4.086 and reflashed it
I download the argon1.sh file, delete the EEPROM section, ran the Raspberry Pi EEPROM Firmware Updater plugin and ran the EDITED argon1.sh file (sudo chmod 755 ./argon1.sh sudo ./argon1.sh)
Maybe a little bit too carefull, but now volumio4 in the argoncase runs smooth and the button does his job!
Question: is sudo apt-get upgrade harmfull for Volumio4???

Thx, Ludo

Hey @ludosplace,

Good catch on reviewing that script before running it blindly. Your caution was warranted.

To answer your question directly: yes, sudo apt-get upgrade is harmful to Volumio and should be avoided.

Volumio OS is purposefully built for bit-perfect audio reproduction. The system uses a carefully curated set of packages with specific versions that have been tested together for stability and audio performance. Mainstream Debian packages are configured for generic desktop use - running a full upgrade is a sledgehammer approach that replaces these curated components with versions that may break audio subsystems, kernel modules, or Volumio’s own services.

Using sudo apt install for a specific package is generally fine - Volumio does this internally and plugins do as well. The key difference is selectivity. Installing one known-compatible package is surgical. Upgrading everything blindly replaces components that Volumio depends on with untested versions.

The “bricking” warning is not exaggeration. A full upgrade can replace kernel modules, ALSA components, systemd units, or libraries that Volumio requires. The result ranges from audio playback failures to a system that will not boot.

Your approach - editing the script to remove the dangerous sections and handling EEPROM separately via the dedicated plugin - was the correct solution.

For anyone else reading: always inspect third-party scripts before execution, especially those that call apt-get upgrade or modify system packages. If a vendor script requires a full system upgrade to function, that script is not designed with Volumio compatibility in mind.

Kind Regards,

Thx for the info!
Hope other people read this and pay attention with third party scripts in a GOOD Volumiosystem!

This are the commands with ethernet connected:

volumio@volumio4-wz:~$ cat /sys/class/net/eth0/carrier
1
volumio@volumio4-wz:~$ cat /sys/class/net/eth0/operstate
unknown
volumio@volumio4-wz:~$ ip link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 0a:f1:42:cb:4b:81 brd ff:ff:ff:ff:ff:ff
volumio@volumio4-wz:~$ sudo ethtool eth0
Settings for eth0:
Current message level: 0x00000000 (0)

    Link detected: yes

volumio@volumio4-wz:~$

And here is the output from dmesg | grep -i eth0 after disconnect/reconnect:
volumio@volumio4-wz:~$ dmesg | grep -i eth0
volumio@volumio4-wz:~$

Removing W5500 from the userconfig makes it possible to connect to the device via Wifi

Thanks @ludosplace

For those running Volumio on the Argon1 case, please use this modified script:

cd~
git clone https://github.com/WheatenSudo/Volumio_argon-sript.git
cd Volumio_argon-sript && chmod +x volumio_argon1.sh
bash volumio_argon1.sh

Or as one-liner:
curl -fsSL https://raw.githubusercontent.com/WheatenSudo/Volumio_argon-sript/main/volumio_argon1.sh | bash

Hey @LooserDS,

The diagnostic data confirms the issue. The W5500 driver (w5100-spi) does not implement proper link detection:

  • operstate: “unknown” (should be “up” or “down”)
  • ip link state: “UNKNOWN”
  • ethtool: Minimal output - no speed, no duplex info
  • dmesg: No link state change events when cable unplugged/reconnected

The W5500 chip is a simple SPI-to-Ethernet controller. The Linux driver is basic and does not report link state changes to the kernel. The carrier value stays at 1 regardless of physical cable state.

Volumio’s Single Network Mode relies on kernel link state events to switch between ethernet and WiFi. Since the W5500 never reports link changes, Volumio always believes ethernet is available.

Your options:

  1. WiFi only - remove dtoverlay=w5500 from userconfig.txt permanently
  2. Ethernet only - always keep cable connected, no WiFi fallback

I was nursing an idea of testing IP Address presence, which will only work with DHCP client, not static setup.

This is a hardware/driver limitation of the W5500, not a Volumio bug.

Kind Regards,

Thank you - cool support!

What about the “rfkill unblock all” - will this also be solved in the future or is this also only related to my controller?

Hey @LooserDS,

The rfkill issue is Raspberry Pi specific.

The Linux kernel default keeps WiFi and Bluetooth enabled (default_state=1). Raspberry Pi overrides this via the raspberrypi-sys-mods package, which sets default_state=0 - radios disabled at boot for regulatory compliance (country code must be configured before transmission).

Volumio manages regulatory compliance through its own mechanisms, making the Raspberry Pi default unnecessary. Currently Volumio uses a boot service (volumio_rfkill_unblock.service) to undo the Pi’s default.

The PR simplifies this by setting the kernel module parameter at build time:

options rfkill default_state=1 master_switch_mode=2

Radios are unblocked when the kernel loads. The boot service becomes redundant and is removed.

PR submitted: fix(rfkill): set kernel default_state=1 and remove redundant boot service by foonerd · Pull Request #345 · volumio/volumio-os · GitHub

Alpha builds (4.091) confirmed working - rfkill shows “Soft blocked: no” immediately after boot. Awaiting review - no ETA for stable release.

@volumio - FYI

Kind Regards,

1 Like

Wow - perfekt answer, thanks!

Hi.

I tried to do it according to point 1.
Anyway, with a warm reboot, it won’t boot from USB, but volumio will load from SD. It is loaded from USB during a cold start.

[all]
BOOT_ORDER=0xf14
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
USB_MSD_DISCOVER_TIMEOUT=10000
USB_MSD_PWR_OFF_TIME=2000
USB_MSD_STARTUP_DELAY=2000
USB_MSD_BOOT_MAX_RETRIES=2
ENABLE_SELF_UPDATE=1

I updated from 4.084 to 4.089 a few days ago and am running into similar issues I had posted about and got nerd’s analysis in this post about sync state being an issue. I hadn’t had the issue in a long time running 4.084 but after updating its happened multiple times and is same behavior so I figured I would post a log.

Here is the log. I caught it at Jan 23 10:48:26 right after CCR/Creedence Clearwater Revival/CCR - Chronicles - 00 - Green River.mp3" played.

https://logs.volumio.org/volumio/q1IzWtJ.html

I performed a new installation of V 4.073 two weeks ago (Raspi 5 with NVMe). Everything worked fine until I installed the update to 4.084 the day before yesterday. After restarting, the device ran in a boot loop (where the Volumio logo appears). Not very confidence-inspiring. I had to reinstall it. However, I copied the image directly using a USB-to-NVMe adapter. This saves you having to go via the SD card. Before the next update, I will also create an image of the NVMe as a backup.

I have the same problem with 4.084

Not sure if this is the right thread - but I want to avoid double posts:

Since yesterday ALL of my Voluimio 4 devices restart every few seconds (using Volumio Premium on a PI 4B since months, the PI Zero 2 W is new). I am not able to listen to music and the interface gets stuck every few seconds. What I have seen is that the next refresh date of my premium account is 2025 this is wrong!

1

Here is a link to the uploaded diagnostic file:

http://logs.volumio.org/volumio/G7zCRDs.html

I am on version 4.084 - cannot update because system is not responsive.

Please raise a ticket with Volumio, with regards to your premium plan. The community can’t help with that.
https://volumio.atlassian.net/servicedesk/customer/portal/1/group/1/create/26

Hi! From the logs I see that the units are crashing because they try to contact a device (Sonos or similar) into your network and the response is malformed.

To fix this:

  • Try first to restart your network (turn off and on the router
  • Once done, restart your Volumio devices
  • If that does not work, try to think which other device you added that might misbehave and restart it
    Let us know

Hey @becool,

A few things do not add up here and I need clarification before drawing any conclusions.

First - 4.084 OTA has been verified working on Pi5 with NVMe boot on multiple systems, including control units that have successfully updated entire OTA sequences through, including 4.028 → 4.084 → 4.089 without issue. So “4.084 breaks Pi5+NVMe” is not a general truth.

Questions:

  1. Actual symptom

    • You describe “boot loop where the Volumio logo appears” - what exactly happened after the logo appeared?
    • Did the system reboot repeatedly? Or did it freeze at the logo?
    • How long did you wait before concluding it was stuck?
  2. Original installation method

    • How was 4.073 originally installed on the NVMe?
    • Did you use Install to disk from UI, or did you flash directly to NVMe via USB adapter?
  3. Plugins

    • What plugins were installed before the update?
  4. Display configuration

    • Did you ever edit /boot/config.txt, /boot/volumioconfig.txt, or /boot/userconfig.txt?
    • What display setup - HDMI, DSI, or headless?

You mention you reinstalled by copying image directly via USB-to-NVMe adapter. I hypothesize this may bypass partition alignment that Install to disk enforces - needs verification.


@mchief - “same problem” is not investigation basis. Please confirm:

  • Exact device model
  • Storage type (NVMe, USB, SD?)
  • Installation method for original image
  • Exact symptoms observed

Kind Regards,