Installare Mumble ultima versione su Raspberry Pi
Come abbiamo visto nell’articolo VoIP e stazione remota, Mumble si presta in modo egregio alla realizzazione di un sistema server e client VoIP per attività radio. Mumble è disponibile per diversi sistemi operativi, tra i quali appunto Raspbian (Raspberry Pi OS), che lo mette a disposizione per l’installazione dal suo repository. Purtroppo la versione qui presente non è tra le più aggiornate, al momento Mumble è alla 1.4.0 mentre sul repository è fermo alla 1.3.0. Vedremo quindi come compilare Mumble per RPi direttamente dal codice sorgente, il procedimento è lungo, richiede un po’ di tempo, ma nulla di complicato.
Installare le librerie
La maggior parte delle librerie necessarie alla compilazione sono già disponibili sul repository Raspbian.
- Dopo aver aggiornato l’elenco dei pacchetti
sudo apt upgrade
- Installare le librerie
Raspberry Pi OS Bullseye
sudo apt install \
build-essential \
pkg-config \
qt5-qmake \
qtbase5-dev \
qtbase5-dev-tools \
qttools5-dev \
qttools5-dev-tools \
libqt5svg5-dev \
libboost-dev \
libssl-dev \
libprotobuf-dev \
protobuf-compiler \
libcap-dev \
libxi-dev \
libasound2-dev \
libogg-dev \
libsndfile1-dev \
libspeechd-dev \
libavahi-compat-libdnssd-dev \
libzeroc-ice-dev \
libpoco-dev
Raspberry Pi OS Buster
sudo apt install \
build-essential \
pkg-config \
qt5-default \
qttools5-dev \
qttools5-dev-tools \
libqt5svg5-dev \
libboost-dev \
libssl-dev \
libprotobuf-dev \
protobuf-compiler \
libcap-dev \
libxi-dev \
libasound2-dev \
libogg-dev \
libsndfile1-dev \
libspeechd-dev \
libavahi-compat-libdnssd-dev \
libzeroc-ice-dev \
libpoco-dev
Installare CMake
Mumble utilizza il compilatore CMake, richiede la versione 3.15 o superiore. Sul repository di Raspbian Buster è attualmente disponibile la versione 3.16 e su Bullseye la 3.18, possiamo quindi installarla semplicemente con il comando:
sudo apt install cmake
Compilare CMake da sorgente (opzionale)
Nel caso in cui si desideri installare l’ultima versione aggiornata di cmake, occorre compilarlo da sorgente.
- Scaricare dalla pagina di download di CMake l’ultima versione stabile
wget https://github.com/Kitware/CMake/releases/download/v3.21.2/cmake-3.21.2.tar.gz
- Scompattare l’archivio
tar -zxvf cmake-3.21.2.tar.gz
- Rimuovere l’archivio compresso
rm cmake-3.21.2.tar.gz
- Entrare nella cartella
cd cmake-3.21.2
- Compilare CMake
./bootstrap
make
sudo make install
- A questo punto eseguire il reboot del sistema
sudo reboot
Compilare Mumble
- Prelevare il codice sorgente dal repository GitHub di Mumble
git clone https://github.com/mumble-voip/mumble.git
- Entrare nella cartella
cd mumble
- Selezionare il branch 1.4.x che contiene l’ultima versione stabile
git checkout 1.4.x
- Recuperare ulteriori librerie
git submodule init
git submodule update
- Creare una cartella per la compilazione
mkdir build
cd build
- Preparare i file per la compilazione
cmake .. -Dspeechd=OFF -Dplugins=OFF -Dbundled-opus=OFF
Per risparmiare spazio e tempo di compilazione sono state aggiunte alcune opzioni. -Dspeechd=OFF disattiva il supporto di sintesi vocale con Speech Dispatcher, altrimenti andrebbe installata anche la libreria corrispondente e i campioni vocali. L’opzione -Dplugins=OFF disattiva i plugin per l’audio posizionale sui videogiochi. L’opzione -DOPUS_DISABLE_INTRINSICS=ON disattiva il supporto di registrazione nel formato ogg, purtroppo non supportato dalla libreria libsnd di RPi. L’opzione -Dbundled-opus=OFF disattiva la libreria Opus fornita con la distribuzione, che su RPi non funziona.
Se non occorre compilare il server, aggiungere -Dserver=OFF.
Per ulteriori opzioni di compilazione fare riferimento alla pagina CMake options.
- Compilare l’eseguibile
make
Alla fine della compilazione, che richiede diverse decine di minuti, all’interno della cartella build vi ritroverete l’eseguibile mumble pronto per l’utilizzo.
Collegamento sul desktop
Vediamo ora come creare un collegamento sul desktop per tenere il programma a portata di mouse.
- Aprire il File Manager, andare nella cartella /home/pi/Desktop e creare il file Mumble.desktop
- Editare il file inserendo il seguente contenuto
[Desktop Entry]
Name=Mumble
Comment=1.4.0
Icon=/home/pi/mumble/icons/mumble.xpm
Exec=/home/pi/mumble/build/mumble
Type=Application
Terminal=false
Encoding=UTF-8
Categories=None;
- Salvare e uscire
Al prossimo riavvio vedrete apparire sul desktop l’icona di Mumble e con un doppio click sarà possibile mandarlo in esecuzione.
Riferimenti
- Wiki Mumble, Building Linux;
- GitHub Mumble, Building on Linux;
- GitHub Mumble, CMake options;
- Installing CMake;
Argomenti correlati
Questa opera è distribuita con:
licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Italia.
Si declina ogni responsabilità per eventuali errori ed omissioni e gli eventuali danni che ne dovessero conseguire. Per ulteriori informazioni consultare le note legali.
I followed your steps but used CMake V3.20.2 which latest.
Everything went well until I got to the Mumble CMake step. It cannot find the Poco component. Did I miss installing a library?
Thank You.
Kevin
cmake .. -Dspeechd=OFF -Dplugins=OFF
— The C compiler identification is GNU 8.3.0
— The CXX compiler identification is GNU 8.3.0
— Detecting C compiler ABI info
— Detecting C compiler ABI info – done
— Check for working C compiler: /usr/bin/cc – skipped
— Detecting C compile features
— Detecting C compile features – done
— Detecting CXX compiler ABI info
— Detecting CXX compiler ABI info – done
— Check for working CXX compiler: /usr/bin/c++ – skipped
— Detecting CXX compile features
— Detecting CXX compile features – done
— Performing Test COMPILER_HAS_MBIG_OBJ
— Performing Test COMPILER_HAS_MBIG_OBJ – Failed
— ##################################################
— Mumble release ID:
— Mumble version: 1.4.0.0
— Architecture: x86
— Build type: Release
— ##################################################
— Qt5 component found: Core | Version: 5.11.3
— Qt5 component found: Network | Version: 5.11.3
— Qt5 component found: Xml | Version: 5.11.3
— OpenSSL component found: Crypto | Version: 1.1.1d
— OpenSSL component found: SSL | Version: 1.1.1d
— Protobuf found | Version: 3.6.1
— Qt5 component found: Concurrent | Version: 5.11.3
— Qt5 component found: Sql | Version: 5.11.3
— Qt5 component found: Svg | Version: 5.11.3
— Qt5 component found: Widgets | Version: 5.11.3
— Poco component not found: Zip
— Regular Poco search failed – looking for Poco include dir manually…
CMake Error at src/mumble/CMakeLists.txt:398 (message):
Unable to locate Poco include directory
— Configuring incomplete, errors occurred!
Hi Kevin, it seems that Poco files are missed in the Mumble source, it didn’t happen during my installation. Moreover you can try to manually build the Poco library (https://pocoproject.org/download.html#building). Let me know if it works.
I got it. All I needed to do was run this:
sudo apt-get install libpoco-dev
After that the rest of the build went very smooth.
Thank you for the great tutorial!
Thanks for your feedback. I will update the tutorial with your found!
73
Mine was fine until right after cd build. this is what happened:
pi@rigpi2:~/mumble/build $ cmake .. -Dspeechd=OFF -Dplugins=OFF –
CMake Error: Unknown argument –
CMake Error: Run ‘cmake –help’ for all supported options.
What to do now?
Hi Alan,
your copy and past was partial, you miss the words after the last “-“:
cmake .. -Dspeechd=OFF -Dplugins=OFF -DOPUS_DISABLE_INTRINSICS=ON
OK I tried that.
pi@rigpi2:~/mumble/build $ cmake .. -Dspeechd=OFF -Dplugins=OFF – DOPUS_DISABLE_INTRINSICS=ON
CMake Error: Unknown argument –
CMake Error: Run ‘cmake –help’ for all supported options.
OK. I found that I had and extra space before DOPUS. But now this happens:
pi@rigpi2:~/mumble/build $ cmake .. -Dspeechd=OFF -Dplugins=OFF -DOPUS_DISABLE_INTRINSICS=ON
— ##################################################
— Mumble release ID:
— Mumble version: 1.5.0
— Architecture: armv6
— Build type: Release
— ##################################################
— Qt5 component found: Core | Version: 5.11.3
— Qt5 component found: Network | Version: 5.11.3
— Qt5 component found: Xml | Version: 5.11.3
— OpenSSL component found: Crypto | Version: 1.1.1d
— OpenSSL component found: SSL | Version: 1.1.1d
— Qt5 component found: Concurrent | Version: 5.11.3
— Qt5 component found: Sql | Version: 5.11.3
— Qt5 component found: Svg | Version: 5.11.3
— Qt5 component found: Widgets | Version: 5.11.3
CMake Warning at src/mumble/CMakeLists.txt:458 (message):
libsnfile is missing Opus-support -> No Opus-format recording
— X11 component found: Xext
— X11 component found: Xi
— Opus package version from git repo: 1.3.1-97-g6b6035ae
— Opus project version: 1.3.1
— Performing Test VLA_SUPPORTED — success
— The following features have been enabled:
* OPUS_BUILD_SHARED_LIBRARY, build shared library.
* OPUS_DISABLE_INTRINSICS, disable all intrinsics optimizations.
* OPUS_ENABLE_FLOAT_API, compile with the floating point API (for machines with float library).
* OPUS_HARDENING, run-time checks that are cheap and safe for use in production.
* OPUS_INSTALL_PKG_CONFIG_MODULE, install pkg-config module.
* OPUS_INSTALL_CMAKE_CONFIG_MODULE, install CMake package config module.
* OPUS_VAR_ARRAYS, use variable length arrays for stack arrays.
* OPUS_STACK_PROTECTOR, use stack protection.
* OPUS_FORTIFY_SOURCE, add protection against buffer overflows.
— The following OPTIONAL packages have been found:
* Git
— The following features have been disabled:
* OPUS_BUILD_TESTING, build tests.
* OPUS_CUSTOM_MODES, enable non-Opus modes, e.g. 44.1 kHz & 2^n frames.
* OPUS_BUILD_PROGRAMS, build programs.
* OPUS_FIXED_POINT, compile as fixed-point (for machines without a fast enough FPU).
* OPUS_FLOAT_APPROX, enable floating point approximations (Ensure your platform supports IEEE 754 before enabling).
* OPUS_ASSERTIONS, additional software error checking.
* OPUS_FUZZING, causes the encoder to make random decisions (do not use in production).
* OPUS_CHECK_ASM, enable bit-exactness checks between optimized and c implementations.
* OPUS_FIXED_POINT_DEBUG, debug fixed-point implementation.
* OPUS_USE_ALLOCA, use alloca for stack arrays (on non-C99 compilers).
* OPUS_NONTHREADSAFE_PSEUDOSTACK, use a non threadsafe pseudostack when neither variable length arrays or alloca is supported.
* OPUS_FAST_MATH, enable fast math (unsupported and discouraged use, as code is not well tested with this build option).
— Disabling warnings for targets: opus
INSTALL TARGETS – target opus has PUBLIC_HEADER files but no PUBLIC_HEADER DESTINATION.
— Disabling warnings for targets: celt
— Disabling warnings for targets: speex
— Disabling warnings for targets: rnnoise
— Qt5 component found: DBus | Version: 5.11.3
CMake Error at cmake/pkg-utils.cmake:87 (message):
Qt5 component not found: LinguistTools
Call Stack (most recent call first):
cmake/qt-utils.cmake:40 (find_pkg)
cmake/qt-utils.cmake:59 (compile_translations)
src/mumble/CMakeLists.txt:819 (include_translations)
— Configuring incomplete, errors occurred!
See also “/home/pi/mumble/build/CMakeFiles/CMakeOutput.log”.
See also “/home/pi/mumble/build/CMakeFiles/CMakeError.log”.
OK progress. I had missed the qttools5-dev-tools library. Went back and installed that. Now cmake is working. It is at 80%. Thank you.