Pakettiradio linuxille Baycom modeemilla

Artikkeli miten laitetaan linux-kone pystyyn ja asennetaan siihen baycom modeemi toimimaan.

IMG_1292

Tossa porukka kyseli facebookissa miten saa toimii linuxilla baycommin, niin päätin tehdä tälläisen pikaisen ohjeen.

Aivan ekaksi tarvitaan kone, sellainen voi olla pentium kone, jossa on vähintään muistia 128. voi pienempikin toimia, mutta jää omalle vastuulle sellainen kokeilu.
Asennuskoneena käytämme AMD Athlon 1000Mhz konetta jossa on muistia vähän alle 400M. Kovalevynä on 3,2Giganen levy ja modeemina baycom “eurajoki” -mallia.

 


 

VAIHE 1. Tietokoneeseen asennetaan linux-järjestelmä ja katsotaan, että koneessa on tarvittavat liitännät.

Tein videon tästä ekasta osasta, joten siihen ei tarvita tekstiä sen enempään, koneeseen asennetaan uusin debian (8) perusjärjestelmä ja katsotaan, että verkko toimii. Hyppää tämä yli, jos osaat asentaa itsenäisesti linuxin.

 

 


 

Vaihe 2: laitetaan systeemit toimimaan!

Elikkäs tekstaten ohjeet, muistakaan käyttää omaa kutsua SF1RFB:n tilalla!:
Ohje on suunta-antavia ja tarkoitettu sellaiselle henkilölle, kenellä on jotain kokemusta linuxista. ei ihan noobeille, saa käyttää maalaisjärkeä.

Aloitetaan linpacin lähdekoodin kääntämisellä.

nano /etc/apt/sources.list

lisää: contrib ja non-free (kts. video)

apt-get update
apt-get install build-essential
apt-get install libax25 ax25-apps libncurses5-dev ax25-tools

cd /tmp
wget “http://downloads.sourceforge.net/project/linpac/LinPac/0.21/linpac-0.21.tar.gz?r=&ts=1434372468&use_mirror=kent”
tar xvfz linpac-0.21.tar.gz\?r\=\&ts\=1434372468\&use_mirror\=kent

cd linpac-0.21/
apt-get install autoconf
apt-get install libtool
autoreconf –install
./configure –prefix=/opt
make
make install
nano /etc/ld.so.conf.d/opt.conf

lisää: /opt/lib

ldconfig

Testaa linpac!!
login userina, ja komento /opt/bin/linpac
Jos ohjelma käynnistyy, niin kaikki ok.

 


Asennetaan modeemiajuri:

apt-get install baycomepp
modprobe baycom_ser_hdx
sethdlc -p -i bcsh0 mode “ser12*” io 0x3f8 irq 4
sethdlc -i bcsh0 -a txd 200 slot 100 ppersist 40 half
apt-get install setserial
setserial /dev/ttyS0 uart none

axparms -setcall bcsh0 SF1RFB-15
nano /etc/ax25/axports

lisää: 0 SF1RFB-15 1200 255 2 testi

ifconfig bcsh0 hw ax25 SF1RFB-15 up

 


axlisten -cart   #TESTAA TÄLLÄ(tyhjä ruutu, jos ei liikennettä), poistu ctrl+c
chmod 4755 /usr/bin/axlisten   # pakottaa kyseisen komennon roottina, userina toimii nyt listen linpacin sisällä

beacon -c SF1RFB -d INFO -t 5 0 “RIKUN VIRITYS PYSTYSSA!” # tämä laittaa majakan joka 5 minuutti -t määrää ajan. asetus -d ” jotai jotai2″ jotai2=via minkä kautta menee

 


Koneen käynnistykseen kaikki:

nano /etc/rc.local

lisää rivi ENNEN exittiä: sh /etc/ax25.sh

nano /etc/ax25.sh

Lisää:

#!/bin/bash # # AX25 käynnistys scripti by Riku B. # ####################
 killall beacon killall mheardd
 killall axdigi
 modprobe baycom_ser_hdx
 sethdlc -p -i bcsh0 mode "ser12*" io 0x3f8 irq 4
 sethdlc -i bcsh0 -a txd 200 slot 100 ppersist 40 half
 setserial /dev/ttyS0 uart none
 axparms -setcall bcsh0 SF1RFB-15
 ifconfig bcsh0 hw ax25 SF1RFB-15 up
 mheardd -n 1000
 /opt/bin/axdigi &
 beacon -c SF1RFB -d "INFO sf1sus" -t 5 0 "RIKUN VIRITYS PYSTYSSA!"

sitten:

chmod 755 /etc/ax25.sh

 


IP-asetukset staattinen debianiin:

nano /etc/network/interfaces

lisää/muuta:

#allow-hotplug eth0
#iface eth0 inet dhcp

    auto eth0
    iface eth0 inet static
        address 10.0.3.89  # OMA IP TÄHÄN
        netmask 255.255.255.0 # OMA NETMASK TÄHÄN
        gateway 10.0.3.70 # OMA GW TÄHÄN

sitten:

nano /etc/resolv.conf

Editoi nimiserverit tarvittaessa, jos ne on väärin.

Varmista, että kone käynnistyy ilman näppäimistöä, säädä biossia tarvittaessa.(jos et käytä näyttöä)

 


 

LinPac Asetukset ja säädöt:

linpac

ln -s /opt/bin/linpac /bin   #tämä tekee linkin, että ohjelma käynnistyy komenolla linpac mistä vain

Linpacin resetoiminen (melkein pakollinen, jos haluaa saada toimimaan ilman viritystä)
komento käyttäjänä(ei roottina) kotihakemistossa: rm -frv LinPac
Sen jälkeen uusiksi linpac päälle: linpac
Kun se kysyy bbs jälkeen porttia, niin siihen laitetaan numero 0, silloin se käyttää 0 porttia oletuksena, joka on radion portti. Tämän jälkeen linpacissa komento :c asema yhdistää asemaan suoraan

Kotihakemistossa LinPac hakemiston alla on macros

, siellä on infotiedostot ym.

~/LinPac/macro/info.mac  -> Asema Info tulee //i tai locaalistai :i
~/LinPac/macro/ctext.mac -> connect info
~/LinPac/macro/quit.mac  -> lopetusteksti kirjoittaessa //e //q tai locaalisti :q
~/LinPac/macro/help.mac  -> aputiedosto tulee //help tai locaalisti :help

Siellä on muitakin tiedostoja mitä voi ihmetellä, en suosittele kauheesti säätää jos et tiedä mitä teet.

LinPacin Asetukset:
Tästä voit säätää ohjelman core asetuksia tiedostosta ~/LinPac/macro/init.mac
Callsign setup kohta, kannattaa laittaa mycall -> 1, 2, 3, 4 OMAKUTSU-6 tai jotai muuta! tämä ratkaisee putty ongelman, pääset sillä vain terminaaleihin 5-10, joten viritetään muu kutsu 1-5.. (VIRITYS MUTTA TOIMII) Kannattaa myös asettaa Default port 0. Vähän niinkuin näin:

;; Default port
port 0

;; Callsign setup
mycall@1 SF1RFB-6
mycall@2 SF1RFB-6
mycall@3 SF1RFB-6
mycall@4 SF1RFB-6
mycall@5 SF1RFB
mycall@6 SF1RFB
mycall@7 SF1RFB
mycall@8 SF1RFB

Unproto calls -> tarkoittaa F10 näytöllä oleva asetusta eli unsrc on omakutsu ja undest on kohde, heittomerkit siihen, niin saat digipeaterin kautta:

;; Unproto calls
unsrc SF1RFB
undest "INFO SF1SUS"

On myös muita asetuksia samaisessa tiedostossa, esim ikkunan koko ym siellä on screen setup. säätämällä näkee mitä tapahtuu..

 

Vinkki: Linpac poistumisnappi on ALT+X

Linpacin asettaminen screenin sisälle (jotta ohjelma pysyy päällä kokoajan)
Asennetaan screen:

apt-get install screen

Screen on helppo käyttää!
ekan kerran käynnistetään screen linpac
poistuminen onnistuu sulkemalla putty rastista tai CTRL+a sitten d. ÄLÄ POISTU ALT+X!
Palaaminen screenille komento: screen -r

JOS JOKIN MENEE PIELEEN, JA EI TIETOAKAAN, NIIN delete koko LinPac hakemisto -> ohjelma palaa alkuperäisille asetuksille!

 


axdigin asennus (toistin):

cd /tmp/
wget “http://www.tapr.org/pphlogger/dlcount.php?id=tapr&url=ftp://ftp.tapr.org/software_lib/Linux/ax25/axdigi-0.03.tgz”
tar xvfz axdigi-0.03.tgz
cd axdigi-0.03/
gcc axdigi.c
mv a.out /opt/bin/axdigi
/opt/bin/axdigi &

Ei testattu, epäilen toimivuutta!

 


Ongelmat:

Tähän asti isoin ongelma on linpacin käyttäminen puttyllä, F1-F5 nappulat ei toimi. Ratkaisuksi on puhdas linux clientti. puttyn asetuksista saattaa saada jotai säädettyä, tarvii katsoa.. (tämän voi ohittaa virityksellä ylläolevalla ohjeella)
Jos download linkit ei toimi, niin -> hakemalla omilta sivuilta itse linkit.

 


Xnet NODE asennus.

Asennetaan xnet(sakalaisten käyttämä) node. Samalla joudutaan säätää ja virittää Loopbackit, jotta saadaan käytettyä node locaalisti linpacista!
Ladataan kotisivuilta: http://www.swiss-artg.ch/xnet/download.htm

mene rootiksi

cd /opt
mkdir xnet
cd xnet
wget http://www.swiss-artg.ch/xnet/zip/linuxnet.zip
apt-get install unzip
unzip linuxnet.zip

sitten

nano /etc/ax25/axports

lisää, ja muuta 0 portti radioksi:

radio SF1RFB-15 1200 255 2 27Mhz 1200baud
lp1 LOOP-1 38400 80 1 Loopback link 1
lp2 LOOP-2 38400 80 1 Loopback link 2

lopputulos:

# /etc/ax25/axports
#
# The format of this file is:
#
# name callsign speed paclen window description
#
# Port Callsign Baud PacLen MaxFram Description
radio SF1RFB-15 1200 255 2 27Mhz 1200baud
lp1 LOOP-1 38400 80 1 Loopback link 1
lp2 LOOP-2 38400 80 1 Loopback link 2

mene käyttäjäksi:

nano LinPac/macro/init.mac

muuta: portti 0 -> radio

;; Default port
port radio

sitten jatketaan xnetin virityksiä

mene rootiksi:

cd /opt/xnet
nano node.sh

lisää:

#!/bin/bash
cd /opt/xnet
./linuxnet

sitten:

chmod 755 node.sh
mv AUTOEXEC.NET default_AUTOEXEC.NET
nano AUTOEXEC.NET

lisätään:

ro bc add 0

po 0 baud 1200
po 0 paclen 50
po 0 window 2
po 0 txdelay 200
po 0 retries 25
po 0 name 27.235Mhz

po 1 baud 38400
po 1 txd 1
po 1 name Loopback_SF1RFB

start routed
start beacond

beacon a 600 0 ID sf1sus text LINUX0:SF1RFB-2 -= N O D E =- (X)netNode <<->> Internet Gateway – Debian/Linux

sitten

nano AUTOBOOT.NET

lisätään:

#
# xnetin latauskonffi
# Käytän itse -2 nodena, jostai joskus jäänny, että aian -2 on node
# myös KUTSU-2 on digiripiitteri
#
############################################

my call SF1RFB-2
my alias LINUX0
my tcall SF1RFB
my defport 0

attach ax0 ax25 0 1 bcsh0
attach ax1 ax25 1 1 ax1

sitten

nano C.TXT

lisää oma ctexti:

(X)NET/LINUX V1.38
SF1xxx-2 NODE, komennot:

n = nodes
p = portit
c:x = yhdistä porttiin x kautta johonkin

 

Asennetaan nullmodem loopbakkiä varten http://www.ant.uni-bremen.de/whomes/rinas/nullmodem/

apt-get update
apt-get install build-essential

cd /tmp
wget http://www.ant.uni-bremen.de/whomes/rinas/nullmodem/download/nullmodem-0.0.6.tar.gz
tar xvfz nullmodem-0.0.6.tar.gz
cd nullmodem-0.0.6/
./configure –prefix=/opt
make
make install

sitten

nano /etc/ax25.sh

lisätään: /etc/ax25.sh:

killall nullmodem
killall kissattach
killall linuxnet
modprobe mkiss
/opt/bin/nullmodem /tmp/loop0 /tmp/loop1
/usr/sbin/kissattach -m 991 /tmp/loop0 lp1
/usr/sbin/kissattach -m 991 /tmp/loop1 lp2
sleep 1
screen -d -m /opt/xnet/node.sh

Muuta myös beaconin portti 0 -> radio

LOPPUTULOS NÄYTTÄÄ TÄLTÄ:

#!/bin/bash
#
# AX25 käynnistys scripti by Riku B.
#
####################
killall beacon
killall mheardd
killall axdigi
killall nullmodem
killall kissattach
killall linuxet
modprobe baycom_ser_hdx
modprobe mkiss
sethdlc -p -i bcsh0 mode “ser12*” io 0x3f8 irq 4
sethdlc -i bcsh0 -a txd 200 slot 100 ppersist 40 half
setserial /dev/ttyS0 uart none
axparms -setcall bcsh0 SF1RFB-15
ifconfig bcsh0 hw ax25 SF1RFB-15 up
mheardd -n 1000
###############/opt/bin/axdigi & ##OTETAAN POIS, Käytetään noden -2 digi
beacon -c SF1RFB -d “INFO sf1sus” -t 15 radio “*** SF1RFB Packet test station || FINLAND Ulvila || System LiNUX LinPAC ***”

/opt/bin/nullmodem /tmp/loop0 /tmp/loop1
/usr/sbin/kissattach -m 991 /tmp/loop0 lp1
/usr/sbin/kissattach -m 991 /tmp/loop1 lp2

sleep 1
screen -d -m /opt/xnet/node.sh

Linpacilla yhdistetään nodeen komenolla: :C lp1:sf1rfb-2 (omakutsu tietenki tohon)
xnetti latautuu roottina screenin sisälle (sinun on loggauduttava roottina, jotta saat liitettyä siihen, ellet killaa) tai käynnistä uusiksi pakettijutut komenolla sh /etc/ax25.sh

 XNETIN SALASANAN ASETTAMINEN:

mene rootiksi ja aukase screeni, screen -r

paina esc
c omanodekutsu
sys
passwd salasanatähän
quit

 XNETIN yhdistäminen netin kautta toiseen nodeen:

Halutaessa voin yhdistää sinun noden, omaan nd hubiin jonka tein, sen nimi in FI0NOD:SF0NOD sen tarkoitus olisi yhdistää pakettiasemat yhdeksi, sijaitsee dedikoitulla serverillä, ei kotona, joten katkoksia ei isommin pitäisi tulla.

lisää AUTOBOOT.NET :
attach ip0 axUDP 2 1 l6000 d6000 178.33.154.85

lisää AUTOEXEC.NET :
ro bc add 2 NODES
po 2 acon 1
po 2 baud 38400
po 2 name SUOMIHUB_Inet
po 2 reset 0

JOTTA TÄMÄ TOIMII, MINUN ON MYÖS LAITETTAVA ASETUS, NIIN YHTEYTTÄ MINUUN Facebookin, mailin(riku at tiatnix.net) tai tänne ilmoitusta.
Tarvin ip-osoitteen.
linkittäminen toimii portille 6000, joten sinun on oltava se portti auki routterista.


 

 WWW-Serverin + php moduulin asennus:

miksi nginx? kevyt, verrattuna apacheen. jos softaa pyöritetään vanhassa pentium-koneessa vähällä muistilla, tämä kannattaa.
Mene rootiksi komenolla: su –

apt-get update
apt-get install nginx
service nginx start

aseta toisella tietokoneella tai samassa verkossa olevalla laitteella selaimeen osoite tähän koneeseen http://tämäkone
jos sivu aukee, niin nginx toimii!

Asetus:

nano /etc/nginx/sites-available/default

Muuta example.com omaan domainiin(jos kone sisäverkossa tai ei ole nimeä, keksi jotain)
Lisää: index.php
Korjaa: “location ~ \.php$ {“ section
Muuta: root /www

server {
 listen 80;
root /www;
 index index.php index.html index.htm;
server_name example.com;
location / {
 try_files $uri $uri/ /index.html;
 }
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root /usr/share/nginx/www;
 }
# pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm.sock
 location ~ \.php$ {
 try_files $uri =404;
 fastcgi_pass unix:/var/run/php5-fpm.sock;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 
 }

}

Sitten:

mkdir /www
chown www-data /www
chgrp www-data /www

apt-get install php5-fpm
nano /etc/php5/fpm/php.ini

editoi: cgi.fix_pathinfo=0 (etsi nanossa: ctrl+w)

service php5-fpm restart
service nginx restart

nano /www/info.php

lisää:

<?php
phpinfo();
?>

testaa php http://omaosoite/info.php
Valmis.
Dokuumentit menee juuri kansioon /www

ESIMERKKI KOTISIVU, jossa live MHEARD:

nano /www/index.php

lisää:

<html>
<head>
</head>
<body>
<A HREF="kuva1.JPG"><IMG HEIGHT=25% WIDTH=25% SRC="kuva1.JPG"></A>
<A HREF="kuva2.JPG"><IMG HEIGHT=25% WIDTH=25% SRC="kuva2.JPG"></A>
<A HREF="kuva3.JPG"><IMG HEIGHT=25% WIDTH=15% SRC="kuva3.JPG"></A>
<?php echo "<h1>SF1RFB Aseman Mhreadi (LIVE) YLIN ON UUSIN!\n</h1>";
$mheard = shell_exec('mheard');
$mheard_rivi = shell_exec('mheard | wc -l');
$arr = explode("\n", $mheard);
print "<pre>";
for ($x = 1; $x <= $mheard_rivi; $x++)
{
 print $arr[$x];
 print "<br>";
}
print "</pre>";
print "<br>Koneen UPTIME on:";
$uptimet = shell_exec('uptime');
print $uptimet;
?>
</body>
</html>

on hyvä myös asentaa ntpdate, jotta kellonaika pysyy netin kanssa synkissä:

apt-get install ntp

tarkista aika date komennolla. daemoni asentuu itellää ja konffatakkaa ei tarvi, meni itsellä ihan suoraan.

Itsellä on serveri päällä nyt osoitteessa http://titanix.net:81

 


 

LISÄTÄÄN MYÖHEMMIN:

– NODE

– NODEN YHDISTYS ULKOPUOLELTA (esim netin yli)

– WWW SIVU, Josta näkee MHEARD ja asemainfoa.

– LINPACIN tarkempi Konffaus 

 

 

päivitetty 22.6.2015