Hi,
I totally agree with you. This is for me the BIG issue in Volumio, and the problem is still there in the latest versions. I don’t understand why nobody from the “devt” team has taken a look at this.
Anyway, it looks your are in a situation that is very similar to the one I encountered, so I guess I can help you.
As far as I understand (I may be wrong), when the music library is large “enough”, the scan of this library by volumio takes a lot of time, and also a lot of memory. If you add the touch display plugin, this plugin runs an additionnal web browser, which takes more memory. The whole system comes then into a swap process (you can seen the “kswap0” process running"), but there is no swap on this RPI. So, it takes years…
A workaround is possible in 3 steps. See below. You need to have a ssh connection to your volumio RPI. You must also to be able to edit some files on your RPI (you can use “nano” for this).
First step: you must get sure that the automatic update of volumio database is switched off. When modifying the music library, you will have to tell volumio to update it manually, but only after the boot sequence is complete.
For doing this, you must:
- check this line in /etc/mpd.conf
auto_update “no”
Value must be “no”. If “yes”, put “no” instead.
-
do the same thing in “/volumio/app/plugins/music_service/mpd/mpd.conf.tmpl”
-
in file “/volumio/app/plugins/music_service/mpd/config.json”, you must set this value to false:
“auto_update”:{
“type”: “boolean”,
“value”: false
},
Second step: once you have done this, you must temporarly “unplug” the “touch display” plugin, to prevent it from launching the browser: just edit the “/opt/volumiokiosk.sh” file (you must be root) and insert “exit 0” just after the first line, like this:
#!/bin/bash
exit 0
while true; do timeout 3 bash -c “</dev/tcp/127.0.0.1/3000” >/dev/null 2>&1 && break; done
…
Now, you can reboot your RPI, or just run “killall node”, this will restart everything, but nothing for the touch display. You should see nothing on your LCD display.
Third step: in this configuration, you must now estimate how long it takes for volumio to load your database. When volumio is ready to play music (i.e when you can actually explore you music library in volumio), type “ps -aux | grep node” in you sshconsole
volumio@volumio-sub:~$ ps -aux | grep node
volumio 1322 0.7 9.4 206464 93520 ? Ssl 09:24 0:19 /usr/local/bin/node /volumio/index.js
volumio 1376 0.0 2.6 72636 25908 ? Sl 09:25 0:00 /bin/node /volumio/app/plugins/miscellanea/albumart/serverStartup.js 3001 /data/albumart
volumio 1382 0.0 3.5 115112 35092 ? Sl 09:25 0:01 /bin/node /volumio/app/plugins/miscellanea/albumart/serverStartup.js 3001 /data/albumart
volumio 1383 0.0 3.5 115240 35008 ? Sl 09:25 0:01 /bin/node /volumio/app/plugins/miscellanea/albumart/serverStartup.js 3001 /data/albumart
volumio 1388 0.0 3.5 115132 34864 ? Sl 09:25 0:01 /bin/node /volumio/app/plugins/miscellanea/albumart/serverStartup.js 3001 /data/albumart
volumio 2953 0.0 0.1 4164 1380 pts/1 S+ 10:08 0:00 grep node
volumio@volumio-sub:~$
The first line will tell you how long it takes for the /usr/local/bin/node process to finish its job (19 seconds in my example, see “0:19” just before /usr/local/bin/node on the first line).
Yours might be much longer…
Repeat this operation a couple of times: killall node, wait for volumio to be ready, and check the time with the ps command.
Once you are pretty sure about this duration (it should more or less be stable), edit again the /opt/volumiokiosk.sh file, and replace “exit 0” with “sleep X”, where X is a number of seconds which is slightly larger than the time you need. For example, if the node process needs 2:30 minutes, put 3 minutes (i.e 180), like:
#!/bin/bash
sleep 180
while true; do timeout 3 bash -c “</dev/tcp/127.0.0.1/3000” >/dev/null 2>&1 && break; done
…
And you’re done. Just reboot, or run “killall node” again.
Hope this helps.
Again, it would be very nice to have a feedback from the Volumio team on this issue.
Denis