{"id":626,"date":"2017-06-22T10:10:43","date_gmt":"2017-06-22T08:10:43","guid":{"rendered":"http:\/\/tech4.pl\/SQ9MDD\/?p=626"},"modified":"2017-06-22T10:10:43","modified_gmt":"2017-06-22T08:10:43","slug":"stacja-domowa-z-funkcja-digi-pomocniczego-na-aprx-i-direwolf","status":"publish","type":"post","link":"https:\/\/sq9mdd.hamspirit.pl\/?p=626","title":{"rendered":"Stacja Domowa i DIGI Pomocnicze na APRX, DireWolf i APRSIS32"},"content":{"rendered":"<p>Po przetestowaniu, skuteczno\u015bci dzia\u0142ania oprogramowania <a href=\"https:\/\/github.com\/wb2osz\/direwolf\">DireWolf<\/a>. Zach\u0119cony tym jak fajnie to dzia\u0142a. Postanowi\u0142em przygotowa\u0107 kr\u00f3tki opis konfiguracji stacji domowej z funkcjonalno\u015bci\u0105 digipitera pomocniczego, kt\u00f3ry b\u0119dzie oparty o to programowe\u00a0 TNC. Jednocze\u015bnie b\u0119dzie mo\u017cliwo\u015b\u0107 pracy z tej stacji za pomoc\u0105 APRSIS32<\/p>\n<p><!--more--><br \/>\nDo uruchomienia b\u0119dziemy potrzebowa\u0107 dodatkowej karty muzycznej na USB, w innych opisach w sieci znalaz\u0142em polecany model za nieca\u0142e 6 dolar\u00f3w (<a href=\"https:\/\/www.amazon.com\/external-Adapter-Windows-Microphone-SD-CM-UAUD\/dp\/B001MSS6CS\">https:\/\/www.amazon.com\/external-Adapter-Windows-Microphone-SD-CM-UAUD\/dp\/B001MSS6CS<\/a>). Ja u\u017cy\u0142em czego\u015b przypadkowego z allegro.<\/p>\n<div id=\"attachment_643\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=643\" rel=\"attachment wp-att-643\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-643\" class=\"size-medium wp-image-643\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2017\/06\/19400748_1604120942945211_166983798_o-300x168.jpg\" alt=\"Karta muzyczna na USB\" width=\"300\" height=\"168\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/19400748_1604120942945211_166983798_o-300x168.jpg 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/19400748_1604120942945211_166983798_o-1024x575.jpg 1024w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/19400748_1604120942945211_166983798_o-768x431.jpg 768w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/19400748_1604120942945211_166983798_o-1536x862.jpg 1536w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/19400748_1604120942945211_166983798_o.jpg 1920w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-643\" class=\"wp-caption-text\">Karta muzyczna na USB<\/p><\/div>\n<p>Na pocz\u0105tku rozpoczynamy prace od przygotowania karty SD z obrazem RaspberyPi.<br \/>\nU\u017cyjemy obrazu <a href=\"https:\/\/www.raspberrypi.org\/downloads\/raspbian\/\">Raspbian Jessi Lite<\/a>, a do wgrania obrazu na kart\u0119 SD, pos\u0142u\u017cy program: <a href=\"https:\/\/sourceforge.net\/projects\/win32diskimager\/\">Win32DiskImager. <\/a>Procedura jest prosta z menu programu wybieramy plik obrazu, wk\u0142adamy kart\u0119 SD w czytnik komputera. Gdy karta si\u0119 wykryje wybieramy odpowiedni\u0105 literk\u0119 nap\u0119du karty i klikamy zapisz.<\/p>\n<p>Pierwsze logowanie do RaspberryPi robimy po pod\u0142\u0105czeniu malinki do monitora, u\u017cywaj\u0105c zewn\u0119trznej klawiatury. Po zalogowaniu si\u0119 warto najpierw uruchami\u0107 serwer ssh tak by mie\u0107 dost\u0119p zdalny do naszego digi, robimy to za pomoc\u0105 konfiguratora raspberry pi. \u0141atwiej nam wtedy b\u0119dzie wkleja\u0107 komendy kopiowane bezpo\u015brednio z tej strony.<\/p>\n<pre>sudo raspi-config<\/pre>\n<p>Po uruchomieniu konfiguratora post\u0119pujemy tak jak na zrzutach poni\u017cej:<\/p>\n<div id=\"attachment_1357\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=1357\" rel=\"attachment wp-att-1357\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1357\" class=\"wp-image-1357 size-medium\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2018\/08\/raspi-config-0-300x190.png\" alt=\"raspi-config-0\" width=\"300\" height=\"190\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2018\/08\/raspi-config-0-300x190.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2018\/08\/raspi-config-0.png 661w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1357\" class=\"wp-caption-text\">Wybieramy interfacing options<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_1352\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=1352\" rel=\"attachment wp-att-1352\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1352\" class=\"wp-image-1352 size-medium\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2018\/08\/raspi-config-2-300x190.png\" alt=\"raspi-config-2\" width=\"300\" height=\"190\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2018\/08\/raspi-config-2-300x190.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2018\/08\/raspi-config-2.png 661w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1352\" class=\"wp-caption-text\">Nast\u0119pnie P2 SSH<\/p><\/div>\n<div id=\"attachment_1353\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=1353\" rel=\"attachment wp-att-1353\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1353\" class=\"wp-image-1353 size-medium\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2018\/08\/raspi-config-3-300x190.png\" alt=\"raspi-config-3\" width=\"300\" height=\"190\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2018\/08\/raspi-config-3-300x190.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2018\/08\/raspi-config-3.png 661w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1353\" class=\"wp-caption-text\">Zatwierdzamy w\u0142\u0105czenie serwera ssh<\/p><\/div>\n<div id=\"attachment_1354\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=1354\" rel=\"attachment wp-att-1354\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1354\" class=\"wp-image-1354 size-medium\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2018\/08\/raspi-config-4-300x190.png\" alt=\"raspi-config-4\" width=\"300\" height=\"190\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2018\/08\/raspi-config-4-300x190.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2018\/08\/raspi-config-4.png 661w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1354\" class=\"wp-caption-text\">Serwer w\u0142\u0105czony<\/p><\/div>\n<p>Po opuszczeniu konfiguratora musimy uaktualni\u0107 system, komendy poni\u017cej:<\/p>\n<pre>sudo apt-get update\nsudo apt-get upgrade\n<\/pre>\n<p>Po wykonaniu\u00a0 aktualizacji przyst\u0119pujemy do instalacji direwolfa, na pocz\u0105tek instalujemy niezb\u0119dne pakiety:<\/p>\n<pre>sudo apt-get install libasound2-dev\nsudo apt-get install git\n<\/pre>\n<p>Wa\u017cne te\u017c jest usuni\u0119cie pakiet\u00f3w pulseaudio kt\u00f3ry wed\u0142ug opinii tw\u00f3rc\u00f3w DireWolfa mo\u017ce powodowa\u0107 komplikacje, w \u015bwie\u017cej instalacji tych pakiet\u00f3w by\u0107 nie powinno ale dla pewno\u015bci wykonujemy komendy:<\/p>\n<pre>sudo apt-get remove --purge pulseaudio\nsudo apt-get autoremove\nrm -rf \/home\/pi\/.pulse\n<\/pre>\n<p>Nast\u0119pnie \u015bci\u0105gamy i instalujemy pakiet cmake<\/p>\n<pre>\nsudo apt install cmake\n<\/pre>\n<p>\u015aci\u0105gamy \u017ar\u00f3d\u0142a DireWolfa do katalogu domowego u\u017cytkownika pi:<\/p>\n<pre>cd\ngit clone https:\/\/www.github.com\/wb2osz\/direwolf\n<\/pre>\n<p>Nast\u0119pnie wchodzimy do katalogu (utworzy\u0142 si\u0119 pod nazw\u0105 direwolf w katalogu \/home\/pi) ze \u017ar\u00f3d\u0142ami i rozpoczynamy kompilacj\u0119, wydaj\u0105c po kolei nast\u0119puj\u0105ce komendy:<\/p>\n<pre>cd direwolf\nmkdir build &amp;&amp; cd build\ncmake ..\nmake -j4\nsudo make install\nmake install-conf\n<\/pre>\n<p>Po zako\u0144czeniu procesu kompilowania, instalacji i instalacji pliku konfiguracjyjnego, kt\u00f3ry trwa do\u015b\u0107 d\u0142ugo, w katalogu domowym u\u017cytkownika &#8222;pi&#8221; pojawi si\u0119 plik konfiguracyjny direwolf.conf.<br \/>\nZanim przyst\u0105pimy do jego edycji warto sprawdzi\u0107 czy karta d\u017awi\u0119kowa jest widoczna w systemie:<\/p>\n<pre>aplay -l\n<\/pre>\n<p>Powinni\u015bmy zobaczy\u0107 mniej wi\u0119cej co\u015b takiego:<\/p>\n<pre>pi@raspberrypi:~ $ aplay -l\n**** List of PLAYBACK Hardware Devices ****\ncard 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]\n  Subdevices: 8\/8\n  Subdevice #0: subdevice #0\n  Subdevice #1: subdevice #1\n  Subdevice #2: subdevice #2\n  Subdevice #3: subdevice #3\n  Subdevice #4: subdevice #4\n  Subdevice #5: subdevice #5\n  Subdevice #6: subdevice #6\n  Subdevice #7: subdevice #7\ncard 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958\/HDMI]\n  Subdevices: 1\/1\n  Subdevice #0: subdevice #0\ncard 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]\n  Subdevices: 1\/1\n  Subdevice #0: subdevice #0\npi@raspberrypi:~ $\n\n<\/pre>\n<p>U\u017cywamy karty muzycznej pod\u0142\u0105czonej do portu USB. I to t\u0119 kart\u0119 nale\u017cy skonfigurowa\u0107 w pliku konfiguracyjnym kt\u00f3ry po instalacji DireWolfa znajduje si\u0119 w \/home\/pi\/direwolf.conf. Konfigurujemy tak\u017ce pin GPIO kt\u00f3ry b\u0119dzie naciska\u0142 PTT w radiu za pomoc\u0105 dodatkowego uk\u0142adu wykonawczego, wydajemy komend\u0119:<\/p>\n<pre>sudo pico \/home\/pi\/direwolf.conf\n<\/pre>\n<p>Nast\u0119pnie wewn\u0105trz pliku powinni\u015bmy odnale\u017a\u0107 poni\u017csze wpisy i ustawi\u0107 je tak jak w przyk\u0142adzie:<\/p>\n<pre>ADEVICE plughw:1,0\nACHANNELS 1\nCHANNEL 0\nMYCALL SQ9MDD\nMODEM 1200\nPTT GPIO 25\nAGWPORT 8000\nKISSPORT 8001\nFIX_BITS 0\n<\/pre>\n<p>Reszt\u0119 wpis\u00f3w nale\u017cy wykomentowa\u0107 wstawiaj\u0105c znak &#8222;#&#8221; na pocz\u0105tku linii.<\/p>\n<p>Dzi\u0119ki takiej konfiguracji DireWolf b\u0119dzie korzysta\u0142 z urz\u0105dzenia 0 na karcie 1.<br \/>\nWydaj\u0105c polecenie direwolf mo\u017cemy uruchomi\u0107 TNC i przetestowa\u0107 dekodowane ramek. Jednocze\u015bnie na porcie 8001 jest aktywna us\u0142uga TNC w trybie KISS, a na porcie 8000 znajduje si\u0119 port AGW do kt\u00f3rego b\u0119dziemy mogli pod\u0142\u0105czy\u0107 r\u00f3wnolegle aplikacj\u0119 APRSIS32. Podczas dekodowania DireWolf podaje tak\u017ce si\u0142\u0119 sygna\u0142u audio i ostrze\u017cenia o przesterowaniu jest to dobry moment by ustawi\u0107 sobie odpowiedni poziom sygna\u0142u audio.<\/p>\n<div id=\"attachment_633\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=633\" rel=\"attachment wp-att-633\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-633\" class=\"size-medium wp-image-633\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2017\/06\/direwolf-300x149.png\" alt=\"Pracuj\u0105cy soundmodem DireWolf\" width=\"300\" height=\"149\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/direwolf-300x149.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/direwolf-768x380.png 768w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/direwolf.png 941w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-633\" class=\"wp-caption-text\">Pracuj\u0105cy sound modem DireWolf<\/p><\/div>\n<p>Konfiguracja DireWolfa jest zasadniczo uko\u0144czona, gdy\u017c w naszym scenariuszu wykorzystujemy ten pakiet tylko jako TNC w trybie KISS dla APRX-a oraz AGW dla APRSIS32.<\/p>\n<p>Przechodzimy do instalacji i konfiguracji APRX-a.<br \/>\nNa pocz\u0105tek musimy \u015bci\u0105gn\u0105\u0107 paczk\u0119 instalacyjn\u0105 najnowszej wersji APRX-a kt\u00f3r\u0105 znajdziemy na stronie:<br \/>\n<a href=\"http:\/\/thelifeofkenneth.com\/aprx\/debs\/\">http:\/\/thelifeofkenneth.com\/aprx\/debs\/<\/a><\/p>\n<p>Dla u\u0142atwienia robimy to z poziomu raspberrypi :<\/p>\n<pre>wget http:\/\/thelifeofkenneth.com\/aprx\/debs\/aprx_2.9.0_raspi.deb\n<\/pre>\n<p>Nast\u0119pnie uruchamiamy instalatora:<\/p>\n<pre>sudo dpkg -i aprx_2.9.0_raspi.deb\n<\/pre>\n<p>Po pomy\u015blnej instalacji w katalogu \/etc znajdziemy plik konfiguracyjny aprx.conf, kt\u00f3ry powinni\u015bmy edytowa\u0107.<br \/>\nNa pocz\u0105tek wykonamy jego kopi\u0119 (b\u0119dzie do czego wraca\u0107 w razie problem\u00f3w)<\/p>\n<pre>sudo cp \/etc\/aprx.conf \/etc\/aprx.conf.oryg<\/pre>\n<p>A nast\u0119pnie u\u017cywaj\u0105c prostego i przyjaznego edytora &#8222;pico&#8221; rozpoczynamy edycj\u0119 pliku konfiguracyjnego.<br \/>\nW oknie putty lub bezpo\u015brednio w terminalu raspberrypi wpisujemy:<\/p>\n<pre>sudo pico \/etc\/aprx.conf<\/pre>\n<p>By uzyska\u0107 przejrzysto\u015b\u0107 pliku wykasowa\u0142em z niego wszystkie informacje i skonfigurowa\u0142em wszystko po kolei.<br \/>\nNa pocz\u0105tek m\u00f3j znak podstawowy i koordynaty. Znak podstawowy mo\u017cna p\u00f3\u017aniej u\u017cywa\u0107 jak zmiennej w innych miejscach w pliku a koordynaty podane w konfiguracji s\u0142u\u017c\u0105 podczas u\u017cywania fitr\u00f3w odleg\u0142o\u015bci.<\/p>\n<pre>mycall  SQ9MDD-3\nmyloc lat 5215.02N lon 02055.59E\n<\/pre>\n<p>Nast\u0119pnie konfiguruj\u0119 interface do sieci APRSIS tak by przekazywa\u0107 automatycznie do niej wszystkie us\u0142yszane ramki. Interfejsu tego b\u0119d\u0119 m\u00f3g\u0142 tak\u017ce u\u017cy\u0107 jako \u017ar\u00f3d\u0142a danych w sekcji digi, ale o tym p\u00f3\u017aniej.<\/p>\n<pre>&lt;aprsis&gt;\n  login     $mycall\n  passcode  29666\n  server    sp.aprs2.net          14580\n  filter m\/5\n&lt;\/aprsis&gt;<\/pre>\n<p>Nast\u0119pna sekcja dotyczy logowania, w moim przypadku normalnie podczas pracy u\u017cywam tylko pliku aprx-rf.log<br \/>\nw kt\u00f3rym mog\u0119 na bie\u017c\u0105co podgl\u0105da\u0107 stan pracy stacji. Logujemy do pliku w katalogu tmp gdy\u017c po prze\u0142\u0105czeniu systemu plik\u00f3w w tryb read-only ten katalog b\u0119dzie znajdowa\u0142 si\u0119 w ramdysku.<\/p>\n<pre>&lt;logging&gt;\n  #pidfile \/var\/run\/aprx.pid\n  rflog \/tmp\/aprx-rf.log\n  #aprxlog \/var\/log\/aprx\/aprx.log\n&lt;\/logging&gt;\n<\/pre>\n<p>Nast\u0119pnie konfigurujemy interface radiowy czyli w naszym przypadku po\u0142\u0105czenie z DireWolfem:<\/p>\n<pre>&lt;interface&gt;\n  tcp-device 127.0.0.1 8001 KISS\n  callsign    $mycall\n  tx-ok       true\n  telem-to-is false\n  alias         WIDE,WM,SP\n&lt;\/interface&gt;\n<\/pre>\n<p>We wpisie alias wpisujemy obs\u0142ugiwane \u015bcie\u017cki dla naszej lokalizacji czyli WIDE,SP oraz lokalny alias powiatowy w moim przypadku WM. Konfigurujemy w\u0142asny beacon, mile widziane jest poprawne skalkulowanie w nim parametru PHG oraz wpisanie cz\u0119stotliwo\u015bci lokalnej dla naszego rejonu tak by podr\u00f3\u017cuj\u0105cy koledzy wiedzieli gdzie mog\u0105 nawi\u0105za\u0107 \u0142\u0105czno\u015b\u0107.<\/p>\n<pre>&lt;beacon&gt;\n  beaconmode radio\n  cycle-size 30m\n  beacon interface $mycall via WIDE2-1 symbol \"\/-\" lat \"5215.02N\" lon \"02055.59E\" comment \"PHG1004 145.575MHz Rysiek\"\n&lt;\/beacon&gt;\n<\/pre>\n<p>Ostatnia sekcja, to konfiguracja digipitera kt\u00f3ry b\u0119dzie obs\u0142ugiwa\u0142 tylko ramki us\u0142yszane bezpo\u015brednio i nie powt\u00f3rzone przez regularne digipitery dzi\u0119ki czemu tak skonfigurowana stacja domowa b\u0119dzie bardzo dobrym wype\u0142nieniem na mapie bia\u0142ych plam. Wewn\u0105trz sekcji digipitera nale\u017cy zwr\u00f3ci\u0107 uwag\u0119 na wpis: viscous-delay 5.<br \/>\nOznacza to ze nasze digi b\u0119dzie przetrzymywa\u0107 us\u0142yszane ramki przez 5 sekund i je\u015bli w tym czasie ramka nie zostanie powt\u00f3rzona przez inne digi pomocnicze to zostanie ona nadana.\u00a0 Jest to szczeg\u00f3lnie przydatne dla obs\u0142ugi ruchu stacji r\u0119cznych pracuj\u0105cych ma\u0142\u0105 moc\u0105. W sekcjach &#8222;&lt;wide&gt;&#8221; i\u00a0 &#8222;&lt;trace&gt;&#8221; wpisujemy odpowiednio aliasy nie trasowane i trasowane.<br \/>\nKompletna sekcja DIGI wygl\u0105da jak poni\u017cej:<\/p>\n<pre>&lt;digipeater&gt;\n transmitter   $mycall\n\n  &lt;wide&gt;\n   maxreq 3\n   maxdone 3\n   keys WM,SP\n  &lt;\/wide&gt;\n\n  &lt;trace&gt;\n   maxreq 3\n   maxdone 3\n   keys WIDE\n  &lt;\/trace&gt;\n\n  &lt;source&gt;\n   source         $mycall\n   relay-type     directonly\n   viscous-delay  5\n   ratelimit      60 120\n   filter m\/5\n  &lt;\/source&gt;\n\n&lt;\/digipeater&gt;\n<\/pre>\n<p>Ostatnia czynno\u015b\u0107 konfiguracyjna to dopisanie do pliku \/etc\/rc.local (na samym ko\u0144cu ale powy\u017cej &#8222;exit 0&#8221;) kilku komend kt\u00f3re zapewni\u0105 nam automatyczny start us\u0142ug DireWolf i APRX, otwieramy plik:<\/p>\n<pre>sudo pico \/etc\/rc.local<\/pre>\n<p>I wpisujemy to co poni\u017cej:<\/p>\n<pre>su -l pi -c direwolf &gt; \/dev\/null &amp;\naprx\n<\/pre>\n<p>Tak skonfigurowane RaspberryPi nale\u017cy pod\u0142\u0105czy\u0107 do radia za pomoc\u0105 <a href=\"http:\/\/10.9.48.151\/?p=136\">interfejsu <\/a>kt\u00f3ry opisywa\u0142em ju\u017c tutaj na stronie. Ale zanim to zrobimy musimy przestawi\u0107 system plik\u00f3w raspberry pi w tryb read-only.\u00a0 Jest to konieczne gdy\u017c normalna praca w trybie read-write jest podatna na uszkodzenia karty SD. W tym celu skorzystamy z gotowego skryptu. Skrypt ten \u015bci\u0105gamy ze gitlaba, znajduje si\u0119 pod tym adresem: <a href=\"https:\/\/gitlab.com\/larsfp\/rpi-readonly\">https:\/\/gitlab.com\/larsfp\/rpi-readonly<\/a> W razie niedost\u0119pno\u015bci tego pliku w oficjalnym repozytorium mo\u017cna go znale\u017a\u0107 tak\u017ce u mnie: <a href=\"http:\/\/10.9.48.151\/pliki\/setup.sh\">http:\/\/10.9.48.151\/pliki\/setup.sh<\/a><\/p>\n<p>Wykonujemy po kolei kolejne komendy:<\/p>\n<pre>cd\nwget -t0 -c https:\/\/gitlab.com\/larsfp\/rpi-readonly\/raw\/master\/setup.sh\nsudo chmod 755 setup.sh\nsudo .\/setup.sh<\/pre>\n<p>Gdy skrypt zakonczy prac\u0119 restartujemy RaspberryPi i po ponownym zalogowaniu musimy zmodyfikowa\u0107 kilka plik\u00f3w. Najpierw jednak musimy prze\u0142\u0105czy\u0107 system plik\u00f3w w tryb read-write:<\/p>\n<pre>sudo mount -o remount,rw \/ ; sudo mount -o remount,rw \/boot<\/pre>\n<p>Nast\u0119pnie edytujemy plik : \/etc\/bash.bashrc<\/p>\n<pre>sudo pico \/etc\/bash.bashrc<\/pre>\n<p>I na samym ko\u0144cu dopisujemy:<\/p>\n<pre># set variable identifying the filesystem you work in (used in the prompt below)\nset_bash_prompt(){\n\u00a0\u00a0\u00a0 fs_mode=$(mount | sed -n -e \"s\/^\\\/dev\\\/.* on \\\/ .*(\\(r[w|o]\\).*\/\\1\/p\")\n\u00a0\u00a0\u00a0 PS1='\\[\\033[01;32m\\]\\u@\\h${fs_mode:+($fs_mode)}\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '\n}\n\u00a0\nalias ro='sudo mount -o remount,ro \/ ; sudo mount -o remount,ro \/boot'\nalias rw='sudo mount -o remount,rw \/ ; sudo mount -o remount,rw \/boot'\n\u00a0\n# setup fancy prompt\"\nPROMPT_COMMAND=set_bash_prompt<\/pre>\n<p>Dzi\u0119ki temu b\u0119dziemy widzieli czy system plik\u00f3w jest w trybie read-write, czy read-only i za pomoc\u0105 komendy &#8222;ro&#8221; lub &#8222;rw&#8221; b\u0119dziemy mogli \u0142atwo zmienia\u0107 tryb pracy.<\/p>\n<p>Kolejny plik wymagaj\u0105cy edycji to \/etc\/bash.bash_logout kt\u00f3ry otwieramy:<\/p>\n<pre>sudo pico \/etc\/bash.bash_logout<\/pre>\n<p>A nastepnie do \u015brodka wklejamy nast\u0119puj\u0105c\u0105 zawarto\u015b\u0107:<\/p>\n<pre>sudo mount -o remount,rw \/\nhistory -a\nsudo fake-hwclock save\nsudo mount -o remount,ro \/\nsudo mount -o remount,ro \/boot<\/pre>\n<p>Restartujemy RaspberryPi i po zalogowaniu sprawdzamy czy wszystko dzia\u0142a.<\/p>\n<div id=\"attachment_1374\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=1374\" rel=\"attachment wp-att-1374\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1374\" class=\"wp-image-1374 size-medium\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2018\/08\/systemready-300x195.png\" alt=\"systemready\" width=\"300\" height=\"195\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2018\/08\/systemready-300x195.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2018\/08\/systemready-768x500.png 768w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2018\/08\/systemready.png 789w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1374\" class=\"wp-caption-text\">Uruchomione us\u0142ugi direwolf i aprx<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>Stacja domowa z funkcj\u0105 digi pomocniczego jest ju\u017c gotowa, i b\u0119dzie dzia\u0142a\u0107 automatycznie po uruchomieniu. Wskazuj\u0105c nasz\u0105 lokalizacj\u0119, daj\u0105c innym kolegom informacje na temat lokalnej cz\u0119stotliwo\u015bci. mo\u017cemy te\u017c wystawia\u0107 jakie\u015b przydatne obiekty, na przyk\u0142ad podczas imprez z naszym udzia\u0142em itd. Jednak\u017ce terminal linuksowy nie jest atrakcyjnym interfejsem do podgl\u0105dania ruchu w sieci, obserwowania przeje\u017cd\u017caj\u0105cych stacji mobilnych czy te\u017c do wysy\u0142ania wiadomo\u015bci. Dlatego u\u017cyjemy oprogramowania <a href=\"http:\/\/aprsisce.wikidot.com\/\">APRSIS32 <\/a>jako interfejsu u\u017cytkownika. DireWolf w takiej konfiguracji jak\u0105 zrobili\u015bmy udost\u0119pnia dwa porty komunikacyjne. Jeden ju\u017c wykorzystali\u015bmy do komunikacji z APRX-em a drugi port typu AGW mo\u017cemy u\u017cy\u0107 do po\u0142\u0105czenia z oprogramowaniem <a href=\"http:\/\/aprsisce.wikidot.com\/\">APRSIS32,<\/a> kt\u00f3re mo\u017cemy mie\u0107 zainstalowane na innym komputerze, laptopie albo tablecie. Konfiguracja sprowadza si\u0119 do ustawienia po stronie <a href=\"http:\/\/aprsisce.wikidot.com\/\">APRSIS32 <\/a>nowego portu typ AGW i wpisaniu adresu IP oraz portu: 8000.<\/p>\n<div id=\"attachment_655\" style=\"width: 246px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=655\" rel=\"attachment wp-att-655\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-655\" class=\"size-full wp-image-655\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2017\/06\/new-port.png\" alt=\"Konfigurujemy nowy port\" width=\"236\" height=\"162\" \/><\/a><p id=\"caption-attachment-655\" class=\"wp-caption-text\">Konfigurujemy nowy port<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_653\" style=\"width: 249px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=653\" rel=\"attachment wp-att-653\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-653\" class=\"size-full wp-image-653\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2017\/06\/conf.png\" alt=\"konfiguracja portu agw\" width=\"239\" height=\"239\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/conf.png 239w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/conf-150x150.png 150w\" sizes=\"auto, (max-width: 239px) 100vw, 239px\" \/><\/a><p id=\"caption-attachment-653\" class=\"wp-caption-text\">konfiguracja portu agw<\/p><\/div>\n<div id=\"attachment_652\" style=\"width: 225px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=652\" rel=\"attachment wp-att-652\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-652\" class=\"size-full wp-image-652\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2017\/06\/ip.png\" alt=\"konfiguracja ip\/port\" width=\"215\" height=\"176\" \/><\/a><p id=\"caption-attachment-652\" class=\"wp-caption-text\">konfiguracja ip\/port<\/p><\/div>\n<div id=\"attachment_657\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/10.9.48.151\/?attachment_id=657\" rel=\"attachment wp-att-657\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-657\" class=\"size-medium wp-image-657\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2017\/06\/aprsis32-300x162.png\" alt=\"APRSIS32 pod\u0142\u0105czony do DireWolf\" width=\"300\" height=\"162\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/aprsis32-300x162.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/aprsis32-1024x553.png 1024w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/aprsis32-768x415.png 768w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/06\/aprsis32.png 1366w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-657\" class=\"wp-caption-text\">APRSIS32 pod\u0142\u0105czony do DireWolf<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>Na koniec jeszcze spostrze\u017cenie. Testy por\u00f3wnawcze na specjalnym pliku testowym WA8LMF, kt\u00f3re wykona\u0142em, mocno mnie zaskoczy\u0142y. Wynik testu nie jest referencyjny gdy\u017c moje \u017ar\u00f3d\u0142o sygna\u0142u to kiepski laptop jednak\u017ce w por\u00f3wnaniu do wynik\u00f3w uzyskanych w tym samym \u015brodowisku DireWolf okaza\u0142 si\u0119 skuteczniejszy ni\u017c inne przetestowane przeze mnie rozwi\u0105zania.<\/p>\n<p>Arduino TNC 450 zdekodowanych poprawnie pakiet\u00f3w<br \/>\nArduino TNC+ 710 zdekodowanych poprawnie pakiet\u00f3w<br \/>\nDireWolf 1005 zdekodowanych poprawnie pakiet\u00f3w<\/p>\n<p>Oznacza to \u017ce taka konfiguracja to nie jest produkt zast\u0119pczy ale ca\u0142kiem fajne, dobre i stabilne rozwi\u0105zanie.<\/p>\n<p>Przydatne linki:<\/p>\n<p><a href=\"https:\/\/www.raspberrypi.org\/downloads\/raspbian\/\">https:\/\/www.raspberrypi.org\/downloads\/raspbian\/<\/a><br \/>\n<a href=\"https:\/\/sourceforge.net\/projects\/win32diskimager\/\">https:\/\/sourceforge.net\/projects\/win32diskimager\/<\/a><br \/>\n<a href=\"https:\/\/www.chiark.greenend.org.uk\/~sgtatham\/putty\/latest.html\">https:\/\/www.chiark.greenend.org.uk\/~sgtatham\/putty\/latest.html<\/a><br \/>\n<a href=\"https:\/\/github.com\/wb2osz\/direwolf\">https:\/\/github.com\/wb2osz\/direwolf<\/a><br \/>\n<a href=\"http:\/\/aprsisce.wikidot.com\/\">http:\/\/aprsisce.wikidot.com\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Po przetestowaniu, skuteczno\u015bci dzia\u0142ania oprogramowania DireWolf. Zach\u0119cony tym jak fajnie to dzia\u0142a. Postanowi\u0142em przygotowa\u0107 kr\u00f3tki opis konfiguracji stacji domowej z funkcjonalno\u015bci\u0105 digipitera pomocniczego, kt\u00f3ry b\u0119dzie oparty o to programowe\u00a0 TNC. Jednocze\u015bnie b\u0119dzie mo\u017cliwo\u015b\u0107 pracy z tej stacji za pomoc\u0105 APRSIS32<\/p>\n","protected":false},"author":2,"featured_media":340,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5,10,22],"tags":[],"class_list":["post-626","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aprs","category-aprsis32","category-diy","category-software"],"_links":{"self":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts\/626","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=626"}],"version-history":[{"count":0,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts\/626\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/media\/340"}],"wp:attachment":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=626"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=626"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}