Adding support to new platform


I was browsing on how to port volumio to a new board. The allwinner sunxi boards are becoming quite popular (Olimex LIME, Cubietech cubieboards etc) but I don’t seem to find much developers information. It the volumio repo on github the official one?

It it as simple as doing apt-get install volumio on debian? Are there other tweaks? With all this open source, this should be reproducible right?


It looks to me like the images were created manually by copying the source code to /var/www and chown to root, then copy the contents of _OS_SETTINGS dir to /. The main dependencies appear to be mpd, nginx, php5 and samba.

I can’t find anything volumio in apt-cache search and there are no debian build scripts in the github repo. I think that would be a good idea, but don’t have any experience with making deb files myself (even if I did I think this would be quite a complex one)

For me the easiest way would be a Root FS and your own kernel for the specific board. This way it would still be a Distro and not a program suite.

A deb-Package would be possible, too if there are only some software changes. I do have a little bit experience with building deb-packages but only with the build system of my employer. This build system is based on a server and does the most steps for you.

But a deb-Package always carries some problems with it. The advantage of a distro f. i. would be the testing and debugging of hardware problems on the specific board. IMHO this would be a problem with a deb-Package for all ARM-Devices and a mayor drawback.

So it’s not really that big of a deal to add support; get a working debian rootfs; add those packages, download volumio; done. I’ll tinker a bit and see if I can add it to our sunxi based boards.

But yeah, a package, even with just the html stuff; would be quite helpfull; then it’d be just an apt-get away. The ‘tweaks’ can always be documented and done manually.

I’ve tried to reproduce things by using the _OS_SETTINGS/ but there’s quite a few things ‘off’. minidnla.conf tries to bind to a fixed IP, which is different from the fixed IP that dhclient is setup to use. Also, why would the db_dir be stored under /run/minidlna? why is /run/shm the ramdisk? When smb.conf shared /var/lib/mpd/music/Ramdisk or mpd would play that? anyway makes little sense.

Also, no mpd.conf setting changes?

nginx seems to serve pages fine, changing permissions of /var/www to www-data seems to make php-fpm happy; but the webinterface shows just a white page. the log remains clueless; maybe some configuration needed in www but no hints as what yet however.

mpd.conf seems to be missing from /var/www/inc/mpd.conf(.default)

When smb.conf shared /var/lib/mpd/music/Ramdisk or mpd would play that?

So you can add files to RAMDISK from your computer.

MPD.conf is parsed and created automatically by the php code, and all the settings are stored in /var/www/db/ in a sql db .
To make the thing work you need some stuff to be launched at startup, there’s a worker, a bash script and a library

To get started:

1- Copy the WebUI to /var/www
2- Copy the _OS_SETTINGS accordingly

cd /var/www/_OS_SETTINGS cp -r * /

3- Give appropriate execution permission to worker and scripts

cd /var/www chmod -R 777 db inc cd command chmod a+x chmod a+x chmod a+x player_wrk.php

4- Reboot, and check everything is allright with


you should see the player_wdog and player_wrk running.

Let me know if you need more ! I must set up a proper documentation … really :wink: