Skip to content

InstallationInstructions

hayden-t edited this page Aug 17, 2021 · 56 revisions

Installation using packages

The support for installing SvxLink from prebuilt packages is unfortunately poor in most distributions. To improve the situation, more active package maintainers are needed. Maybe you are the right person for the job?

Here are some distributions where packages exist in one or another form:

  • Arch — SvxLink is available in the AUR

  • Gentoo — SvxLink is available in the core distribution. Sounds not packaged.

  • Ubuntu — Packages availabe

  • Fedora — Packages in core distribution but are very old. Latest version is 11.11.1 from 27 nov 2011.

  • Debian — Packages available in testing.

  • Raspbian — Packages available in testing (For Raspberry Pi).

So which distribution is the best one for SvxLink? Unfortunately the most up-to-date distributions, Arch and Gentoo, I would not recommend to beginners since they require a fair amount of Linux knowledge. Ubuntu is quite easy to use but the packages are getting old. The Fedora packages are so old that I would not recommend using them at all. I hope the situation will improve.

If you have managed to install SvxLink using one of the instructions above, continue below reading the post install stuff chapter.

Installation from source

If you are not running one of the distributions that there are prebuilt binaries for, you will have to build the whole thing from source. SvxLink has a few dependencies that you need to install before trying to compile. The following are required:

The following are recommended:

  • libasound — For ALSA support

  • speex — Improved audio quality for EchoLink and remote transceivers

  • opus — Improved audio quality for remote transceivers and SvxReflector

The following are optional:

  • rtl-sdr — For native RTL2832U DVB-T USB dongle SDR support

  • Doxygen — To generate developer documentation

  • Groff — To generate manual pages

You can probably find prebuilt binaries for these libs for your distribution. Otherwise you will just have to compile them as well.

To compile Qtel, version 4 or 5 of the Qt widget toolkit and the X window system are needed. There is a good chance that these will already be installed on your system. If Qt is not installed, find a prebuilt package or compile it from source. If the X window system is not installed, you are on your own…​

Now download the latest sources for SvxLink. If you are going to run the svxlink-server, you will also need the sounds-ll_LL-name-ss-YY.MM.tar.gz with the matching date (or latest if no matching) and desired language code (en_US for English). "name" can for example be the name of the speech synthesizer that generated the sound files. "ss" is the sampling rate. 16k is the normal sampling rate to use in SvxLink. Find a good spot to unpack and compile the source and cd into that directory. Your home directory will do fine for example.

You will also need to create a system user called 'svxlink' before installing if it does not already exist. The 'daemon' group is also needed so if that does not exist it must also be created. The following command will work on most distributions.

useradd -r -g daemon svxlink

The install and ldconfig step must be done as user root but the rest should be done as an ordinary user. The example below will install the SvxLink files in /usr, /etc and /var.

tar xvzf svxlink-YY.MM.tar.gz
cd svxlink-YY.MM/src
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc \
      -DLOCAL_STATE_DIR=/var ..
make
make doc
sudo make install
sudo ldconfig

If you are going to run the SvxLink server, unpack the sound files at a good location. The normal location for sound files is /usr/share/svxlink/sounds/. As user root, run the commands below. Adapt the commands to your needs by specifying the correct language code, name and version.

cd /usr/share/svxlink/sounds
tar xvjf /path-to-wherever-you-put-the-tar-file/svxlink-sounds-ll_LL-name-16k-YY.MM.tar.bz2
ln -s ll_LL-name-16k ll_LL

Specific installation instructions for different distributions:

Notes for specific hardware platforms:

Now continue below reading the post install stuff chapter.

Post install stuff

If you only are going to run Qtel, first read the Audio level adjustment chapter and then go directly to the Qtel User Docs.

If you are going to run the svxlink server, read on.

Hardware

To run the SvxLink server, some kind of hardware is needed to connect the computer to the transceiver.

It is possible under some circumstances to just use straight connections from the sound card to the transceiver but there is a risk of hardware damage and/or audio hum if it’s done wrong.

Have a look at this page for more specific information on different interface hardware.

Audio level adjustment

There are no audio level controls in SvxLink server nor Qtel. The levels must be adjusted with an external tool like aumix, kmix, alsamixer or whatever your favourite mixer is. I usually use the command line alsamixer application. Start one of the mixers and locate the controls to use for adjusting the levels. The output level is usually adjusted using the two sliders Pcm and Vol. The input level is usually adjusted using the Capture (sometimes called IGain) slider, not the Mic or Input (line-in) slider. The latter two are used to adjust the monitoring level of the two inputs. Set these two to zero. Select to use either the microphone or the line-in input. Set the Pcm, Vol and Mic/Input sliders half way up. Adjust the levels according to the instructions below.

To adjust the levels in Qtel, start by connecting to the *ECHOTEST* server. This EchoLink server will echo back everything you send to it. Right after the connection has been established, a greeting message will be played back. Adjust the speaker level to a comfortable level using the Pcm and Vol sliders. Press the PTT and say something and listen how it comes back. Adjust the Capture slider until the level of what comes back is about at the same level as the announcement message.

There is an experimental utility to do audio level calibration for FM based systems called devcal. The devcal (1) manual page describe how to use that utility. The reason to use that utility is that you get repoducible calibrations since the FM deviation for both transmit and receive are actually measured. To use the old way of audio level calibration, read on.

To adjust the levels for the SvxLink server, first set the PEAK_METER configuration variable to 1 in the receiver configuration section. Start the SvxLink server up and press *# on the keyboard. This will make the svxlink server identify itself. The # is only needed for the *-command when entering commands on the keyboard. When doing it from the radio, a * followed by a squelch close will trigger an identification. Do this a couple of times and adjust the Pcm and Vol sliders to the highest volume possible without distortion.

To adjust the audio input level, start by opening the squelch on the receiver so that SvxLink just hears noise. Pull the audio input gain sliders up until you see messages about distortion printed on the console. Then lower the audio gain until no distortion messages are printed. If you cannot make SvxLink print distortion messages, the input level is too low. You should try to fix this on the analogue side but it is possible to use the PREAMP configuration variable in the receiver section to fix it.

Now, activate the parrot module by pressing 1# on the keyboard. Use another transmitter to make a short transmission. Listen to the recorded audio and make sure it sounds good. Ask someone else to listen to both your original transmission and the repeated transmission from SvxLink. Ideally, the listener should hear no difference. Now try to transmit some DTMF digits and see if the digits are detected. If not, try to adjust the input level up or down and try again. Try all 16 digits: 0-9, *, #, A, B ,C, D. Digit A is often the hardest to detect.

As a rule of thumb, try to not pull the sliders over 90%. Some sound cards will distort the signal if the level is set too high. Instead, use the PREAMP configuration variable if received audio is too low.

Note: It is VERY important NOT to distort the input signal. This will significantly lower the performance of the signal processing code in SvxLink, so DTMF digits may not be detected, CTCSS squelch may not work, etc.

SvxLink server configuration

The default configuration file for SvxLink is /etc/svxlink/svxlink.conf. Module configuration files are placed under /etc/svxlink/svxlink.d. Edit the configuration files to your liking.

There is a voice greeting message sent to connecting echolink stations. This message should be replaced with a personal one. I most often use the audacity application to record sound clips if in a graphical environment. If not, a utility like arecord can be used. Any tool capable of recording raw sound files using 16kHz sampling rate and 16 bit signed samples is ok to use. Another alternative is to record the sound files using your favorite tool and then convert them to the correct format using the sox application. A third way is to use a speech synthesizer to generate the sound clip. The default sound clips for SvxLink have been generated using the Acapela Box online speech synthesizer. This is a commercial service though, so otherwise search for TTS in google.

Configuration information can be found in these manual pages link: (check your installed manual for latest additions though)

To set up a remote receiver, have a look at the remotetrx and the remotetrx.conf manual pages.

All manual pages are available on a properly installed SvxLink computer. These should match the version of SvxLink that is installed. Display a manual page by using the "man" command at the command prompt (e.g. man svxlink.conf).

After the configuration has been done, start the server by typing svxlink at the command prompt. It is possible to simulate DTMF input by pressing the 0-9, A-D, *, # keys (Not possible with --logfile option). Your command will be sent to the first logic in svlink.conf [GLOBAL] → LOGICS. Have a look at the user documentation to begin testing the server. To get help about command line options, start the svxlink server with the --help switch.

Note
To start the svxlink server in the background from the command line, use the --daemon switch. Do not use "&". This will make the server hang when trying to read from standard input.

Depending on how you installed SvxLink, there may be a start script. When everything is configured and working, start the SvxLink server using the startscript, something like /etc/init.d/svxlink start script. A logfile will be put in /var/log/svxlink.

SvxReflector Configuration

The SvxReflector server doesn’t have much to configure but you need to add at least one user to be able to connect. The default configuration file is called '/etc/svxlink/svxreflector.conf' You need a user under the [USERS] section and that should point to a corresponding variable under the [PASSWORDS] section. Many users may share the same password if desired. There must be a unique user (e.g. callsign) for each connecting node.

The default LISTEN_PORT is 5300. Don’t change that unless you have a good reason. Make sure that your firewall will let through incoming connections on 5300/tcp. No other ports need to be opened.

On the SvxLink server side a ReflectorLogic needs to be configured.

For more details, have a look at the svxreflector and svxreflector.conf manual pages.

Clone this wiki locally