[GUIDE] Multiboot Volumio2 (with Kodi & al.) under Berryboot

Tired of swapping SDs containing different distributions? We’ve got a solution for you!

This guide provides a very easy (1-liner command) Volumio2 install process within Berryboot: you will then enjoy all great Volumio2 features (including OTA updates, etc…) + extra benefits explained below.

Background: why “berrybooting”?
Several fellow Volumio users have been asking a few times about how to run Volumio2 together with some other distribution(s) (Kodi, RetroArch, etc) independently on same SD: this is very convenient since each distribution runs mostly unmodified in its own world. User just selects which one to run at boot time through UI (or let a default one jump-start automatically).
There are several alternatives (NOOBS, PINN,…) to realize similar usecase, including Berryboot which offers the unique ability to add/change/update distributions on-the-fly without reformatting/partitioning SD card.
So, with that, it is possible to run Volumio2 while leveraging the following benefits:

  • Run multiple distributions (Volumio, Kodi through LibreELEC/OpenELEC, RetroArch, Raspbian, …) independently from 1 single media
    -> easy & independent maintenance for each distribution (updates,…), no complex Volumio2 interoperability setup, etc…
  • Avoid SD corruption by running Volumio2 from USB disk or networked iSCSI volumes instead of SD
  • Easily test different Volumio2 versions in parallel & independently without reflashing media back & forth

Prerequisite(s):* the obvious: install Berryboot on a media, and do initial setup as per this (screen & keyboard strongly recommended for setup).

  • either (preferred) install Raspbian image (lite is fine) under berryboot and open shell there, or plug your previously set-up berryboot media into any Debian-based Linux machine under shell (Ubuntu & derivatives, Mint, Pixel, Debian, etc…)

Install step: simply execute the following 1-liner command from Debian linux shell, and follow instructions to produce & install Volumio2 image: curl -Ls --output installVolumio2 https://bit.ly/InstVolumio2; chmod u+x installVolumio2; ./installVolumio2 ( if you need to run again the script later, just type the last part: ./installVolumio2 )

Upon script completion, the created Volumio2 patched image will be fully operational within berryboot (including OTA updates, reset, etc…).
Just use Volumio2 UI as with Volumio2 “native” distribution install. You may refer to Volumio UserGuide for any info.
Enjoy !!

Post install notes:

  • If you use I2S DAC, you may want to add dtparam=i2c_arm=on in config.txt
  • As a bonus feature, installVolumio2 script is available in Volumio2 shell, so you may easily install more images from there later.
  • As another bonus feature, one can disable swap altogether by creating an empty /noswap file from Volumio2 shell (PiZero mostly OK with it).
  • Here are 2 other goodies for similarly installing LibreELEC (Kodi) or Lakka (Libretro-RetroArch) on the side: :wink: curl -Ls --output installLibreELEC https://bit.ly/InstLibreELEC; chmod u+x installLibreELEC; ./installLibreELEC curl -Ls --output installLakka https://bit.ly/InstLakka; chmod u+x installLakka; ./installLakkaInstalling other image distributions (such as OpenELEC, RetroPie, etc) on the side is not covered on this Volumio forum. Some ready-to-use images are available here, and instructions/help can be found in other relevant forums.
  • You may want to make sure you can live with known limitations below (worth reading, and particularly before asking questions):[spoiler]1) Volumio2 User data reset and Factory reset have same effect, and the latter does not restore a Factory image. Indeed Factory image has no real interest in berryboot context, since you may create another image as your Factory image simply, thanks to installVolumio2 script.
  1. Volumio2 will then run under custom berryboot kernel (is a standard Linux kernel with AUFS patches).
    This means a particular peripheral requiring non-standard-built-in kernel drivers (some wifi dongles, some DACs, etc), may fail or not run at all.
    For instance, TL-WN725N V2 (or compatible) wifi dongle falls-back to r8188eu staging kernel driver which lacks Volumio Hotspot mode.
    This is NOT a Volumio bug, and Volumio team can NOT do anything about it.
    If you need such custom drivers, you will have to invest time in compiling them for berryboot kernel, or gently ask berryboot maintainer if this can be included in future release…
    Noteworthy: most well-known DACs are supported by Berryboot kernel in its current versions (TauDAC is notable exception).

  2. Although not noticed so far, there is a theoretical possibility of unexpected bugs due to eventual Volumio dependency on specific kernel version/features that might not available in berryboot kernel. Such of these may or may not incidentally pop-up/be fixed while Volumio and/or berryboot update their own kernels; in any case, supporting berryboot kernel is NOT a Volumio2 priority.

  3. Volumio2 kernel updates are obviously discarded during update process, as berryboot needs to stick to its own kernel. You may update berryboot package (and its kernel) its own way (but mind to preserve any Volumio2 setting such as DAC overlay in config.txt). As usual, it will then be shared with all other installed images, Volumio2 or else.[/spoiler]- Image install code & patch script are available here. Issues & comments are welcome there.

Thanks for your detailed instructions. As power loss always destroyed my sd card content I was looking for usb boot. Your script installVolumio2.sh failed on my system. I had to change /dev/mmcblk0p2 with /dev/sda2 and it worked.

Once volumio is able to boot from usb I will try but for now this is a solution to go. No more destroyed os!

Major guide update: * now full Volumio2 integration through patched image (OTA updates & reset natively supported from Volumio UI)

  • simple 1-line initial install process
  • supports install on any media (std or encrypted): SD, USB disk, iSCSI

I have this all up and running - It’s great.

I experienced some problems with my Hifiberry DAC + card being recognised in berryboot and therefore Volumio. I found this useful video which explains how to edit the config.txt - it might be of use to others.

hifiberry.com/blog/how-to-e … berryboot/

One problem I’m experiencing is updating Volumio OTA - it’s getting stuck at ‘Creating Backup’. I wondered if anyone has experienced the same issue?


1 Like

@ZJO, glad you find it helpful.

Actually Volumio UI “Playback Options” should do all necessary DACs settings tweaks within config.txt properly for you, as with native install: no need to edit manually (and actually not recommended to do so).

As for OTA update, if you did not fully use this guide install method, indeed, Volumio2 OTA update will NOT work and will always get stuck during back-up phase.

If you used this guide method to create initial image, OTA should just work.
Note that sometimes OTA update process can take time (about 2mn +), and progress bar may stay in same state for a little while…
Did you let it go long-enough?
If it still does not work, any detailed info appreciated (Volumio versions: current and tentative, Pi model, journalctl log, …).

Signed up especially to say a thankyou for your work on this, just picked up a WD PiDrive and wanted to use the INTERNAL store for my music; Pi 1 model B and HifiBerry DAC, files copied directly to /data/INTERNAL - All working without having to set dt overlays or any other tweaking than normal setup process (although I did forget about the Volumio WiFi hotspot for initial config, had me scratching my head for a while trying to figure out why it wasn’t showing on volumio.local :slight_smile: )

i installed berryboot and installed debian lite succesfully. but when i boot debian lite and wirte to terminal tihs code
curl -Ls --output installVolumio2 tp://bit.do/Ins*; chmod u+x installVolumio2; ./installVolumio2". error

chmod: cannot access installVolumio2: No such file or directory
-bash ./installVolumio2: No such file or directory


these links are down, didnt work. maybe because of that. link renew or need another way.
pls help me.

Thanks for the note: indeed URL shortener service I use seems to be down now.
Let’s wait a few hours/day to see if it comes back (while I search for a working alternative - they are some limitations they need to cope with).

Meanwhile, can you please remove URLs from your post, to avoid robots to follow those links?

EDIT: seems back online now!

sure i censored link. thank you for your information but get same error still.
chmod: cannot access installVolumio2: No such file or directory
-bash ./installVolumio2: No such file or directory
i install debian lite version.

Strange: it works for many other users installs, prior & after url shortener service DNS downtime.
Can you check you can access internet from your raspbian install? (i.e. sudo apt-get update, or sudo ping google.com, or else)

yeap internet access is avaible. apt-get update commands is working. i think this command didnt work. because did not create any file named like “installVolumio2”. “curl -Ls --output installVolumio2 tp://bit.do/Ins” (i cencored link for this post, otherwise i truly enter this command)
maybe there any problem for “curl” package. how can i do?

Just tried the curl part again and works fine from here.
Try to similarly curl another URL to download any other arbitrary page of your choice, to check what goes wrong.

i updated date (it seems old 06.2016) and run apt-get update command. and than it works.
i could not understand why related with date but it work.

Ran into a snag with this. Followed the steps right to where I need to run the install script. But it cancels out with a gripe about setting the bootdev statement. Except the statement is there in the file. Any hints on what to do here?

EDIT: looking into /proc/cmdline shows that the bootdev is not set though…
EDIT 2: solved. I put a linebreak in there that messed things up. Removing it worked.

Pi zero w, berryboot with rasbian full version.

Glad it worked: indeed cmdline.txt is a command single line (i.e. no linefeeds), each command separated by 1 space :wink:
Added a reminder note in guide.

Capturing this relevant topic:

As of writing, current Berryboot kernel is rather old (4.9.26) and does not include Allo DigiOne driver & support (while it seems to support Allo Boss and Allo Piano DAC/+).
You may kindly ask Berryboot maintainer to add support for this DAC while updating to newer kernel version which includes such driver (from 4.9.31 onwards).
Alternatively Allo guys might be able to build & provide driver/firmware/overlay for that Berryboot specific kernel, or you may want to try to do so, if you are familiar with setting-up such build environment…

EDIT: Berryboot just got updated with 4.14.18 kernel, which among other things, includes Allo DigiOne support: should be all good now!

Thank you !!! Now it works perfectly. Great !!! I just had to add in the file cmdline.txt --> bootdev=mmcblk0p1 and everything is ok ! :wink:

Big THANK YOU also from my end for doing all this work with Berryboot!

I had 1 corrupted / 1 dead SD card within two weeks of running Volumio2 24/7. My goal was to have my favorite radio station playing from a dedicated RPI3 in the office. Even though the power never failed on the networked RPI one SD card died and one needed a low level format for unknown reasons (maybe something to do with being networked not wifi’ed). Moving to USB storage and/or disabling r/w on the boot partition seemed a possible solution.

I followed the guide in this thread and got Debian Wheezy Raspbian plus Volumio2 installed w/o problem on a fresh micro SD card. After enabling USB boot on RPI and cloning the SD card onto a USB stick (Samsung FIT 64gb samsung.com/us/computing/me … f-64bb-am/) via EaseUS Partition Manager Wizard/Clone Disk function the RPI booted up from USB w/o any other changes in cmdline.txt! Amazing.
Next step to disable swap altogether by creating an empty /noswap file also caused no problems.

Great stuff.

@foxpro Thanks for feedback: glad you found it useful.
On Pi3 with USB boot, Berryboot installer makes the proper entry in cmdline.txt by itself: it’s the only case where manual change is not needed (you are lucky!).
Also, on Pi2B/Pi3B (any devices over 512MB RAM actually), Volumio will never activate swap anyway, so /noswap trick is not required. It’s essentially meant for PiZeros actually.
For Debian image, you might prefer use Stretch these days.

Have fun!

Hi it seems the latest build is broken.

I recently did an update from within volumio, and then with berryboot the webgui was not working anymore.
Then i removed the image complete under berryboot and did a full new reinstall
And … the webservice fails to boot.
I also made a post on the volumio github forum hope someone can dig into this one.
Berryboot with iscsci is great for those distributions that do a lot of disk io ans saves your sdcards

installation procedures
curl -Ls --output installVolumio2 bit.do/InstV2; chmod u+x installVolumio2; ./installVolumio2
works fine
but the boot of the webservice of volumio fails