Rebuilding Volumio Kernel

Volumio is really something I have been looking for for years…

In spite of a long story as hifi/hiend addict, the project I have in mind is an UDOO based portable audio center

  • with a good audio quality (but nothing special, as a first step I think the UDOO audio out is acceptable, in my current mood I am more interested in ease of use)
  • headless, to be remotely controlled from any smartphone / tablet / pc
  • not expensive (I will not use it with my main audio system)
  • with a TB hard disk, to be able to take all my music with me
  • capable of working both as a wireless client and the center of a wifi network (that is to implement AP mode, or at least an ad-hoc network)

I understand that we cannot expect Volumio to do everything each of us would like to, especially without paying anything in terms of audio quality (and possibly money too…), so I would like to be able to experiment with software first and hardware later on.

I have a couple of questions about this,

I have not been able to find anything UDOO related on Volumio github: which kernel do you use as a starting point?

The second question is even more specific: I could use Ubuntu kernel from UDOO team, but I initially tested UDOO with Ubuntu and the audio out quality was terrible (while the hdmi audio quality was definitely better, if not good): do you have any idea of the reason of this huge difference in quality with respect to Volumio? is a matter of driver, or just caused by the different kernel structure?

Thank you in advance

Ciao Giorgio,
guess the Ubuntu distro relies on pulse instead of good old Alsa.
To rebuild the kernel you can find the instructions here:

In order to work with volumio please ensure you enable cifs and inotify modules


Thank you MIchelangelo,
I have rebuilt the kernel (I had to use import git repository, both zips were faulty), but in the end decided to strip down the prebuilt image, with definitely no good result, same tickling sound as with full image.

I think I must try to use Alsa…


Yes, alsa is the way. Which OS were you using with UDOO?

I had an Ubuntu sd card, so I just started stripping it to the bare minimum, but with no result: when you play any music the sound remains badly clicking…
as though there was a strange interference by another subsystem. The strange thing is that

  • if nothing is playing, there is no click
  • system generated sounds seem ok (even though they have a very short duration, so it is difficult to understand)
  • hdmi sound is not so bad, no click at all

I’ll try to see how does other Udoo distros perform.

Thank you


Just a quick update on the current status of my project.

I tested Udoo Debian, and found that the audio out is perfectly quiet. I also got (use git get, not zip files, I found a few problem with zips) and rebuilt the kernel staring from udoo-unico kernel. It works ok, as expected. However, to get the debian .config file, I had to recover it from gz file, so I thought I could do the same with Volumio.

So i started to work directly on Volumio distro. I had just built the kernel on the hard disk, so I only had to insert Volumio SD, recover .config from the usual gz file, edit configuration adding the two modules I needed, rebuild the kernel again (no error at all… very good), install kernel, install modules, reboot… and test the system.

Everything was working fine (regarding Volumio, at least…).

At this point I have been finally able to setup the wlan0 as access point (at present, only open with fixed IPs, and I might be too lazy to go further…).

Now I am studying step 2, automatic switching at startup from AP mode to Managed mode depending on a GPIO input…


Interesting! Really following on that!!!
Which module did you need?

The module I really neded was bridge, as I needed Udoo to work as access point and not router, in which case also iptables would have ben required. I installed both, but in the end I think that next time I will build kernel I will get rid of iptables, as their installation is rather tricky, and I am not sure at all they are really correctly set up.

I also completed the switching prcedure to set up either client mode or AP mode based on a GPIO input. I ended up making things as standard as possible that is calling in rc.local a shell scripts which

  • reads the gpio input
  • compares with the last gpio input value saved in a file
  • if different, replaces /etc/network/interfaces and /etc/default/hostpad with predefind copies tsted for the specific configuration
  • store the gpio value in the comparison file
  • reboots.

If anyone needs details, I can provide the scripts.

Next step was trying to make Udoo power button work. Unfortunately, I found no documentation at all about this on Udoo site, so I looked at IMX-6 documentation, and found out that it should force a shutdown when pressed for more than 5 seconds, but apparently this is not working on Udoo. If anyone has any hint about this, I would really appreciate any help.

Finally I would like to set up a few leds to diplay the system status, but I have found a clear warning about the fact that, when selecting an Udoo gpio pin to set as output, it must be taken care that the corresponding Arduino pin is not setup as output too. The issue is that I have no idea of the default status of Arduino pins (and also do not have time to study Arduino …), , so if anyone as sorted out the horrible mess between Udoo gpio numbers, imx gpio pins, imx signal names, imx .h macro names, arduino pins, arduino signal names etc., and can give some advice on which udoo gpios can be safely used, I would again really appreciate…