APRX

Vše co má něco společného s APRS infrastrukturou a LINUXem
Odpovědět
ok2slc
Příspěvky: 115
Registrován: stř 11. bře 2009 8:44:57

APRX

Příspěvek od ok2slc » úte 20. črc 2010 12:34:47

Ahojte vespolek,
po nějaké době jsem se opět pokusil o instalaci "něčeho" na "něco" :).
Přesněji APRX na WRAP2.C pod Voyage linuxem. Prokousal jsem se tím až do bodu, kdy jsem zcela nepochopil vazby ohledně ax25. Zatím jsem nedonutil TNC k přepnutí do KISS modu a nějaké činnosti. Ax25-tools, ax25-apps a libax25 nainstalované mám, ale nijak jsem je nekonfiguroval. Nějakou konfiguraci aprx jsem také spáchal, ale je to pouze testovací na komunikaci s TNC. Jinak pomocí "echo -en 'r\033@K\r' > /dev/ttyS0" v pohodě přepnu TNC do KISSu, takže předpokládám, že žádný terminál na ttyS0 vypínat nemusím, když jsem ho při instalaci zakázal.

Při spuštění APRX mi to vrací toto:

Kód: Vybrat vše

voyage:~# /etc/init.d/aprx start
Starting aprx igate:
voyage:~# aprx -d -f /etc/aprx.conf
interface_store() aif->callsign = 'APRSIS'
/etc/aprx.conf:31: MYCALL = 'OK2SLC-1' ''
/etc/aprx.conf:41: INFO: SERVER = 'rotate.aprs.net':'14580'
/etc/aprx.conf:72: INFO: PIDFILE = '/var/run/aprx.pid' ''
/etc/aprx.conf:79: INFO: RFLOG = '/var/log/aprx/aprx-rf.log' ''
/etc/aprx.conf:86: INFO: APRXLOG = '/var/log/aprx/aprx.log' ''
.. new style serial:  '/dev/ttyS0' '9600 8n1    KISS'.. tncid=0
 .. param='9600' .. param='8n1' .. param='kiss'
  callsign= 'OK2SLC-1'
openpty() rc=0 name='/dev/pts/1' master=4 slave=5
netax25_openpty() error exit.
interface_store() aif->callsign = 'OK2SLC-1'
Beacon cycle size: 1.00
aprsis_start() PTHREAD  socketpair(up=4,down=3)
aprsis_runthread()
APRSIS pthread_create() OK!
1279620723      TTY /dev/ttyS0 OPEN - fd=6 - OK
Může mě prosím tedy někdo nakopnout správným směrem ?
ok1djo
Příspěvky: 139
Registrován: úte 28. dub 2009 9:29:13
Jméno: Martin
Bydliště: Praha, JO70DB Jméno: Martin

Re: APRX

Příspěvek od ok1djo » stř 21. črc 2010 0:04:12

Ahoj,
pokud se nemylim, kouzlo aprx tkvi mimo jine v tom, ze pro svuj beh vubec ax25 veci nepotrebuje. Z jedne strany ma na seriovem portu pripojene TNC v KISS, z druhe strany ma APRS-IS a uvnitr sebe ma logiku ktere packety poslat na ktera rozhrani.
Odpojeni konzole ze serioveho portu je potreba jen pokud je pripojeny. Zda je nebo neni pripojeny se da poznat podle toho, zda neco na seriovy port vypisuje - dost casto na prvni seriovy port vypisuje startovaci hlasky sam zavadec a i system pri startu, nezavisle na tom, zda tam je nebo neni konzole (routery na OpenWRT to tak delaji). Pokud pri restartu na seriovy port nic nepise, pak jedine dobre a nemusi se resit.
Prepnuti do KISSu je trivialni, staci do TNC poslat sekvenci Esc @ K, coz je presne "echo -en 'r\033@K\r' > /dev/ttyS0". Co mozna pred prepnutim bude potreba je nastavit spravnou rychlost serioveho portu. Pokud je nastavena, neni problem.
Jinak pro "nakopnuti spravnym smerem" :) by bylo dobre vedet, co to po startu vlastne dela / nedela. Bezi to? (je to videt v bezicich procesech?) Jsou nejake dalsi informace v logu? (/var/log/aprx/aprx.log) Jak vypada cely konfigurak?
ok2slc
Příspěvky: 115
Registrován: stř 11. bře 2009 8:44:57

Re: APRX

Příspěvek od ok2slc » čtv 22. črc 2010 10:50:06

Ahojte,
vypadá to tak, že jsem asi uspěl :).
Ahoj,
pokud se nemylim, kouzlo aprx tkvi mimo jine v tom, ze pro svuj beh vubec ax25 veci nepotrebuje.
AHA, tak to mi jaksi uniklo, nějak jsem bral jako samozřejmost, že bez ax25 to fungovat nemůže.

Tady je moje současná testovací konfigurace, která není pochopitelně určena pro on-air, ale abych to nějak zprovoznil, takže jsou tam vyloženě opsaný věci z manuálu kvůli zachování syntaxe:

Kód: Vybrat vše

mycall OK2SLC-1
<interface>
serial-device /dev/ttyS0  9600  8n1  KISS
initstring "\x1B@K\r"
callsign OK2SLC-1
tx-ok true
</interface>

<digipeater>
transmitter $mycall
    <source>
        source $mycall
        relay-type directonly
    </source>
</digipeater>

<beacon>
    cycle-size 1m
    beaconmode radio
    beacon via WIDE1-1 \
    symbol "R&" lat "6016.35N" lon "02506.36E" \
    comment "APRX TEST"
</beacon>
A tady je debug výstup (přepínač -ddd)

Kód: Vybrat vše

voyage:~# aprx -ddd -f /etc/aprx.confx
interface_store() aif->callsign = 'APRSIS'
Config line: 'mycall OK2SLC-1'
/etc/aprx.confx:0: MYCALL = 'OK2SLC-1' ''
Config line: '<interface>'
Config line: 'serial-device /dev/ttyS0  9600  8n1  KISS'
.. new style serial:  '/dev/ttyS0' '9600  8n1  KISS'.. tncid=0
 .. param='9600' .. param='8n1' .. param='kiss'
Config line: 'initstring "\x1B@K\r"'
Config line: 'callsign OK2SLC-1'
  callsign= 'OK2SLC-1'
Config line: 'tx-ok true'
Config line: '</interface>'
openpty() rc=0 name='/dev/pts/1' master=4 slave=5
netax25_openpty() error exit.
interface_store() aif->callsign = 'OK2SLC-1'
Config line: ''
Config line: '<digipeater>'
Config line: 'transmitter $mycall'
Config line: '    <source>'
Config line: '  source $mycall'
/etc/aprx.confx:11 <source> source = '$mycall'
 .. source_aif = 0x806d208
Config line: '  relay-type directonly'
Config line: '    </source>'
 .. <source> definition returning 0x806f3d8
Config line: '</digipeater>'
<digipeater> sourcecount=1
Config line: ''
Config line: '<beacon>'
Config line: '    cycle-size 1m'
Beacon cycle size: 1.00
Config line: '    beaconmode radio'
Config line: '    beacon via WIDE1-1     symbol "R&" lat "6016.35N" lon "02506.36E"     comment "APRX TEST"'
BEACON parameters: via 'WIDE1-1' symbol 'R&' lat '6016.35N' lon '02506.36E' comment 'APRX TEST'
/etc/aprx.confx:19 Lacking 'interface' keyword for this beacon definition. Beaconing to all Tx capable interfaces + APRSIS (mode depending)
RFONLY BEACON FOR ***>APRX1L,WIDE1-1'  '!6016.35NR02506.36E&APRX TEST'
Config line: '</beacon>'
1279717954      TTY /dev/ttyS0 OPEN - fd=3 - OK
beacons cycle: 1.00 minutes, increment: 1.00 minutes
beacons offset: 0.80 minutes
BEACON: idx=0, nexttime= +48 sec
1279717984      Now beaconing to interface OK2SLC-1 'OK2SLC-1>APRX1L,WIDE1-1' -> '!6016.35NR02506.36E&APRX TEST', next beacon in 0.80 minutes
interface_transmit_beacon() aif=0x806d208, aif->txok=1 aif->callsign='OK2SLC-1'
interface_transmit_ax25(aif=0x806d208[OK2SLC-1], .., axlen=52)
kiss_kisswrite(->OK2SLC-1, axlen=52)kiss-encoded: c0 00 82 a0 a4 b0 62 98|60 9e 96 64 a6 98 86 62|ae 92 88 8a 62 40 63 03|f0 21 36 30 31 36 2e 33|35 4e 52 30 32 35 30 36|2e 33 36 45 26 41 50 52|58 20 54 45 53 54 c0  = `.APRX1L|0OK2SLC1|WIDE1 c.|.!6016.3|5NR02506|.36E&APR|X TEST.
erlang_add(OK2SLC-1, TX, 52, 1)
 .. put 55 bytes of KISS frame on IO buffer
^CSegmentation fault
voyage:~#
O víkendu to zkusím rozjet místo OK2SLC-2 a pak to budu průběžně ladit :).
ok1djo
Příspěvky: 139
Registrován: úte 28. dub 2009 9:29:13
Jméno: Martin
Bydliště: Praha, JO70DB Jméno: Martin

Re: APRX

Příspěvek od ok1djo » čtv 22. črc 2010 12:20:57

Ahoj,
konfigurace vypada rozumne, na ni neni ani moc co zkazit.
Ale to, ze to vypise ^CSegmentation fault a nasledne zkonci, neni v poradku. Tipuji, ze je neco spatne v kodu po binarni strance - jine verze knihoven, chyba v knihovne a podobne. Kompiloval jsi to ze zdrojaku nebo na to je balicek nebo mas odnekud nejakou zkompilovanou binarku a tu poustis?
Uživatelský avatar
OK1TEB
Příspěvky: 161
Registrován: stř 25. bře 2009 23:01:56
Jméno: Pavel
Bydliště: JO70MQ - Proseč p/J
Kontaktovat uživatele:

Re: APRX

Příspěvek od OK1TEB » čtv 22. črc 2010 12:31:50

Blahopřeji. Ještě jsem se chtěl zeptat na verzi aprx. Kluk jeden finskej šikovnej už totiž v poslední verzi dokončil igate tx. Funguje to úplně bezvadně. Pokud budeš mít digi připojené do netu, neváhal bych zprovoznit i igate. Vůbec s tím aprx jdou dělat bezva konfigurace. Koukám, že to máš zkonfigurovaný jako WIDE1-1 digi :) .

A ax25 tady není potřeba i když aprx s ax25 zařízením pracovat umí, já ho třeba využívám.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|| Pavel ||
ok2slc
Příspěvky: 115
Registrován: stř 11. bře 2009 8:44:57

Re: APRX

Příspěvek od ok2slc » čtv 22. črc 2010 15:25:47

Ahojte,
to ok1djo:
Ale to, ze to vypise ^CSegmentation fault a nasledne zkonci, neni v poradku. Tipuji, ze je neco spatne v kodu po binarni strance - jine verze knihoven, chyba v knihovne a podobne.
To "^CSegmentation fault" je následek ukončení pomocí CTRL-C, takže předpokládám, že to tak má končit. Pokud to někomu končí po Ctrl-C jinak, tak tam asi někde bude chyba, která ale nemá na vlastní běh vliv (si myslím).
Kompiloval jsi to ze zdrojaku nebo na to je balicek nebo mas odnekud nejakou zkompilovanou binarku a tu poustis?
Balíček jsem nekompiloval, stáhnul jsem jej přímo zde http://ham.zmailer.org/oh2mqk/aprx/aprx ... 1_i386.deb a systém je Voyage 0.6.5 s updatem a upgradem všech balíčků. Jedinné co jsem tam doinstaloval byl jak jinak než Midnight Commander, protože vi(m) je pro mě jako linux lamu dost nepřítulný a pokud vyloženě nemusím tak jej nepoužívám :).

to OK1TEB:
Ještě jsem se chtěl zeptat na verzi aprx
Používám poslední dostupnou verzi viz. výše. Jinak ten konfigurační soubor je hlavně jen kvůli syntaxi, protože jsem se s tím docela natrápil než mě to přestalo psát errory, takže výsledná konfigurace bude pro Fill-in a chci zkusit nějaké fíčury jako je např. Viscous Digipeater. Až to poladím na rádiu, tak určitě chci zkusit ten igate, možná jen igate-rx. Také jsem rád, že jsem donutil to TNC5+ přepnout do KISS (stačilo se podívat sem http://aprs.cz/index.php?option=com_con ... x&Itemid=1 a převést to z Oct do Hex 8-) ).

V této souvislosti bych se chtěl zeptat na následující věci:
1. Co a kam mám zapsat aby to startovalo po rebootu automaticky a nemuselo se to spouštět ručně.
2. Může něčemu vadit, že to bude provozováno na read-only fs (CF karta) ?
3. Jde v APRX nějak nastavovat TXDelay v KISS (dle manuálu KISS je default 50 v 10ms units, tj. 500ms) ?
4. Na co přesně je vlastně toto "# /etc/init.d/aprx start | # /etc/init.d/aprx stop" když se to spouští tímto "aprx -d -f /etc/aprx.conf" ?

Díky za odpovědi, některé vazby mi v linuxu zatím unikají.
Slávek
Uživatelský avatar
OK1TEB
Příspěvky: 161
Registrován: stř 25. bře 2009 23:01:56
Jméno: Pavel
Bydliště: JO70MQ - Proseč p/J
Kontaktovat uživatele:

Re: APRX

Příspěvek od OK1TEB » čtv 22. črc 2010 19:47:27

Ahoj,

1 a 4 spolu souvisí. V MC stačí /etc/init.d/aprx označit jako spustitelný. Pak při bootu se nastartuje dle scriptu. Pokud už aprx běží, můžeš ho pustit a zastavit pomocí

Kód: Vybrat vše

/etc/init.d/aprx start
nebo

Kód: Vybrat vše

/etc/init.d/aprx stop
Více o spouštění má v manuálu na stránce 39.

K bodu 2 si nejsem jist a bod 3 - TNC jsem nikdy neměl, bohužel nevím.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|| Pavel ||
ok1djo
Příspěvky: 139
Registrován: úte 28. dub 2009 9:29:13
Jméno: Martin
Bydliště: Praha, JO70DB Jméno: Martin

Re: APRX

Příspěvek od ok1djo » pát 23. črc 2010 11:54:18

ok2slc píše:2. Může něčemu vadit, že to bude provozováno na read-only fs (CF karta) ?
3. Jde v APRX nějak nastavovat TXDelay v KISS (dle manuálu KISS je default 50 v 10ms units, tj. 500ms) ?
Ahoj Slavku,
ad 2 - aprx zapisuje nektere veci do logu - pokud nasmerujes logy tam, kam zapisovat muze, nebude mit problem. budou-li smerovat na zamcenou CF, je mozne, ze spadne, nebo mu to "jen" nebude vadit. Lepsi je je mit v pameti - zalezi jak mas system nakonfigurovany, nekdy byva cast ram mapovana jako adresar - na routrech napr /tmp. budou-li log v pameti a ne na disku, prijdes o ne pri restartu systemu, podobne je potreba pamatovat na jejich rotovani / odmazavani, pokud se do nich jen zapisuje. prepinat ale CF do zapisu neni stastne, CF ma omezeny pocet zapisu a zapisovanim logu ji zanedlouho odrovnas. Tj bud pro logy pamet nebo disk.
ad 3. a TNC5+ - nemylim-li se moc, pak se pro KISS pouziji parametry, ktere jsou v TNC nakonfigurovane pred prepnutim do KISS. Tj kdyz je zmenis pres prikazovy interface a pak TNC prepnes do KISSU, mely by zustat platne i v KISSu. Z prikazoveho interface muzes parametry ulozit, takze budou dostupne i pri stratu TNC a meli by zustat platne i po prepnuti do KISSu.
Martin ok1djo
ok2slc
Příspěvky: 115
Registrován: stř 11. bře 2009 8:44:57

Re: APRX

Příspěvek od ok2slc » pát 23. črc 2010 18:01:37

Ahojte,
takže se mi to doufám konečně podařilo rozjet :).

To OK1TEB:
ten manuál jsem pochopitelně četl a nastavoval jsem to podle něj už předtím, ale ten WRAP ho asi nečetl a proto se podle něj nechtěl chovat :).
Problém byl ale jinde, začal jsem se po tom pídit, ten aprx normálně automaticky startoval, byl vidět v procesech, ale nijak to nechtělo chodit na TNC. Po připojení terminálu jsem zjistil, že to normálně posílá KISS rámce. Takže chyba byla někde v inicializaci TNC. Ony se vlastně vyskytly ty chyby dvě.

První byla, že z nějakého důvodu, když bylo na sériovém portu připnuté TNC nebo PC s terminálem, nechtěl WRAP bootovat. Zřejmě čekal na povel ze sériové konzole. Nejzajmavější na tom bylo to, že někdy bootoval standardně do 4min., jindy do 10min. a většinou vůbec. Docela dlouho jsem z tohoto jednání podeříval samotný hw WRAPu. Jediným řešení bylo vypnout seriovou konzolu přímo v BIOSu a doufat, že v případě potřeby půjde přes sw nějak zapnout :D. Viz. http://www.czfree.net/forum/showthread. ... tid=171763

Druhá chyba byla, že při bootování se i při vypnuté sériové konzole "něco" odeslalo na com port a i když sekvence pro KISS byla správná, tak TNC na to nereagovalo. Toto jsem vyřešil tak, že před samotnou sekvencí pošlu ENTER a tim "vyčistím" TNC od nežádoucího obsahu. Inicializační řetězec pro KISS pak vypadá takto:

Kód: Vybrat vše

initstring "\r\x1B@K\r"
S tímto už to konečně rebootuje úplně vpohodě.

To ok2djo:
ty logy budu řešit někdy později, teď to mám nastavené tak, že žádné logy neinicializuji a to co si dělá samotný Voyage neřeším, každopádně startuje jako read-only fs a nepátral jsem po tom zda si vytváří nějaký ramdisk.

Co se týká toho TXDelay v KISS tak dle dostupné dokumentace se tento a ostatní parametry přenášejí v KISS frame. Vycházím také z logiky, že při použití KISS EPROM v TNC2 se tyto parametry nastavují vždy v příslušném software. Každopádně toto řešit asi nyní nebudu, budu věřit dokumentaci, že default je 500ms, což bohatě postačuje.

Jinak pánové velice děkuji za spolupráci, až nějak odladím funkční config, vystavím ho zde. Pokud by byl zájem, mohu napsat "Tutorial od lamy pro lamy", třeba to někomu v budoucnosti pomůže neboť tyto WRAP/ALIX jsou docela dobře použitelné.
ok2slc
Příspěvky: 115
Registrován: stř 11. bře 2009 8:44:57

Re: APRX

Příspěvek od ok2slc » čtv 29. črc 2010 22:59:24

Ahojte,
takže zde uvádím funkční konfiguraci pro Fill-in digipeater s RX-iGate.

Kód: Vybrat vše

mycall OK2SLC-1
<aprsis>
server poland.aprs2.net 14580
filter m/100
</aprsis>

<interface>
serial-device /dev/ttyS0 9600 8n1 SMACK
initstring "\r\x1B@K\r"
callsign $mycall
tx-ok true
</interface>

<digipeater>
transmitter $mycall
    <source>
        source $mycall
        relay-type directonly
        viscous-delay 5
    </source>
</digipeater>

<beacon>
    cycle-size 60m
    beaconmode radio
    beacon via WIDE2-2 \
    symbol "1#" lat "4910.20N" lon "01620.24E" \
    comment "PHG216037/Aprx v1.99 Fill-in"

    beacon via WIDE2-2 \
    symbol "1#" lat "4910.20N" lon "01620.24E" \
    comment "PHG216037/QTH - Zakrany near Brno"

    beacon via WIDE2-2 \
    symbol "1#" lat "4910.20N" lon "01620.24E" \
    comment "PHG216037/Sysop - OK2SLC - ok2slc@ok2slc.cz"
</beacon>
Odpovědět