Instalare Sistem pentru Rolink

Instalare Sistem pentru RoLink

Aici o să scriu pașii necesari pentru o instalare de svxlink pe Raspbery PI denumit în continuare „rsp”.

Material adunat cu ajutorul lui Lucian YO9INA.

Ca și echipament hardware este necesar un microcomputer RaspberryPi2 ,o placă de sunet pe USB (http://www.mivarom.ro/catalog/product_info.php/placa-sunet-usb-p-2183) și câteva componente hardware pentru conexiunea între stație, placa de sunet și doi pini din rsp.

Acestea ar fi, pentru un sistem mai pretențios și mai sigur din punct de vedere al semnalelor: două transformatoare de separație de pe plăcile de modemuri, două optocuploare, câteva rezistențe și condensatoare. Scheme se găsesc destule pe net sau puteți lua legatura cu Cristel YO4ISC, are deja făcute.

Și bineînteles este nevoie de o conexiune permanentă la net.

În curând vom face publice două imagini pentru RaspberyPi și OrangePi, cu sistemele deja configurate. Deci, pașii de mai jos nu vor mai fi necesari, însa cei ce vor dori să experimenteze, pot citi mai departe.

Instalarea de aici se referă DOAR la RaspberryPi, pentru OrangePI fiind un pic mai complicat deoarece imaginile existente pe net la ora actuală nu au toate componentele software necesare.

Se downloadează raspbian de aici

Imaginea conține distribuția jessie, instrucțiunile au fost testate pe wheezy, dar cred că nu sunt diferențe mari.

Imaginea se dezarhivează, rezultă un fișier cu extensia „img”

Se downloadează de aici win32diskimager, cu care se scrie fișierul img pe sd-card.

Sd-card recomand minim 4G, maxim 8G. Nu stiu dacă se mai gaseste de 4 dar de 8 e aprox. 20 de lei în Auchan. Să luați clasa „10”, au accesul mai rapid. Scrie pe card „Class 10”.

După ce se scrie imaginea, se bagă în rsp, se alimentează și conectat la un monitor și o tastatură ar trebui să se vadă ceva pe ecran și să ajungeti la „login”

Acolo scrieti „pi” (fără ghilimele), iar parola este „raspberry”

Odată intrat în sistem, dați comanda „sudo su -” ca să fiți root. Eu rulez comenzile ca și root, nu stau să scriu mereu „sudo”.  Indicația că sunteți root e că semnul „$” se schimbă în”#”.

Prima dată trebuie făcută expansiunea sistemului pe tot cardul. Pentru asta se dă comanda „raspi-config”. Mergeți la a doua optiune (aia cu Expand root partition…)

rpi-raspi-config

Mergeți apoi și la timezone și puneți-l pe București.

Cu comanda „reboot” restartați sistemul și repetați apoi pașii pentru login și sudo.

Se dau apoi în ordine urmatoarele comenzi:

apt-get update

apt-get upgrade

apt-get install git-core ca-certificates libsigc++-2.0-dev g++ make libsigc++-1.2-dev libgsm1-dev libpopt-dev

apt-get install tcl8.6-dev libgcrypt-dev libspeex-dev libasound2-dev alsa-utils curl  ntp fake-hwclock

apt-get install mc cmake libogg0 libogg-dev libogg-dbg libflac8 libflac-dev rcconf htop openvpn

apt-get rpi-update (nu se dă pentru OrangePI )

După ce se termină toate astea,

rpi-update (pentru OrangePI nu se dă)

Așteptați să facă update la kernel după care dați din nou restart.

Dupa login și sudo urmează:

cd /opt
mkdir ham
cd ham

wget http://downloads.xiph.org/releases/opus/opus-1.1.3.tar.gz
-se decomprimă:
tar -xzvf opus-1.1.3.tar.gz
-se intră în director
cd opus-1.1.3
-se dă comanda
./configure
-apoi
make; make install

cd /opt/ham

wget https://archive.mozilla.org/pub/opus/opus-tools-0.1.9.tar.gz
tar -xzvf opus-tools-0.1.9.tar.gz
cd opus-tools-0.1.9
./configure
make; make install

cd /opt/ham

git clone https://github.com/sm0svx/svxlink

cd svxlink

useradd svxlink

cd src
mkdir build
cd build

cmake -DUSE_QT=OFF -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_SYSCONFDIR=/opt -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_BUILD_TYPE=Release ..

make

make install

ldconfig

Dacă nu au apărut erori pe parcurs (și nu trebuie dacă s-au respectat instrucțiunile) svxlink este instalat în acest moment.

Acum ne ocupăm de placa de sunet.  Dacă nu e deja introdusă în portul USB, o introducem și dăm comanda: aplay -l

Rezultatul ar trebui să fie ceva de genul asta:

**** List of PLAYBACK Hardware Devices ****
card 0: Set [C-Media USB Headphone Set], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0

Asta înseamnă ca placa de sunet este vazută și este setată ca și prima placă de sunet. De obicei nu va fi așa de aceea ne vom asigura că la restart se va întampla asta.

Dați comanda „mc”

Cu ajutorul utilitarului respectiv ne ducem în /etc/modprobe.d/ și edităm fișierul alsa-base.conf (cu F4)

Adaugăm urmatoarele linii:

options snd-usb-audio index=0

options snd-aloop index=2

Modulul snd-aloop este o placă virtuală ce poate transporta intern sunete între două aplicații; o vom folosi la „cucuvea”. Adică dacă vrem să avem pe radio anunțuri (ora, indicativul, temperatura etc.)

Salvăm cu F2 și ieșim cu F10.

Apoi se merge în /etc/modules

și se scrie o linie nouă:
snd-aloop

Salvăm cu F2 și ieșim cu F10.

Mergem apoi în /ham/svxlink/distributions/
se copiază directoarele + fișierele de acolo în funcție de distribuție. La noi e debian.

Edităm /etc/rc.local

și adaugăm liniile:

echo 24 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio24/direction
echo 0 > /sys/class/gpio/gpio24/value
echo 23 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio23/direction
exit 0

Ne interesează configul pentru remotetrx așa că edităm fișierul etc/svxlink/remotetrx.conf

Ștergem tot și punem astea:

[GLOBAL]
TRXS=NetUplinkTrx,LocalNetTRx
TIMESTAMP_FORMAT=”%d.%m.%Y %H:%M:%S”
CARD_SAMPLE_RATE=48000

[NetUplinkTrx]
TYPE=Net
RX=RxLocalVoter
TX=Tx1
LISTEN_PORT=5210
AUTH_KEY=”qweasd”
MUTE_TX_ON_RX=0

[LocalNetTRx]
TYPE=Net
RX=Rx1
TX=Tx1
LISTEN_PORT=5230

[RxLocalVoter]
TYPE=Voter
RECEIVERS=Rx1

[Rx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:0
AUDIO_CHANNEL=0
SQL_DET=GPIO
SQL_DELAY=50
SQL_START_DELAY=50
SQL_HANGTIME=0
SQL_TIMEOUT=180
SIGLEV_SLOPE=22.9
SIGLEV_OFFSET=-1.99
SIGLEV_BOGUS_THRESH=110
GPIO_SQL_PIN=!gpio23
DEEMPHASIS=0
DTMF_DEC_TYPE=INTERNAL
DTMF_MUTING=1
DTMF_HANGTIME=100

[Tx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:0
AUDIO_CHANNEL=0
PTT_TYPE=GPIO
PTT_PORT=GPIO
PTT_PIN=gpio24
PTT_HANGTIME=10
TIMEOUT=900
TX_DELAY=50
PREEMPHASIS=0
DTMF_TONE_LENGTH=100
DTMF_TONE_SPACING=50
DTMF_DIGIT_PWR=-15

Testăm configurarea cu comanda /usr/bin/remotetrx

Dacă e în regulă o să vedem ceva de genul asta:

28.02.2016 03:04:54: RemoteTrx v1.2.0 Copyright (C) 2003-2015 Tobias Blomberg / SM0SVX
28.02.2016 03:04:54:
28.02.2016 03:04:54: RemoteTrx comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
28.02.2016 03:04:54: welcome to redistribute it in accordance with the terms and conditions in the
28.02.2016 03:04:54: GNU GPL (General Public License) version 2 or later.
28.02.2016 03:04:54:
28.02.2016 03:04:54: Using configuration file: /etc/svxlink/remotetrx.conf
28.02.2016 03:04:54: Setting up trx „NetUplinkTrx”
28.02.2016 03:04:54: RX: Rx1
28.02.2016 03:04:54: TX: Tx1
28.02.2016 03:04:54:
28.02.2016 03:04:54: Setting up trx „LocalNetTRx”
28.02.2016 03:04:54: RX: Rx1
28.02.2016 03:04:54: TX: Tx1
28.02.2016 03:04:54:
28.02.2016 03:05:12: LocalNetTRx: Client connected: 127.0.0.1:33314
28.02.2016 03:05:12: Rx1: SetMuteState(NONE)
28.02.2016 03:05:12: LocalNetTRx: Using CODEC „RAW” to encode RX audio
28.02.2016 03:05:12: LocalNetTRx: Using CODEC „RAW” to decode TX audio
28.02.2016 03:05:12: NetUplinkTrx: Client connected: 86.122.51.107:35050
28.02.2016 03:05:12: NetUplinkTrx: Using CODEC „OPUS” to decode TX audio
28.02.2016 03:05:12: —— Opus decoder parameters ——
28.02.2016 03:05:12: Gain       = 0dB
28.02.2016 03:05:12: ————————————–
28.02.2016 03:05:12: Rx1: SetMuteState(NONE)
28.02.2016 03:05:12: NetUplinkTrx: Using CODEC „OPUS” to encode RX audio
28.02.2016 03:05:12: —— Opus encoder parameters ——
28.02.2016 03:05:12: Frame size           = 320
28.02.2016 03:05:12: Complexity           = 1
28.02.2016 03:05:12: Bitrate              = 16000
28.02.2016 03:05:12: VBR                  = YES
28.02.2016 03:05:12: Constrained VBR      = YES
28.02.2016 03:05:12: Maximum audio bw     = MEDIUMBAND
28.02.2016 03:05:12: Audio bw             = FULLBAND
28.02.2016 03:05:12: Signal type          = VOICE
28.02.2016 03:05:12: Application type     = AUDIO
28.02.2016 03:05:12: Inband FEC           = NO
28.02.2016 03:05:12: Expected Packet Loss = 0%
28.02.2016 03:05:12: DTX                  = NO
28.02.2016 03:05:12: LSB depth            = 16
28.02.2016 03:05:12: ————————————–

Asta înseamnă că sistemul s-a conectat la server și lucrează.

Ieșim cu CTRL-C și dăm comanda /etc/init.d/remoterx start

Cam asta ar fi. Revin pentru WX și cucuvea.

14 thoughts on “Instalare Sistem pentru RoLink

  1. Buna ziua! ma numesc Dumitru,sint de la Chisinau, nominativ ER1VOX si ma adresezi cu asa intrebare, cum as putea instala si eu in Chisinau asa un Link?

    1. Buna ziua,
      Va asteptam cu mai multe detalii pe adresa noastra de email pe care o gasiti in pagina ECHIPA. In scurt timp unul din colegii mei va va contacta si va va da toate detaliile necesare pentru achizitie, montaj si utilizarea acestui sistem.

      Va asteptam cu drag in RoLink
      73 de YO9INA

  2. Excepțional site, inițiativă și proiect. Mă gândesc dacă nu s-ar putea face un mic program in Python pentru automatizarea procesului de instalare. O să fac niște teste și vă spun.
    Felicitări !!!!

  3. Felicitari pentru site si implicarea echipei in implementarea proiectului. O mica intrebare daca se poate. Daca se poate face o lista cu materialele hardware necesare si costurile aferente instalarii unui site rolink.

    1. Buna ziua,
      Nu inteleg exact despre ce site vorbiti. Probabil este vorba despre un nod RoLink. In curand, unul din membrii echipei RoLink va posta un articol cu necesarul hard si soft pentru realizarea unui nod fix.
      Va asteptam si pe adresa noastra de email pe care o gasiti in pagina ECHIPA.

      Va asteptam cu drag in RoLink
      73 de YO9INA

  4. De nod era vorba, nu avem in Buzau si vroiam sa vad cam cat ar costa partea hardware, sa intram si noi buzoenii in lumea buna, intre timp am aflat ca ar fi un proiect in derulare.
    73 de YO9YUL

    1. In judetul Buzau va fi instalat un repetor care va fi conectat la RoLink. Mai exact in zona localitatii Posta Calnau. Inca nu am datele tehnice necesare, dar se pare ca va functiona in UHF, 439.100MHz si ton 103.5Hz cu shift-ul -7.6MHz. Perioada estimata pentru instalare este luna Iulie 2016. Cu putin noroc poate mai repede… 73 de YO9INA

  5. Buna ziua

    Am inceput si eu sa adun materialele pentru un nod Rolink. Am cumparat pentru inceput un Raspberry Pi3, am reusit sa-l pornesc. Urmeaza sa fac toti pasii descrisi mai sus? Nu exista diferente intre Raspberry pi2 si Raspberry pi3?
    Vreau sa fac un nod transportabil, nu neaparat mobil, care sa poata functiona in diverse amplasamente. Ma refer in primul rand la cele 2 amplasamente unde stau mai mult:
    – Satu Mare(yo5) si Fantana Domneasca(yo7).
    Orice indicatie este binevenita. Va multumesc.

    Mihai,
    YO2OCP

    1. Va salut,
      Cand am scris articolul nu aveam disponibil RPI3; intre timp am renuntat la RPi din cauza placii de sunet suplimentare; pe celelalte sisteme (orangepi) pe cere le folosim instalarea e la fel ca aici; RPi3 fiind pe 64 bit nu stiu daca mai cere ceva librarii suplimentare necesare la compilare; in principiu daca nu da nicio eroare la compilare, nu ar trebui sa puna probleme, urmati pasii si vedeti ce si cum.
      Poate totusi citeste mesajul cineva care a incercat si poate sa va ajute.
      73 si spor la constructie.

  6. Salut! referitor la pasii scrisi acolo pentru RPI2 , pentru orice orange pi folosit de mine a mers exact ceia cei in articol scris pina la placa de sunet, de care la unele orange pi nui nevoie ca are deja microfon si audio incorporat, am folosit Orange Pi Zero, si PI PC, testate de mine si merge ok, spor la treaba voua si 73!

    1. Acum legat de Orange PI Zero,daca vrei sa spui ca urmand acesti pasi a functionat,nu am sa cred.Pinii GPIO la ORANGE PI ZERO sunt diferiti decat cei setati la Raspberry PI,daca afirmi ca ai modificat fisierele de configurare atunci te voi crede pe cuvant.

  7. Pentru Marius!!! da , s-au modificat pinii gpio bineinteles, alt fel cum? s-a avut in vedere ca daca functiona si pe armbian, 73

Leave a Comment

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *