OH2RDY

Radioamatööriwikistä
Versio hetkellä 29. heinäkuuta 2010 kello 12.12 – tehnyt >Oh2mqk (→‎Uuden koneen softat)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

English translation of this story is on page OH2RDY.en

OH2RDY on Viestikallion (OH2MOH / OH2Z) paikallinen APRS i-gate laite.

Tämä artikkeli kertoo muillekin vihjeeksi miten sen uusittu versio tehtiin mahdollisimman pitkäikäiseksi.

Aiemman laitteiston murheet:

  • Nälkäinen räkki-PC 230V sähköillä
  • Pyöriviä kovalevyjä ankarissa ympäristöoloissa
  • Pyöriviä tuulettimia
  • Ei käynnistynyt sähkön palatessa, vaan piti käydä käsin käynnistämässä

Aiempi kone oli Pentium-MMX 200 MHz, jossa kyllä koneteho riitti, mutta ikivanha BIOS ei ymmärtänyt uusia kovalevyjä... Kyllähän se levykeasemasta boottasi ja Linux-2.2 löysi uudenkin kovalevyn, mutta isollakaan hiellä ei saatu Linux-kernelin versiota päivitettyä.

Uusi palvelinkone

Säätäjät sitten kyllästyivät tapaukseen käytyään ties kuinka monennetta kertaa käynnistämässä koneen käsin ja ottivat hyllyltä "sulautetun" koneen:

  • 12V DC käyttösähkö (toimii myös OH2RAY-ripiitterin 13.8 Voltin pääsähköillä)
  • 4x RS232 D9M liittimiä
  • 2x LPT D25F liittimiä
  • 1x RJ45 10/100 Base-T ethernet
  • audio: mic in, line in, line out
  • Prosessorina VIA Samuel 2, noin 1100 Bogomips (valitettavasti tässä on pyörivä tuuletin)
  • 128 MB PC133 SDRAM
  • CD-ROM asema
  • paikka 3.5" kovalevylle jossa sovitinpalikan kanssa 2.5" kovalevy.

Kovalevy otettiin pois ja sen tilalle laitettiin gizmo-varastosta löytynyt 3.5" CF-kortin adapteri. Kaupasta haettiin vielä 1.0 gigatavun CF kortti.

Tuo Compact Flash näkyy IDE-kovalevynä koneelle ja jopa 512 MB kokoinen yksilö olisi todennäköisesti riittänyt. CF kortin suhteen merkittävä juttu on että sille ei saa kirjoittaa jatkuvasti, kuten Linuxeilla ja Windowseilla on tapana touhuta kovalevyjensä kanssa. Tästä tarkemmin jäljempänä.

Myös USB-muistitikkuja voi käyttää siten, että kone boottaa sellaiselta ja lukee ohjelmistonsa sieltä. Emme kuitenkaan koettaneet rakentaa laitetta tällä kertaa sellaiseksi useammistakin syistä joista vähäisin ei ole koneen etu-/takaseinässä sojottavan muistitikun alttius mekaaniselle vauriolle.

Jos sopivia "sulautettuja" PC-koneita ei satu olemaan takataskussa, tässä olisi muutama viite mahdollisesti käyttökelpoisiin koneisiin ja oheiskomponentteihin:

Uusissa koneissa sarjaportit alkavat olla kovin harvinaisia, mikä tekee kytkennän sarjaportilliseen TNC:hen hieman haastavaksi. Tilalla on kuitenkin USB-portteja joihin voi laittaa USB-RS232 sovittimen.

Parempia vaihtoehtoja löytyy teollisuus-PC puolelta. Tärkeitä tavoitteitahan ovat:

  • Ei tuulettimia
  • Kohtuullisesti laskentavoimaa
  • Ethernet-liitäntä
  • D9M sarjaportti (tai pari), printteriportti
  • Tasavirta käyttösähkönä ja vähäruokaisuus
  • Flash-muisti "kovalevynä"

Uuden koneen softat

Debian 4.0 oli juuri ilmestynyt ja siitä asennettiin minimaalinen asetelma tuolle "levylle":

  • 2.6.18 kernel ( + mitä se haluaa )
  • ssh, openssh-server, openssh-client
  • ax25-tools, ax25-apps, libax25
  • aprx (korvasi aiemmat aprsd:n ja digined:in)
  • ntp, ntpdate
  • darkice

Näistä darkice on oma versio joka on käännetty tukemaan mp3 striimien tuotantoa.

Compact Flash levyn aiheuttamat erikoisuudet

Compact Flash "levylle" ei saa olla jatkuvasti kirjoittamassa, vaan sitä pitää mieluiten käyttää pelkästään luettavana. Kirjoittaminen on ylipäätään hidasta ja lisäksi siinä tapahtuu "kulumista" jonka takia muutaman 100 tuhannen tai miljoonan kirjoituksen jälkeen bittiä ei enää saakaan nollattua.

Tähän on Linuxilla helpohko ratkaisu: mountataan koko filesysteemi "read-only (ro)" muodossa. Valitettavasti systeemissä kaivataan myös hieman kirjoitettavia tiedostoja/hakemistoja.

Hyväksymällä kirjoittamisen paikkaan jossa tieto ei säily sähkökatkon yli, saamme ratkaistua tuon ohjelmistolevyn read-only käyttötilan aiheuttaman ongelman. Tästä toki seuraa sellainen, ettei koneessa itsessään säily mitään logeja sähkökatkojen yli, mutta jos jotain on pakko kerätä jonnekin, sen voi lähettää syslog:lla verkon yli.

/etc/fstab

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/hdc1  /       ext2    defaults,ro                   0     1
proc       /proc   proc    defaults                      0     0
tmpfs      /tmp    tmpfs   defaults                      0     0
/dev/hda   /media/cdrom0   udf,iso9660 user,noauto       0     0

Yllä näkyvin järjestelyin systeemin /tmp hakemisto on kirjoitettavissa ja systeemin oletuksin sen maksimikooksi muodostuu tässä koneessa 64 megatavua. (Kyseessä on keskusmuistia kuluttava resurssi, joten sitä ei saa mennä tuhlaamaan!)

Muutamia hakemistoja symbolisiksi linkeiksi

Systeemilevyllä on tyypillisesti useampia paikkoja jonne kirjoitetaan, niiden hakemistoja ja/tai tiedostoja on muutettu käsin osoittamaan /tmp:hen:

/etc/network/run -> /tmp
/var/lib/dhcp3 -> /tmp
/var/lock -> /tmp
/var/log/aprsd -> /tmp  (säätyy kai myös konfiguraatiotiedostolla)
/var/run -> /tmp
/var/tmp -> /tmp
/var/ax25/mheard -> /tmp (ei säädy konfiguraatiolla)

ntp aikapalvelu

Koneelle pitää antaa täsmällinen aika, sen saa NTP palvelulla maailmalta. Valitaan internet-operaattorin julkiset aikapalvelimet:

/etc/default/ntpdate

NTPDATE_USE_NTP_CONF=yes
NTPSERVERS="ntp1.kolumbus.fi ntp2.kolumbus.fi"
NTPOPTIONS=""

/etc/ntp.conf

driftfile /tmp/ntp.drift
statsdir /tmp/
server ntp1.kolumbus.fi
server ntp2.kolumbus.fi
restrict 127.0.0.1
restrict ::1

/etc/motd.tail

Sisään kirjautuville säätäjille on pääbannerissa heti muistutus perusasioista:

/etc/motd.tail:

Kilo (rev.3) of  viestikallio.fi

In normal operation the "hdc1" disk (Compact Flash) is mounted
READ ONLY, and it can remounted for writing for the maintenance
by issuing command:

   mount -t ext2 -o remount,rw /dev/hdc1 /

AFTER THE MAINTENANCE IS DONE, REMOUNT AS __RO__ OR REBOOT !

/etc/syslog.conf

Tiedostosta /etc/syslog.conf kommentointiin kaikki pois!

AX.25:n konfiguraatiot

# /etc/ax25/axports
#
# The format of this file is:
#
# name callsign speed paclen window description
#
1       OH2RDY          9600    255     2       144.800 MHz (1200 bps)
# reservations for further use
2       OH2RDY-1        9600    255     2       reserved for further use
3       OH2MOH          9600    255     2       test port with unique call
4       OH2RAY          9600    255     2       434.775 MHz (MPRS)

/etc/init.d/ax25ifs

Käynnistetään muutama kissattach edellä mainittuihin AX.25 portteihin, yms.

#!/bin/sh
#
# Start AX.25 interfaces, and mheardd

### BEGIN INIT INFO
# Provides:          ax25ifs
# Required-Start:    $syslog $named
# Required-Stop:     $syslog $named
# Should-Start:      $local_fs
# Should-Stop:       $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: APRS digipeater
# Description:       Rule-based APRS digipeater.
### END INIT INFO

PATH=/bin:/usr/bin:/sbin:/usr/sbin

case "$1" in

  start)
    echo -n "Starting APRS gateway: "

    /sbin/modprobe mkiss
# ttyS0 is in direct control of aprx
#    /usr/sbin/kissattach /dev/ttyS0 1 10.0.0.10
    /usr/sbin/kissattach /dev/ttyS1 2 10.0.0.11
    /usr/sbin/kissattach /dev/ttyS2 3 10.0.0.12
    /usr/sbin/kissattach /dev/ttyS3 4 10.0.0.13

    /usr/sbin/mheardd

    echo "$NAME."
    ;;

  stop)
    echo -n "Stopping APRS gateway: "
    start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/$NAME.pid --exec $DAEMON
    pkill kissattach
    pkill mheardd
    echo "$NAME."
    ;;

 force-reload|restart)
    $0 stop
    $0 start
    ;;

  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|restart}"
    exit 1
    ;;

esac

exit 0

/etc/aprx.conf

Lyhyt versio ilman enimpiä kommenttitekstejä:

mycall  OH2RDY
<aprsis>
  server    igates.aprs.fi    14580
</aprsis>
<logging>
  pidfile /tmp/aprx.pid
  rflog /tmp/aprx-rf.log
  aprxlog /tmp/aprx.log
  erlangfile /tmp/aprx.state
</logging>
<interface>
  serial-device /dev/ttyS0 9600 8n1 KISS
  <kiss-subif 0>
    callsign   $mycall
    tx-ok      true
  </kiss-subif>
</interface>
<beacon>
 cycle-size  20m
 beacon timefix object "434.775-B" lat "6044.09N" lon "02612.79E" symbol "/r" comment "434.775MHz TOFF -1600kHz R50k OH2RAY"
 beacon via TRACE1-1               lat "6044.06N" lon "02612.79E" symbol "I#" comment "PHG25363 Tn,Wn Artjarvi OH2Z Digi+TX-iGate"
 beacon timefix object "434.775-B" lat "6044.09N" lon "02612.79E" symbol "/r" comment "434.775MHz TOFF -1600kHz R50k OH2RAY"
 beacon timefix object "434.775-B" lat "6044.09N" lon "02612.79E" symbol "/r" comment "434.775MHz TOFF -1600kHz R50k OH2RAY"
 beacon via TRACE1-1               lat "6044.06N" lon "02612.79E" symbol "I#" comment "PHG25363 Tn,Wn Artjarvi OH2Z Digi+TX-iGate"
 beacon timefix object "434.775-B" lat "6044.09N" lon "02612.79E" symbol "/r" comment "434.775MHz TOFF -1600kHz R50k OH2RAY"
</beacon>
<digipeater>
  transmitter      $mycall
  <source>
    source         $mycall
    relay-type    digipeated # default mode is "digipeated"
#   viscous-delay  0     # no viscous delay for RF->RF digipeating
#   ratelimit      120   # default: max 120 packets/minute
    filter         t/m
    filter         a/61.8/25.2/59.5/28
    filter         b/OH2RDJ-8
    filter         f/OH2RDJ-8/2
    filter         b/OH2RDN-8
    filter         f/OH2RDN-8/2
    filter         b/OH2JCQ-15
    filter         f/OH2JCQ-15/1
    filter         b/OH2JIU-9
    filter         -b/OH5J-9          #OT configuration gone wild?
    filter         -b/OH6RV*          #This is a test
    filter         -b/SM5LBR*         #LID filter
    filter         "-p/R/U/SK/SL"     #Filtering out verbose neighbours
  </source>
  <source>  # Adding APRSIS source makes this tx-igate
    source        APRSIS
    relay-type     3rd-party  # Must define this for APRSIS source!
    viscous-delay  5    # Recommendation: 5 seconds delay to give
                        # RF delivery time make itself known.
    via-path TRACE1-1    # default: none
#   filter         m/150
    filter         t/m  # Tx-IGate only messages sent to me by APRSIS
  </source>
</digipeater>


Säätöryhmä

Tähän säätösuoritukseen osallistuivat huhtikuussa 2007:

  • OH2MQK, OH2MOK: Kone ja sen rautamuutokset, Linux-asennus
  • OH3BK: aprsd ja aprsdigi -softien asennus
  • OH2KKU ja OH3GNU: aprsd ja darkice softien bugifiksaus

Vuosina 2008-2010:

  • OH2MQK: Aprx softa ja konfiguraation uusinta.
  • OH3BK: aprx digipeater säätäminen