Skip to content

Installation for Linux

ann0see edited this page Sep 25, 2020 · 117 revisions

( en | es )

Home > Using Jamulus > Linux installation

Right now, we don't provide official packages for Jamulus, but you can use an all-in-one script if you want. Meanwhile, compiling the sources is quite easy. You can also have a look at issue #223 to see if your distribution provides a package.

Get Jamulus sources

Open up a terminal window (command line - CTRL+ALT+t on Ubuntu and related distros), and download and unzip the sources for the latest release.

If you wish, you can also clone the GitHub repo or use this one-liner instead:

R=`curl -s https://api.github.com/repos/corrados/jamulus/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")'` && wget https://github.com/corrados/jamulus/archive/$R.tar.gz && tar -xvf $R.tar.gz

Install dependencies

On Ubuntu-based distributions 18.04+, and on Debian 9 or 10, use this:

First, update your package list: sudo apt-get update

Now you can install the dependent packages: sudo apt-get install build-essential qt5-qmake qtdeclarative5-dev qt5-default qttools5-dev-tools libjack-jackd2-dev

On Debian 11 (bullseye) or later, and Raspberry Pi Raspbian Buster release or later, use:

sudo apt-get install build-essential qtdeclarative5-dev qt5-default qttools5-dev-tools libjack-jackd2-dev

On Fedora use:

sudo dnf install qt5-qtdeclarative-devel jack-audio-connection-kit-dbus jack-audio-connection-kit-devel

Qjackctl: Optional, but recommended

QjackCtl is a utility to help you set up the Jack audio server (installed as part of the dependencies above). Install it via

sudo apt-get install qjackctl

You may also wish to consider using a low-latency kernel (eg. for Ubuntu 18.04: sudo apt-get install linux-lowlatency-hwe-18.04).

Compile this bad boy

Now cd into the jamulus sources directory you downloaded (either with git or after downloading the .zip file):

cd jamulus

Now compile the sources with the following commands (the last make may take several minutes to run):

qmake Jamulus.pro
make clean
make
sudo make install

Set up your sound card to work with Jamulus

Configure Jack with QJackCtl

Jamulus clients need Jack to run, but you need to configure that first. The recommended method is to use QjackCtl.

  1. Open the command shell e.g. with Crtl-Alt-T and
  2. execute the command qjackctl you will see the Jack Audio Connection Kit
  3. Check or adapt the settings in QjackCtl (see settings below)
  4. Start Jack by pressing the Start-Button You can Stop Jack after Quitting Jamulus)

Settings for Jack Audio Connection Kit

The exact settings for Jack will depend on what your audio interface/sound card is capable of.

Configure Jack in qjackctl in Settings and do the following:

  1. Set the audio Interface to the one you want (there may be several in the list)
  2. Set the Sample Rate to 48000
  3. Set the Frames/Period to 128 and Periods/Buffer at 2 at first
  4. Restart Jack to take any new settings

Start Jamulus

  1. Open the command shell e.g. with Crtl-Alt-T and
  2. execute the command Jamulus and you will start the Jamulus Client

Remark: To run Jamulus, type Jamulus (with a capital J) on the command line. You should see the Jamulus client in a window.

Jamulus puts itself into /usr/local/bin. You can now delete the sources directory you compiled from.

If you get problems with sound breaking up (in particular XRUN errors reported by Jack/QJackCtl) try setting bigger values (eg 256 frames or 3 periods) in step 3 above, or lower ones (eg 64 frames) for better performance. See the troubleshooting page otherwise.

All installed?

Have a look at Hardware Setup. For detailed information on using Jamulus, please see the help manual.


To update your installation to a new release

Download the new sources as per Get Jamulus and repeat just the compilation instructions as if for a new installation above.

Notes for geeks

  • The "make clean" is essential to remove the automatically generated Qt files which are present in the .tar.gz file and may not match the Qt version you are using.

  • To use an external shared OPUS library instead of the built-in use qmake "CONFIG+=opus_shared_lib" Jamulus.pro.

  • To use this file configure the software with qmake "CONFIG+=noupcasename" Jamulus.pro to make sure the output target name of this software is jamulus instead of Jamulus.

  • Users of Raspberry Pi: You may want to compile the client on another machine and run the binary on the Raspberry Pi. In which case, the only libraries you need to run it are those for a headless server build, but with the Jack sound packages.

  • As of version 3.5.3, Jamulus is no longer compatible with Qt4.