Установка SVXLINK из исходников

обновлено в июле 2024

[ установка из репозитория | установка из исходников | настройка | возможности ]

Инструкция (для подготовленных радиолюбителей) по установке SvxLink из исходных кодов, на Raspberry_Pi c SD-картой не менее 4Гб.


Подготовка

Скачиваем свежий Raspberry Pi Imager, выбираем образ Lite, для вашего 'железа' и создаём загрузочную SD-карту. Нужно будет указать логин и пароль, подключение для wifi (если нужно) и включить sshd.

Вставляем SD-карту в плату, подаём питание, подключаемся к локальной сети, находим IP вашей платы.

Подключаем интерфейс для радиостанции или звуковую карту с гарнитурой (для тестирования и предварительной настройки).

Заходим в консоль, через PuTTY (вводим IP платы и юзер/пароль тот который вы указали)

####


Установка

(все, приведённые ниже, команды, нужно, по очереди, копировать в консоль и смотреть на результат)

Первым делом обновляемся
cd ~
sudo apt update
sudo apt upgrade -y
Добавляем необходимые библиотеки и программы
sudo apt-get -yq install gcc g++ make cmake libgcrypt-dev libgcrypt20-dev libgsm1-dev libsigc++-2.0-dev 
sudo apt-get -yq install tcl-dev libspeex-dev libasound2-dev libpopt-dev libssl-dev libopus-dev groff 
sudo apt-get -yq install git mc libjsoncpp-dev libgpiod-dev gpiod librtlsdr-dev libogg-dev 
sudo apt-get -yq install ca-certificates doxygen alsa-utils vorbis-tools curl rtl-sdr
sudo apt-get -yq install libcurl4-openssl-dev libcurl4-openssl-dev git-core
Создаём пользователя svxlink, с нужными свойствами
sudo useradd -rG audio,plugdev,gpio,dialout svxlink
sudo gpasswd -a svxlink gpio
Скачиваем исходный код
git clone https://github.com/sm0svx/svxlink.git
mkdir svxlink/src/build
cd svxlink/src/build
Проверяем конфигурацию и смотрим чего не хватает
cmake -DUSE_QT=OFF -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc -DLOCAL_STATE_DIR=/var -DWITH_SYSTEMD=ON ..
Когда Systemd не нужен - пишем так
cmake -DUSE_QT=OFF -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc -DLOCAL_STATE_DIR=/var -DCMAKE_BUILD_TYPE=Release ..
Если всё нормально, компилируем и устанавливаем. Время компиляции зависит от типа платы и длится примерно 10-30 минут
make -j4
make doc
sudo make install
sudo ldconfig
Устанавливаем русскоязычные звуковые файлы (спасибо ua6hjq):
wget http://ua6hjq.qrz.ru/files/rus-16k.tgz
sudo tar xvf rus-16k.tgz -C /
sudo chown -R svxlink:svxlink /usr/share/svxlink/sounds
или берём англоязычные звуки здесь и устанавливаем как там написано.


Настройка

Итак, у нас есть собранный и установленный svxlink, который нужно настроить. Для этого (в первую очередь) редактируем эти файлы конфигурации

sudo mcedit /etc/svxlink/svxlink.conf
sudo mcedit /etc/svxlink/gpio.conf
Настройка описана в другой статье, а здесь пример минимальных настроек файлов svxlink.conf и gpio.conf для запуска svxlink.


Запуск

Если ранее вы выбрали ...SYSTEMD=ON, будет правильно запустить svxlink в режиме демона и включить автозапуск, чтобы он стартовал самостоятельно. Делаем так:

sudo systemctl enable --now svxlink

Запуск, остановка и перезапуск в режиме демона. Если вы изменили любой конфигурационный файл, нужно обязательно перезапустить svxlink

sudo systemctl start svxlink
sudo systemctl stop svxlink
sudo systemctl restart svxlink

Увидеть что делает svxlink, в реальном времени, посмотреть ошибки, можно так

tail -f /var/log/svxlink

для выхода нажмите Ctrl+C


Обновление

Чтобы иметь всегда свежую версию svxlink, обновите исходный код, делаем это так:

sudo systemctl stop svxlink
cd ~
cd svxlink
git pull
cd src/build
make clean

и далее повторяем компиляцию (как описано выше) начиная от строки cmake .... ваша рабочая конфигурация в /etc/svxlink/ останется не тронутой, сразу после обновления, вы можете запускать svxlink и работать как раньше.


Удаление

Если вы зашли в тупик, линк не работает как нужно, проще всё снести, чтобы потом поставить заново и опять не спать ночами. Для этого останавливаемся:

sudo systemctl stop svxlink
sudo systemctl stop remotetrx
sudo systemctl stop svxreflector
sudo systemctl stop svxlink_gpio_setup
sudo killall svxlink
sudo pkill -u svxlink

Далее, удаляем папки и файлы

sudo rm -f /usr/lib/arm-linux-gnueabihf/libasynccor* /usr/lib/arm-linux-gnueabihf/libasynccpp* /usr/lib/arm-linux-gnueabihf/libecholib*
sudo rm -f /usr/lib/arm-linux-gnueabihf/libasyncaudio* /usr/lib/arm-linux-gnueabihf/libsvxmisc.a
sudo rm -rf /usr/lib/arm-linux-gnueabihf/svxlink /usr/share/svxlink /usr/share/doc/svxlink /usr/include/svxlink
sudo rm -f /usr/sbin/svxlink* /usr/bin/svx* /usr/bin/remotetrx /usr/bin/siglevdetcal /usr/bin/devcal
sudo rm -rf /etc/svxlink /etc/default/svx* /etc/default/remotetrx /etc/systemd/system/svx*

Удаляем сервисы (если вы их ставили)

sudo rm -f /lib/systemd/system/svxlink_gpio_setup.service /lib/systemd/system/svxlink.service
sudo rm -f /lib/systemd/system/remotetrx.service /lib/systemd/system/svxreflector.service

Теперь нужно перезагрузиться

sudo reboot


Статьи

Installation Instructions
InstallSrcHwRpi
Using a USB Audio Device with the Raspberry Pi
Установка SvxLink из репозитория
Настройка SvxLink
Возможности SvxLink

UA6HJQ