Installing3.2.0 on a Raspberry Pi 4

I am starting a new thread as having had one unsuccessful attempt to install 3.2.0 on a raspberry pi 4. I am following through steps in previous threads, but I got stuck somewhere. So, this thread will be edited to become a stream of conscious description of what I’m doing. I will go wrong at some point, and I would appreciate help and advice. As, I strongly suspect that I will not succeed without it.

At present I’ve downloaded the source by a git clone. I’ve then gone into app/gui/qt and am running ./build-rpi-app

However, that just goes into an infinite loop posting the current error:

es.qrc': Cannot find file 'info/COMMUNITY.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CONTRIBUTORS.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CORETEAM.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/LICENSE.html'
RCC: Warning: No resources in 'info_files.qrc'.
/usr/lib/qt5/bin/qmake -o Makefile SonicPi.pro -qtconf /usr/lib/arm-linux-gnueabihf/qt5/qt.conf -early QMAKE_CC=arm-linux-gnueabihf-gcc QMAKE_CXX=arm-linux-gnueabihf-g++ QMAKE_LINK=arm-linux-gnueabihf-g++ QMAKE_QMAKE=/usr/bin/arm-linux-gnueabihf-qmake PKG_CONFIG=arm-linux-gnueabihf-pkg-config -before
WARNING: Failure to find: help_files.qrc
/usr/lib/qt5/bin/rcc: File does not exist 'help_files.qrc'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CHANGELOG.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/COMMUNITY.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CONTRIBUTORS.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CORETEAM.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/LICENSE.html'
RCC: Warning: No resources in 'info_files.qrc'.
/usr/lib/qt5/bin/qmake -o Makefile SonicPi.pro -qtconf /usr/lib/arm-linux-gnueabihf/qt5/qt.conf -early QMAKE_CC=arm-linux-gnueabihf-gcc QMAKE_CXX=arm-linux-gnueabihf-g++ QMAKE_LINK=arm-linux-gnueabihf-g++ QMAKE_QMAKE=/usr/bin/arm-linux-gnueabihf-qmake PKG_CONFIG=arm-linux-gnueabihf-pkg-config -before
WARNING: Failure to find: help_files.qrc
/usr/lib/qt5/bin/rcc: File does not exist 'help_files.qrc'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CHANGELOG.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/COMMUNITY.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CONTRIBUTORS.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CORETEAM.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/LICENSE.html'
RCC: Warning: No resources in 'info_files.qrc'.
/usr/lib/qt5/bin/qmake -o Makefile SonicPi.pro -qtconf /usr/lib/arm-linux-gnueabihf/qt5/qt.conf -early QMAKE_CC=arm-linux-gnueabihf-gcc QMAKE_CXX=arm-linux-gnueabihf-g++ QMAKE_LINK=arm-linux-gnueabihf-g++ QMAKE_QMAKE=/usr/bin/arm-linux-gnueabihf-qmake PKG_CONFIG=arm-linux-gnueabihf-pkg-config -before
WARNING: Failure to find: help_files.qrc
/usr/lib/qt5/bin/rcc: File does not exist 'help_files.qrc'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CHANGELOG.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/COMMUNITY.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CONTRIBUTORS.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CORETEAM.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/LICENSE.html'
RCC: Warning: No resources in 'info_files.qrc'.
/usr/lib/qt5/bin/qmake -o Makefile SonicPi.pro -qtconf /usr/lib/arm-linux-gnueabihf/qt5/qt.conf -early QMAKE_CC=arm-linux-gnueabihf-gcc QMAKE_CXX=arm-linux-gnueabihf-g++ QMAKE_LINK=arm-linux-gnueabihf-g++ QMAKE_QMAKE=/usr/bin/arm-linux-gnueabihf-qmake PKG_CONFIG=arm-linux-gnueabihf-pkg-config -before
WARNING: Failure to find: help_files.qrc
/usr/lib/qt5/bin/rcc: File does not exist 'help_files.qrc'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CHANGELOG.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/COMMUNITY.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CONTRIBUTORS.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CORETEAM.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/LICENSE.html'
RCC: Warning: No resources in 'info_files.qrc'.
/usr/lib/qt5/bin/qmake -o Makefile SonicPi.pro -qtconf /usr/lib/arm-linux-gnueabihf/qt5/qt.conf -early QMAKE_CC=arm-linux-gnueabihf-gcc QMAKE_CXX=arm-linux-gnueabihf-g++ QMAKE_LINK=arm-linux-gnueabihf-g++ QMAKE_QMAKE=/usr/bin/arm-linux-gnueabihf-qmake PKG_CONFIG=arm-linux-gnueabihf-pkg-config -before
WARNING: Failure to find: help_files.qrc
/usr/lib/qt5/bin/rcc: File does not exist 'help_files.qrc'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CHANGELOG.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/COMMUNITY.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CONTRIBUTORS.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CORETEAM.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/LICENSE.html'
RCC: Warning: No resources in 'info_files.qrc'.
/usr/lib/qt5/bin/qmake -o Makefile SonicPi.pro -qtconf /usr/lib/arm-linux-gnueabihf/qt5/qt.conf -early QMAKE_CC=arm-linux-gnueabihf-gcc QMAKE_CXX=arm-linux-gnueabihf-g++ QMAKE_LINK=arm-linux-gnueabihf-g++ QMAKE_QMAKE=/usr/bin/arm-linux-gnueabihf-qmake PKG_CONFIG=arm-linux-gnueabihf-pkg-config -before
WARNING: Failure to find: help_files.qrc
/usr/lib/qt5/bin/rcc: File does not exist 'help_files.qrc'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CHANGELOG.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/COMMUNITY.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CONTRIBUTORS.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/CORETEAM.html'
RCC: Error in 'info_files.qrc': Cannot find file 'info/LICENSE.html'
RCC: Warning: No resources in 'info_files.qrc'.
/usr/lib/qt5/bin/qmake -o Makefile SonicPi.pro -qtconf /usr/lib/arm-linux-gnueabihf/qt5/qt.conf -early QMAKE_CC=arm-linux-gnueabihf-gcc QMAKE_CXX=arm-linux-gnueabihf-g++ QMAKE_LINK=arm-linux-gnueabihf-g++ QMAKE_QMAKE=/usr/bin/arm-linux-gnueabihf-qmake PKG_CONFIG=arm-linux-gnueabihf-pkg-config -before
WARNING: Failure to find: help_files.qrc
/usr/lib/qt5/bin/rcc: File does not exist 'help_files.qrc'
RCC: Error in 'info_files.qrc': Cannot find file 'inf

I’m now trying the ‘build-delian-install’ to see if that works.

EDIT: Failure. Trying again following the directions in: INSTALL-RASPBERRY-PI.md, but again I’m finding things that - concern me. E.g. libqtscintilla2-8 is not available in Raspbian. I’ve installed the qt5 version of it, but I’m concerned about library not being the same as the install file.

EDIT: I’m getting a lot of deprecation errors.

it_blame_each.part.0’,
    inlined from ‘rb_git_blame_each’ at rugged_blame.c:240:14:
/usr/include/ruby-2.5.0/ruby/ruby.h:1779:3: error: call to ‘rb_varargs_bad_length’ declared with attribute error:  argument length doesn't match
   rb_varargs_bad_length(argc, vargc)), \
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/ruby-2.5.0/ruby/ruby.h:2474:6: note: in expansion of macro ‘rb_varargs_argc_check’
      rb_varargs_argc_check(rb_funcall_argc, rb_funcall_nargs), \
      ^~~~~~~~~~~~~~~~~~~~~
rugged_blame.c:246:10: note: in expansion of macro ‘rb_funcall’
   return rb_funcall(self, rb_intern("to_enum"), 1, CSTR2SYM("each"), self);
          ^~~~~~~~~~
make: *** [Makefile:243: rugged_blame.o] Error 1
Compiling native extension in /home/pi/TEMP/sonic-pi/app/server/ruby/vendor/ffi-1.9.17/ext/ffi_c
In file included from Call.h:36,
                 from Function.h:48,
                 from Call.c:57:
Call.c: In function ‘rbffi_do_blocking_call’:
Thread.h:78:39: warning: implicit declaration of function ‘rb_thread_call_without_gvl’; did you mean ‘rb_thread_wait_for’? [-Wimplicit-function-declaration]
 # define rbffi_thread_blocking_region rb_thread_call_without_gvl
                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
Call.c:355:5: note: in expansion of macro ‘rbffi_thread_blocking_region’
     rbffi_thread_blocking_region(call_blocking_function, data, (void *) -1, NULL);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function.c: In function ‘async_cb_event’:
Function.c:563:9: warning: implicit declaration of function ‘rb_thread_call_without_gvl’; did you mean ‘rb_thread_call_with_gvl’? [-Wimplicit-function-declaration]
         rb_thread_call_without_gvl(async_cb_wait, &w, async_cb_stop, &w);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
         rb_thread_call_with_gvl
Copying /home/pi/TEMP/sonic-pi/app/server/ruby/vendor/ffi-1.9.17/ext/ffi_c/ffi_c.so to ./../rb-native/2.5.0/
Compiling native extension in /home/pi/TEMP/sonic-pi/app/server/ruby/vendor/atomic/ext
atomic_reference.c: In function ‘ir_alloc’:
atomic_reference.c:27:5: warning: ‘rb_data_object_alloc’ is deprecated: by rb_data_object_wrap [-Wdeprecated-declarations]
     return rb_data_object_alloc(klass, (void *) Qnil, ir_mark, NULL);
     ^~~~~~
In file included from /usr/include/ruby-2.5.0/ruby.h:33,
                 from atomic_reference.c:13:
/usr/include/ruby-2.5.0/ruby/ruby.h:138

That has completed. Now I’m trying to follow the instruction to run rp-build-app, but I get:

./rp-build-app 
We're working to update the build process for SP 2.11, this script hasn't been updated yet, and may not work, try ./build-ubuntu-app instead!

Trying build-ubuntu-app

It certainly is possible to get Sonic Pi 3.2dev running on a Pi4, and I have been using it on mine for several weeks now. My build is largely based on the Debian script, although there are one or two deviations from that. Along the way, there have been one or two hiccups, as the source code has been developed and altered…there was a period when it wouldn’t build even on a Mac until Sam found a solution. The problem had probably always been there, but was revealed when the loading of icons was modified to reduce their memory impact. More recently there have been some major layout modifications to the gui code, which have again impacted the build process. The net result is that the various scripts have tended to lag behind a bit. build-rpi-app is certainly no good to you.
I will try and put together some notes to help you, although I am about to have some of my grandchildren staying, so it may take a bit of time.
I am awaiting a new sd card, and I will do a build from scratch on that, documenting as I go along.
It is worth the effort to do because SP3.2 works beautifully on a 4Gb Pi4. Also the same SD card will then work on a Pi3B+ for example and SP3.2dev runs well on that (1Gb ram version). Initially there were problems because of the memory hogging by the SP icons which meant that it was requiring about 1Gb of RAM!!, but once that was sorted it was fine.
Looking at your output above, it looks like the help system has not been prebuilt using

ruby ../../server/ruby/bin/i18n-tool.rb -t
cp -f utils/ruby_help.tmpl utils/ruby_help.h
ruby ../../server/ruby/bin/qt-doc.rb -o utils/ruby_help.h

run from the qt folder. Note the last of these commands has altered in the last week following recent commits, as source files have moved into the new utils folder. So it is a bit of a minefield at present, although this has been updated in the debian script. This has a (notified) typo error using lrulease instead lf lrelease in line 203 which will be corrected soon.
Also you don’t use the qscintilla library version you mentioned.

I also hope to document soon instructions on setting up qjackctl so that you can easily use Qsynth and/or Helm synths which you can drive from Sonic Pi via midi and route their audio output back into Sonic Pi: all without the need for an additional sound card on the Pi4 or Pi3B+.

1 Like

Thanks @robin.newman. I have a build running right this second, from the build-ubuntu-app script or similar. It hasn’t run into the same problem. I’ll see how far it gets.

If you’re prepared to give advice, then I might have some hope of getting it done. I think I’ll have no chance otherwise :slight_smile:

The build-ubuntu-app failed with this error:

Copying /home/pi/TEMP/sonic-pi/app/server/ruby/vendor/fast_osc-0.0.12/ext/fast_osc/fast_osc.so to ../../server/ruby/bin/../rb-native/2.5.0/
Compiling native extension in /home/pi/TEMP/sonic-pi/app/server/ruby/vendor/did_you_mean-0.10.0/ext/did_you_mean
Copying /home/pi/TEMP/sonic-pi/app/server/ruby/vendor/did_you_mean-0.10.0/ext/did_you_mean/method_receiver.so to ../../server/ruby/bin/../rb-native/2.5.0/did_you_mean
Translated tutorial bs: 0.0% ready, 0.0% fuzzy.
Translated tutorial ca: 4.5% ready, 0.0% fuzzy.
Translated tutorial cs: 0.0% ready, 0.0% fuzzy.
Translated tutorial da: 1.0% ready, 0.0% fuzzy.
Translated tutorial de: 78.8% ready, 2.4% fuzzy.
Translated tutorial el: 2.6% ready, 0.0% fuzzy.
Translated tutorial es: 87.9% ready, 35.0% fuzzy.
Translated tutorial et: 0.0% ready, 0.0% fuzzy.
Translated tutorial fi: 0.0% ready, 0.0% fuzzy.
Translated tutorial fr: 96.7% ready, 6.2% fuzzy.
Translated tutorial gl: 0.0% ready, 0.0% fuzzy.
Translated tutorial hi: 0.0% ready, 0.0% fuzzy.
Translated tutorial hu: 0.0% ready, 0.0% fuzzy.
Translated tutorial id: 0.1% ready, 0.0% fuzzy.
Translated tutorial is: 11.1% ready, 1.0% fuzzy.
Translated tutorial it: 85.6% ready, 3.2% fuzzy.
Translated tutorial ja: 84.4% ready, 4.1% fuzzy.
Translated tutorial ko: 2.8% ready, 0.0% fuzzy.
Translated tutorial nb: 21.6% ready, 1.0% fuzzy.
Translated tutorial nl: 89.1% ready, 0.5% fuzzy.
Translated tutorial pl: 89.5% ready, 0.2% fuzzy.
Translated tutorial pt: 67.5% ready, 2.3% fuzzy.
Translated tutorial pt-BR: 31.6% ready, 0.0% fuzzy.
Translated tutorial ro: 87.1% ready, 3.2% fuzzy.
Translated tutorial ru: 96.7% ready, 13.3% fuzzy.
Translated tutorial sl: 3.0% ready, 0.0% fuzzy.
Translated tutorial sv: 5.4% ready, 0.0% fuzzy.
Translated tutorial tr: 0.1% ready, 0.0% fuzzy.
Translated tutorial zh: 9.4% ready, 0.1% fuzzy.
Translated tutorial zh-Hans: 9.5% ready, 0.2% fuzzy.
Translated tutorial zh-Hk: 0.0% ready, 0.0% fuzzy.
Translated tutorial zh-TW: 2.1% ready, 0.0% fuzzy.
Traceback (most recent call last):
	9: from ../../server/ruby/bin/qt-doc.rb:22:in `<main>'
	8: from ../../server/ruby/bin/qt-doc.rb:22:in `require_relative'
	7: from /home/pi/TEMP/sonic-pi/app/server/ruby/lib/sonicpi/runtime.rb:21:in `<top (required)>'
	6: from /home/pi/TEMP/sonic-pi/app/server/ruby/lib/sonicpi/runtime.rb:21:in `require_relative'
	5: from /home/pi/TEMP/sonic-pi/app/server/ruby/lib/sonicpi/gitsave.rb:14:in `<top (required)>'
	4: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
	3: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
	2: from /home/pi/TEMP/sonic-pi/app/server/ruby/vendor/rugged-0.26.0/lib/rugged.rb:6:in `<top (required)>'
	1: from /home/pi/TEMP/sonic-pi/app/server/ruby/vendor/rugged-0.26.0/lib/rugged.rb:14:in `rescue in <top (required)>'
/home/pi/TEMP/sonic-pi/app/server/ruby/vendor/rugged-0.26.0/lib/rugged.rb:14:in `require_relative': cannot load such file -- /home/pi/TEMP/sonic-pi/app/server/ruby/rb-native/2.5.0/rugged (LoadError)

I thought I’d have a go at installing 3.0.1 from the web page. But, I can’t even get it to install. It seems to be requiring libqt5scintilla2-12v5, which is replaced by libqscintilla2-qt5-dev, but the dpkg install doesn’t work.

When I then try to run sonic-pi, it gives me the following error.

$ sonic-pi
/opt/sonic-pi/bin/../app/gui/qt/sonic-pi: error while loading shared libraries: libqt5scintilla2.so.12: cannot open shared object file: No such file or directory

At present, I’d be happy to get any version of sonic-pi 3 installed and running. How can this be done? I can build up to compiling from there.

EDIT: I used the following to link a seemingly more recent version of the library to replace the needed one.

sudo  ln -s libqscintilla2_qt5.so.13.1 libqt5scintilla2.so.12

That then gives me an apparently booting sonic-pi. However, the splash screen just sits there, and eventually fails with a message saying that it could not start the server.

Hey I’m so glad you asked the question about getting SP3.2dev going on a pi4, because with recent updates to Raspbian Buster I’ve discovered it just got a whole lot easier. The supercollider-server package has been updated, and so now I find that you don’t have to build supercollider at all, but can just use the debian buster package. This means that the whole build process is a lot quicker. I found a spare micro sd card and have built SP3.2 on it from scratch this evening. Just need to make it a bit prettier with a desktop icon to start it, and then I’ll give a list of what is required. It could go in a script, but I prefer to do things in stages manually, which helps you understand what is going on, and makes it easier to recover if anything goes wrong.
There is only one “bodge” required. For some reason, which I haven’t yet fathomed rugged doesn’t compile with the compile-extensions.rb progam. I modify that program to miss it out, and instead install rugged to the Pi4 using sudo gem install rugged -v ="0.28.2" and then copy the installed gem into the Sonic Pi vendor folder and copy the rugged binary rugged.so manually into the rb-native/2.5.0 folder.

1 Like

Thanks. I’ll wait for you to finish and (if you would be so kind) post updates, because I’m really not getting very far myself.

My attempt to use the ubuntu install script failed due to rugged.

I have now posted my build details in a separate post here Hope you find it useful.

1 Like