Page 1 of 1

Volumio on Joggler

Posted: Sun Aug 12, 2018 5:48 pm
by tobysnooker
I've been happily using the joggler for some time as an LMS client. At the same time I've been using MPD-based systems (non-joggler) elsewhere with great success.

The debian/MPD Volumio project has been around for some time; it's a stripped down linux install with MPD and a nice GUI (touch-screen friendly), plus there is an x86 image so it looks ideal as a candidate system for the joggler. I've been trying to put together a bootable image with no success, so hopefully someone here can help. I realise creating a bootable image can be quite an undertaking...

The x86 image file from Volumio won't boot because it needs the correct bootloader for the joggler on it. So I took a Debian USB boot image that is designed for the joggler, wiped the contents of the linux root partition and replaced it with the same from the Volumio image (which I extracted from squashfs). That's pretty much where I'm stuck. My linux / grub / efi / bootloader knowledge is too poor to progress any further (e.g. making the required changes to grub.cfg).

I'd be very grateful if someone could help either:
a) how to modify the grub.cfg so it will boot the squashfs file system image
b) how to modify the grub.cfg so it will boot the file system that has been extracted

Within the file system there is no "/boot/grub/grub.cfg" file or similar (in fact "/boot/" is empty). However I can see that the "/etc/default/grub" file has GRUB_GFXMODE=1024x768 so that - amongst other things - would maybe have to be changed.

However, I have some hope because this image is designed to be versatile and boot on a wide variety of x86 platforms. Can anyone help with this? I think Volumio on the joggler could be a really good combination, particularly as there are quite a few MPD controllers out in the wild for a load of different OSs.

I know it is straightforward to put MPD on a known working linux distro for the joggler, but it's really the touch-friendly UI that comes with Volumio that I think would be the big win here.

Re: Volumio on Joggler

Posted: Sun Aug 12, 2018 9:08 pm
by tobysnooker
I took a different approach as a bit of a test, pretty much following this guide: http://typingoutloud.org/raspberry-pi-i ... io-pibang/
I installed the Xubuntu 14.04 image and then followed bits of the guide: installed a load of Volumio dependencies, alsa-tool, mpd, then pulled down the Volumio GUI from github.

The GUI is there but a whole raft of permissions issues means it doesn't do much. I can at least add a SAMBA share (which persists through reboots). It recognises the sound device as "MID", which sounds :) about right.
"aplay -l" lists the available devices as below:
card 0: MID [HDA Intel MID], device 0: STAC92xx Analog [STAC92xx Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: MID [HDA Intel MID], device 1: STAC92xx Digital [STAC92xx Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0

However, whatever permissions issues exist mean that MPD isn't indexing files and probably a load of other issues too. I can't add files over the network so didn't get it to play anything. Time constraints mean this little experiment has come to an end for me for the time being.
I've attached some photos of a neutered volumio at least running on the joggler. Maybe me or someone else could pick it up later. There are volumio plugins for LMS and squeezelite, but I didn't test those.
IMG_5827.JPG
pic1.jpg
pic2.jpg

Re: Volumio on Joggler

Posted: Sun Aug 12, 2018 11:06 pm
by pete
Very nice.

Apologies I was moving your pictures one post up thinking while you were doing the same thing.

I was going to suggest to start with Buzz's base Ubuntu build that'll fit on the 1Gb eMMC built in to the Joggler.

Then build base x windows and add Volumio to that?

Re: Volumio on Joggler

Posted: Sun Aug 12, 2018 11:27 pm
by hawsey
Nice work , I hope we get it going , looks great .

Sent from my Moto G (4) using Tapatalk


Re: Volumio on Joggler

Posted: Sun Aug 12, 2018 11:27 pm
by tobysnooker
Thank you for fixing the pictures.

As you suggest, probably the best approach is to go for an add-on to an existing build rather than re-inventing the wheel by compiling a new kernel. I'll have a look at Buzz's base Ubuntu build. If I can spin that up in a VM then it will make things much easier for building and testing. Ideally I would like to make this as an add-on script that pulls in standard packages and volumio git repositories.

I have a feeling that volumio could fit well with the joggler because volumio is focused on network music playback and has a (small) touchscreen GUI. Squeezelite support is only as a renderer, but it has proper spotify integration as well as others that could work well.

Re: Volumio on Joggler

Posted: Mon Aug 13, 2018 12:16 am
by pete
Yes; try using Buzz's image file as a a VM base (IE the whole image with the two partitions - EFI and Ext4). Thinking it will boot fine. Another user here created a booting Kodi image...but thinking it was for the Openframe 2 with 2Gb of an eMMC drive.

You can also start with the SP image, removing the auto start of SP and replace it with Volumio

Have a look over here...

viewtopic.php?f=2&t=3150

or write the image to a USB stick; tweak it out then dd or gparted the image of the USB stick to the internal eMMC.

Re: Volumio on Joggler

Posted: Mon Aug 13, 2018 5:51 am
by dwl99
This looks interesting. Would you also be able to look at making a version to run from USB? The Joggler's internal memory is notoriously flaky and there is a high chance of the installation becoming corrupted after a few months and needing reinstalled. USB installations have been much more stable and can be backed up very easily.

Re: Volumio on Joggler

Posted: Mon Aug 13, 2018 3:47 pm
by tobysnooker
I've made some progress, based on Jools Wills' Xubuntu 14.04 running off a 2.5 inch SSD attached via USB.
Music plays fine with either software volume control or no volume control (permanent 100%).
It indexed 120GB of music on a server SAMBA share.
Audio is coming out of the built-in speaker - I don't have a USB hub to hand to connect a USB DAC.

It has transpired that the git repository I cloned from here: https://github.com/volumio/Volumio-WebUI.git is an orphaned branch that is 2-5 years old. It's been replaced by a new GUI "Volumio 2 GUI", so I tried replacing old with new but it didn't work. Somewhere along the way the ~3.7GB(?) system partition became full, which probably caused some problems. Too much "git clone" for that small disk!

I'm going to start from scratch with a new image, resize the partition and then run my >600 line long custom volumio bash script to see if that makes it work.

An alternative path:
The volumio build scripts are quite well commented, so if someone has the appetite for it they could possibly just change the final image building script so it churns out something almost bootable on the joggler. Doing so is well beyond my knowledge. Here is the script:
https://github.com/volumio/Build/blob/ ... 6image.sh

Re: Volumio on Joggler

Posted: Tue Aug 14, 2018 6:56 am
by hawsey
Great work , following , if you make a copy before you expand then maybe you could share the image once you are happy it works .
The SSD works much better than the standard Usb stick and speeds things up somewhat , I utilise it on a Joggler Squezeplay front end with a Plex server running headless ( for music only ) and it went from very flakey to useable after switch to SSD .
I use GParted to resize partitions .
Good luck .

Sent from my Moto G (4) using Tapatalk


Re: Volumio on Joggler

Posted: Tue Aug 14, 2018 4:31 pm
by pete
Testing here on an updated Openpeak 1 device with desktop.

Jog-UB-01:~# uname -a
Linux ICS-Jog-UB-01 3.2.81joggler1 #48 SMP Fri Jul 1 23:38:41 UTC 2016 i686 i686 i686 GNU/Linux

Have a 16Gb SSD plus a tiny 4Gb USB stick mounted inside of the Joggler. On this Joggler have also mounted a USB hub on the back of it with the wires going to the Joggler motherboard. (7 port USB hub).

efi boot partition is at 60 Gb and it keeps running out of room when updating so doubling it via gparted right now.

Looking at what I had configured booting the SSD from the mmc boot partition.

Copied the boot efi files over to the desktop and using gparted deleted the boot mmc partition and doubled the size it formatting it to fat32.

Then mounted the partition and copied over the boot files.

I had also added to the OS by installing another USB device with the /home partition. Resized this one too.

All of this relating to updating as it had issues updating the kernel and writing to the fat16 partition (now a fat32 partition).

Re: Volumio on Joggler

Posted: Thu Aug 16, 2018 3:25 am
by roobarb!
This looks really interesting!

Re: Volumio on Joggler

Posted: Thu Aug 16, 2018 8:21 am
by tobysnooker
Apparently the best way to learn is to fail. If so, then I've learned a lot in trying to get Volumio 2 working on the Xubuntu image!

There are a few MPD-based distros knocking around, which I think all started out as "RaspyFi". Out of this came:
Volumio - ARM and x86
RuneAudio - ARM
MoodeAudio - ARM

I'm pretty sure that Volumio consider themselves to be the true descendent of RaspyFi and their system is certainly the most complex as well as being the only one with x86 builds. They have a core app running on Node.js that spreads its tentacles pretty deep into the underlying OS to facilitate things such as changes to alsa and network settings. This is done through the GUI (Angular JS), communicating with the core app over websockets (socket.io). Once you throw in GUI-based management of a plug-in ecosystem including LMS, Spotify, youtube music etc. then things get complicated. This is especially true for my approach, which was ripping out build scripts and files from their github repository and trying to transplant it into the (different kernel) Xubuntu build.

I managed to get the GUI and (custom build of...) MPD working, but not the core app.

Plan B
I'm short on time right now so for the moment I'll have to go for Plan B: host Volumio2 on a different machine and then set up chromium on the joggler in touchscreen kiosk mode pointing to the web GUI of Volumio. The GUI will look the same, work a bit slower perhaps than everything running locally on the joggler and the music will play back through the remote device.

Plan C
Even though Moode Audio is an ARM-based distro I've had a look at the github repository and it looks much simpler than Volumio2: nginx, sqlite, php. It probably wouldn't be too hard to shift that stuff into the Xubuntu joggler image so I could give that a try at some point. The extras like minidlna, bluetooth playback and a few of the other extras would be a bit harder to get working.

I got the old version of volumio working on the joggler (the version before they switched to nodeJS), but nobody wants to run an old version! In any case the techniques I used would probably be equally applicable to getting Moode Audio running: add users and groups, install the same packages, change permissions, copy and edit config files (basically an application-level transplant).

As I alluded to before, probably the best thing would be to change the way the Volumio build script builds the image so it will work on the joggler, but as I don't know much about that kind of thing I can't do it (yet). The link to the Volumio build script on github is in a previous post. I'm sure that a suitably motivated and knowledgeable person on this forum could change the build script so it works for the joggler...

That's all from me for now, but if I have any updates in the future I'll post here.

Re: Volumio on Joggler

Posted: Thu Aug 16, 2018 4:10 pm
by pete
Thank you TobySnooker!

Trying your suggestings for Buzz's Ubuntu desktop build which I have running on a modded O2 Openframe 1 computer.
I think I am following your Plan A here.
Please let me know about my missteps here as I just let the fingers do the walking and do not know what I am doing.
;)

1 - referencing https://github.com/150balbes/Build-Volumio
2 - cloned zip file and unzipped here to downloads directory
3 - installed
apt-get install git squashfs-tools kpartx multistrap qemu-user-static samba debootstrap parted dosfstools qemu binfmt-support qemu-utils
4 - if on Ubuntu, you may need to remove $forceyes from line 989 of /usr/sbin/multistrap *
I do not see this file on my current build
5 - /home/joggler/Downloads/Build-Volumio-master
6 - ./build.sh -b <architecture> -d <device> -v <version>
./build.sh -b x86 -d x86 -v 2.0
7 - Stopped here as I do not want to build an image and just want to install Volumio on the build.

Re: Volumio on Joggler

Posted: Thu Aug 16, 2018 5:51 pm
by tobysnooker
Hi Pete,

I should have revealed more details of my Plan A, so apologies for that. I like to take the easy route for these things and this is as easy as I could get it. The rough steps I took are as follows:

1) I downloaded a pre-compiled image file for Volumio and used Win32 disk imager to put it on an SSD (via USB).
2) I then attached that (again via USB), to a Linux laptop and mounted the volumes. One of them contains the squashfs filesystem as a single file.
3) Squashfs is a bit of a pain to work with so I simply used 7-zip to expand it into "normal" files. I was a bit surprised that 7-zip could do that but there we go.
4) So used 7-zip to expand the squashfs file onto the (previously wiped) root volume of a joggler Xubuntu image.
5) I booted it up and it didn't work at all.

I think that's the quickest way of getting the Volumio boot volume onto a (possibly bootable) Xubuntu disk, but it means there is no chance to customise anything that goes on when the image is built.
The official image download is here (build 2.411):
http://updates.volumio.org/x86/volumio ... 6.img.zip (that's the one I used for my Plan A).
There are some dev releases with possibly alternative fixes, of which the following is the only one released after the 2.411 version above:
http://updates.volumio.org/x86/volumio ... 6.img.zip

I'd be very interested to hear how you get on with that...!

Re: Volumio on Joggler

Posted: Fri Aug 17, 2018 2:55 am
by pete
Thank you tobysnooker.

Today downloaded image you mentioned above and tried to run it via Virtual Machine Manager. So far it only starts to boot. Difficult with so little ram though.