Volumio 2 on Odroid Boards

These images be built at regular times or on request (if there is appropriate demand for it) .

±----NEW------------------Volumio for Odroid C4

Note on DAC usage
The boot directory holds a file called “example.user.boot.ini”
The purpose of this file is to override defaults in boot.ini
This file will not be touched during updates (Odroids do not use userconfig.txt).
Just rename that one to “user.boot.ini” and uncomment the DAC you use.

“overlays=lineout” can be uncommented in case you wish to enable analog out on pin header J4.
(Needs soldering, refer to the Hardkernel Odroid Wiki)

; The purpose of this file is to override defaults in boot.ini and config.ini
; This file will not be touched during updates (Odroids do not use userconfig.txt).
; Rename this file to user.boot.ini and it will be read during boot

; DAC settings
; ============
; Uncomment dactype to enable either Hifi Shield (ODROID-HIFI) or HiFi Shield 2 (ODROID-HIFI2)
; HiFi Shield and Shield+ are using the pcm5102a driver
; HiFi Shield 2 uses the pcm5242 driver and I2C bus
; For Volumio compatibility reasons, cards ODROID-HIFI and ODROID-HIFI2 were internally renamed to ODROID-DAC and ODROID-DAC2
; The pcm5102a driver is a very generic implementation an can also be used for other simple DACs
; In case such a custom DAC is installed, type ODROID-HIFI should be used. 


; Odroid C4 analog/ lineout (using pin header j4)

Current Releases

See the changelog link on the changelog page

volumio-2.877-2021-04-19-odroidc4 (see changed “Note on DAC usage” above)

Previous Releases

±-----------------------------Volumio for Odroid C0/ Odroid C1/ Odroid C1+/ Odroid C2



±-----------------------------Volumio for Odroid C4
Fixes 2.781

Support for Odroid HiFi Shield, Odroid HiFi Shield+ and Odroid HiFi Shield2
Unmuted Audio HDMI-OUT
Play device device list corrected

Fixes 2.774

Advanced Music Credits display and discovery (MyVolumio Superstar required)
New design of artist and album cards
Improved usability of browse layouts
Improved Backend responsiveness
Show database updating status on UI3
Continuous playback for albums and playslits
Known issues:
playback option list incorrect, no support for HiFi shields yet (planned)

±-----------------------------Volumio for Odroid N2
Fixes 2.800

Support for Odroid N2+
Note: from 2.800 the boot sequence for Volumio has changed.
An SD will have priority over an emmc Volumio version.

Fixes 2.780

Improved performance
Support for HK Remote control (incl. boot from standby)

Fixes 2.766

Stock Hardkernel Remote support, incl Power on/off
Performance improvements
More support for various USB Audio devices

Fixes 2.697

Latest Hardkernel linux kernel (4.9.205)

First version, boots from SD and eMMC.

±-----------------------------Volumio for Odroid XU4/HC1/HC2
Fixes 2.528

New kernel 4.14.y with updated support for DSD-direct (native) capable USB Audio devices
Supports booting from SD and eMMC

Thank you,

Could you advise how to setup Volumio on Odroid C2 + VU7 touch as stand alone player?
How to start GUI on it?


yes, but also do a search because this issue has been covered and might give you some extra info.
Basically, install our generic touch screen plugin and afterwards look for the appropriate ini-file in the boot folder, there should be a VU7 version. Rename it to boot.ini (after you renamed the original) and reboot.


Thank you for fast answer, but I cant find anything about boot.ini file.
Where should I look for it?

Installing of touch plugin hang on “Disabling Kiosk Service” i’m still waiting :slight_smile:

thank you

in case it hangs, refresh the web page, usually it helps, don’t know why this happens.
As for the boot.ini, look into the /boot folder, you will find them there.

Thank you, everything works perfect :slight_smile:

The only issue is now is touch screen of VU7, which has big difference in touch to point.
I have to find how to validate this screen.


Ask on the Odroid forum, surely someone can help you there.

Having problems building a working volumio image from master for the odroid c1.

Image gets created, but when I try to boot I get

## Booting kernel from Legacy Image at 21000000 ...
   Image Name:   Linux-3.10.104
   Image Type:   ARM Linux Kernel Image (lzo compressed)
   Data Size:    5456507 Bytes = 5.2 MiB
   Load Address: 00208000
   Entry Point:  00208000
   Verifying Checksum ... OK
Wrong Ramdisk Image Format
Ramdisk image is corrupt or invalid
Unknown command '�' - try 'help'
MMC read: dev # 0, block # 1216, count 16384 ... 16384 blocks read: OK
MMC read: dev # 0, block # 1088, count 128 ... 128 blocks read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!

I inspected the contents of /boot and the cause of the error is /boot/uInitrd is 64 bytes. When I believe it should be around 4MB

So I checked build logs and found

Changing to 'modules=dep'
(otherwise Odroid won't boot due to uInitrd 4MB limit)
Signalling the init script to re-size the volumio data partition
Creating initramfs 'volumio.initrd'
Version: 3.10.104
mkinitramfs: failed to determine device for /
mkinitramfs: workaround is MODULES=most, check:
grep -r MODULES /etc/initramfs-tools/

Error please report bug on initramfs-tools
Include the output of 'mount' and 'cat /proc/mounts'
Creating uInitrd from 'volumio.initrd'
/usr/bin/mkimage: Can't open /boot/volumio.initrd: No such file or directory
Removing unnecessary /boot files
/bin/rm: cannot remove '/boot/volumio.initrd': No such file or directory
Unmounting Temp devices
Copying LIRC configuration files for HK stock remote

I’m still digging for the cause, but if somebody already knows what’s going on some insight would be appreciated

Are you building on Debian jessie or Ubuntu?
In case of the latter, it is a known issue causing the build process to fail while creating the initramfs.
Debian Stretch has the same issue, we have not found a solution yet.

I tried on both debian and ubuntu. Though I think the debian build server was running stretch.

I will try again on a debian jessie system.


Hi Gkkpch

First great work for Volumio. It is just fantastic.

One thing for odorid c2 specific, can you update the kernel build file ?

Latest official kernel has the dsd pop issue fixed, however it is not in volumio yet.

Details below:

Thank you

I’ve put it on my list and will use the patch to build a new kernel this week, I will add some usb audio quirks at the same time.

The kernel has been built, hope to be able to build an image later this week and post the link here.

Thank you very much! :smiley:

Tried the build on debian jessie. The build failed.

So I went back and took another look at what was going wrong with building on ubuntu.

I came up with a workaround, that might be better then just not building on ubuntu.

If you apply this patch to /share/initramfs-tools/hook-functions on the target you can get images
for the odroid C1/C2 to build on Ubuntu. It’s probably a good idea to unpatch after the initrd is created.

--- /share/initramfs-tools/hook-functions.orig	2018-04-12 05:02:00.381364090 -0400
+++ /share/initramfs-tools/hook-functions	2018-04-12 05:11:59.451147987 -0400
@@ -290,6 +290,11 @@
+        # Work around for building Volumio on Ubuntu 
+        if [ "${FSTYPE}" = "" ]; then
+                return
+        fi
 	# handle ubifs and return since ubifs is mounted on char devices
 	# but most of the commands below only work with block devices.
 	if [ "${FSTYPE}" = "ubifs" ]; then

and now to head off to bed, hopefully with out getting yelled at by the girlfriend for having stayed up all night.

Super find, I will try it out asap and see what we can do with it!!

Thanks for update, everything is running fine on my C1+.
Waiting for the new kernel and the DSD pop issue fixed.

I wonder why the volumio.org/get-started/ is not update with the latest versions :question:

For publishing on the “getting-started” page I would need admin rights to the volumio.org website to modify the Download Page.
I have no interest in admin rights, but can take responsibility for the new images which are tested with the help of other users and published here.
It shows that the decision to push community portings is a good one,.
This way users will get up-to-date images more often, potentially just as often as the main PI and X86 version and also when platform-specific improvements can be offered, like the DSD and the Waveshare issues.

Btw. I have no DSD update for the C1+ image, the patch appears incompatible.
There is no reference to DSD support in my C1+ kernel version.
It needs to be checked with Hardkernel to see if they have backported anything at all.

Yep, nice find indeed as the good thing is: we do not rely on the hook functions at all.
Our Initramfs is self-built, not generated and very straight forward in that sense.
There are no intentions to change that in the near future.
This seems to offer the opportunity to remove the hook functions altogether before calling mkinitramfs.
In case you have time to test this and it solves our problem: you’ll be our hero :smiley: :smiley:
But don’t stay up all nigh this time.

So none of the hook functions are required for any of the platforms that Volumio can be built for?

Will see what happens when I remove them then.