Sisällysluettelo |
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:
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ä.
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:
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:
Debian 4.0 oli juuri ilmestynyt ja siitä asennettiin minimaalinen asetelma tuolle "levylle":
Näistä darkice on oma versio joka on käännetty tukemaan mp3 striimien tuotantoa.
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: 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!)
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)
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
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 !
Tiedostosta /etc/syslog.conf kommentointiin kaikki pois!
# /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)
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
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>
Tähän säätösuoritukseen osallistuivat huhtikuussa 2007:
Vuosina 2008-2010: