{"id":769,"date":"2017-09-24T15:43:49","date_gmt":"2017-09-24T13:43:49","guid":{"rendered":"http:\/\/tech4.pl\/SQ9MDD\/?p=769"},"modified":"2017-09-24T15:43:49","modified_gmt":"2017-09-24T13:43:49","slug":"packet-radio-bbs-tanio-i-szybko","status":"publish","type":"post","link":"https:\/\/sq9mdd.hamspirit.pl\/?p=769","title":{"rendered":"Packet Radio BBS, Tanio i Szybko"},"content":{"rendered":"<p>W zwi\u0105zku z tym \u017ce powr\u00f3t Packet Radio na 2m jest faktem i co wiecz\u00f3r rozmawiamy za jego pomoc\u0105 na falach ultra-kr\u00f3tkich, postanowi\u0142em \u017ce potrzebujemy radiowego BBS-a. I tutaj postanowi\u0142em po\u0142\u0105czy\u0107 razem sprawdzone rozwi\u0105zanie w roli TNC (Direwolf) oraz linBPQ.<\/p>\n<p><!--more--><br \/>\nDo uruchomienia b\u0119dziemy potrzebowa\u0107: raspberrypi, interfejsu separuj\u0105cego z radiem, oraz dodatkowej karty muzycznej na USB.<br \/>\nRozpoczynamy procedur\u0119 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:<\/p>\n<pre>sudo apt-get remove --purge pulseaudio\nsudo apt-get autoremove\nrm -rf \/home\/pi\/.pulse\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>make\nsudo make install\nmake install-conf\n<\/pre>\n<p>Po skompilowaniu przechodzimy do katalogu \/home\/pi a gdzie mo\u017cemy skonfigurowa\u0107 DireWolfa.<br \/>\nZanim zaczniemy konfiguracj\u0119 wato 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, mo\u017cemy tak\u017ce ustawi\u0107 sygnalizacj\u0119 dekodowania ramki na kolejnym pinie GPIO:<\/p>\n<pre>ADEVICE plughw:1,0\nPTT GPIO 25\nDCD GPIO 24\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Kolejny krok to konfiguracja automatycznego startu direwolfa i linBPQ, na pocz\u0105tek tworzymy plik startowy dla direwolfa:<\/p>\n<pre>sudo pico \/etc\/systemd\/system\/direwolf.service\n<\/pre>\n<p>Wewn\u0105trz kt\u00f3rego wpisujemy:<\/p>\n<pre>[Unit]\nDescription=Direwolf Daemon\nAfter=network.target sound.target\n\n[Service]\nExecStartPre=\/bin\/rm -f \/tmp\/kisstnc\nExecStart=\/home\/pi\/direwolf\/direwolf -t 0 -c \/home\/pi\/direwolf\/direwolf.conf -p\nExecStop=\/bin\/rm -f \/tmp\/kisstnc\n\n[Install]\nWantedBy=multi-user.target\nDefaultInstance=1\n<\/pre>\n<p>Nast\u0119pnie wydajemy komend\u0119 kt\u00f3ra spowoduje uruchomienie direwolfa przy ka\u017cdym starcie:<\/p>\n<pre>sudo systemctl enable direwolf.service\n<\/pre>\n<p>Je\u015bli zachodzi potrzeba zatrzymania lub uruchomienia direwolfa korzystamy z polecenia:<\/p>\n<pre> sudo systemctl stop direwolf.service\n sudo systemctl start direwolf.service\n<\/pre>\n<p>Prze\u0142\u0105cznik -p podczas startu direwolfa uruchamia go z opcj\u0105 emulacji KISS TNC na porcie \/dev\/pts\/1, dzi\u0119ki temu b\u0119dziemy mogli pod\u0142\u0105czy\u0107 linBPQ do tego TNC.<\/p>\n<p>LinBPQ \u015bci\u0105gamy ze strony tw\u00f3rcy oprogramowania:<br \/>\n<a href=\"http:\/\/www.cantab.net\/users\/john.wiseman\/Documents\/\">http:\/\/www.cantab.net\/users\/john.wiseman\/Documents\/ <\/a><br \/>\n<a href=\"http:\/\/www.cantab.net\/users\/john.wiseman\/Downloads\/Beta\/pilinbpq\">(bezpo\u015bredni link do linbpq na raspberry pi)<\/a><br \/>\nW katalogu domowym u\u017cytkownika pi przygotowujemy folder linBPQ do kt\u00f3rego wgrywamy pobrany plik, a nast\u0119pnie zmieniamy uprawnienia i tworzymy plik konfiguracyjny.<\/p>\n<pre>sudo chmod +x pilinbpq\ntouch bpq32.cfg\n<\/pre>\n<p>Nast\u0119pnie przyst\u0119pujemy do konfiguracji linBPQ, poni\u017cej przyk\u0142adowy plik konfiguracyjny dla noda linBPQ oraz fragmenty dw\u00f3ch plik\u00f3w konfiguracyjnych, jeden dla BBS-a a drugi dla CHAT&#8217;a.<\/p>\n<pre>LOCATOR=KO02LG\nMAPCOMMENT=SQ9MDD-11, BBS Node\n\nNODECALL=SQ9MDD-11      ; Node callsign\nNODEALIAS=WARBEM        ; Node alias (6 characters max)\n\nIDMSG:\nSQ9MDD BBS DIREWOLF&amp;linBPQ\n***\n\nBTEXT:                  ; UI broadcast text from BCALL to destination UNPROTO=\nDIREWOLF&amp;linBPQ\n***\n\nINFOMSG:                ; The INFO command text follows:\nSQ9MDD LinBPQ Packet\/Switch Node \nComputer  : RaspberryPi\nTNC       : Direwolf\nInterface : SQ9MDD separation KIT\nRx\/Tx     : Yaesu FT-817\nSysop     : Rysiek Labus\n***\n\nCTEXT: ; The CTEXT text follows:\nWitaj polaczyles sie z SQ9MDD-11. BBS Warszawa Bemowo\nWpisz ? by uzyskac pomoc. \n***\n\nFULL_CTEXT=1\n\nOBSINIT=6               ; Initial obsolescence set when a node is included\n                        ; in a received nodes broadcast. This value is then\n                        ; decremented by 1 every NODESINTERVAL.\nOBSMIN=4                ; When the obsolescence of a node falls below this\n                        ; value that node's information is not included in\n                        ; a subsequent nodes broadcast.\nLogL4Connects=0\t\t;\nNODESINTERVAL=15\t; Nodes broadcast interval in minutes\nIDINTERVAL=0\t\t; 'IDMSG' UI broadcast interval in minutes, 0=OFF\nBTINTERVAL=60\t\t; The BTEXT broadcast interval in minutes, 0=OFF\nL3TIMETOLIVE=5\t\t; Max L3 hops\nL4RETRIES=3\t\t; Level 4 retry count\nL4TIMEOUT=60\t\t; Level 4 timeout in seconds s\/b &gt; FRACK x RETRIES\nL4DELAY=10\t\t; Level 4 delayed ack timer in seconds\nL4WINDOW=4\t\t; Level 4 window size\nMAXLINKS=63\t\t; Max level 2 links\nMAXNODES=1024\t\t; Max nodes in nodes table\nMAXROUTES=128\t\t; Max adjacent nodes\nMAXCIRCUITS=1024\t; Max L4 circuits\nMINQUAL=100\t\t; Minimum quality to add to nodes table\nMAXHOPS=10\t\t; INP3 hop limit to add to tables\nMAXRTT=90\t\t; INP3 max RTT in seconds\nBUFFERS=130\t\t; Packet buffers - 255 means allocate as many as\n                        ; possible, normally about 130, depending upon other\n                        ; table sizes.\n \n; TNC default parameters:\n \nPACLEN=130\t\t; Max packet size (236 max for net\/rom)\nT3=120\t\t\t; Link validation timer in seconds\nIDLETIME=10000\t\t; Idle link shutdown timer in seconds\n \n; Configuration Options:\n \nAUTOSAVE=1\t\t; Saves BPQNODES.dat upon program exit\nBBS=1\t\t\t; 1 = BBS support included, 0 = No BBS support\nNODE=1\t\t\t; Include switch support\nHIDENODES=0\t\t; If set to 1, nodes beginning with a #\nENABLE_LINKED=Y\t\t; Controls processing of *** LINKED command\n                        ; Y = allows unrestricted use\n                        ; A = allows use by application program\n                        ; N = disabled\n; aktywne moduly\nLINMAIL\nLINCHAT\n\n; aplikacje\nAPPLICATION 1,BBS,,SQ9MDD-8,MDDBBS,255\nAPPLICATION 2,CHAT,,SQ9MDD-9,MDDCHAT,255\n\n; telnet port\nPORT\n PORTNUM=1\t\n ID=Telnet via VPN\n DRIVER=Telnet\n PORTCALL=SQ9MDD-10 \nCONFIG\n CMS=1\n CMSCALL=SQ9MDD-10\n CMSPASS=ko02lg\n LOGGING=1\n DisconnectOnClose=1\n CMDPORT 7400 63000\n TCPPORT=6323\n FBBPORT=6300\n HTTPPORT=9180\n LOGINPROMPT=User:\n PASSWORDPROMPT=Password:\n MAXSESSIONS=10\n CTEXT=Welcome to SQ9MDD`s BBS Telnet Server.\\nPress ? For list of commands \\n\\n\n USER=SQ9MDD,******,SQ9MDD,,SYSOP\n USER=SQ5WLA,******,SQ5WLA,,SYSOP\nENDPORT\n\nPORT\n ID=144.850Mhz Port Radiowy     ; Displayed by PORTS command\n TYPE=ASYNC\t\t\t; Port is RS232 Com\n PROTOCOL=KISS\t\t\t; TNC is used in KISS, JKISS or BPQKISS mode\n FULLDUP=0\t\t\t; Only meaningful for KISS, JKISS or BPQKISS devices\n COMPORT=\/dev\/pts\/2\t\t; Direwolf na wirtualnym TNC\n SPEED=19200\t\t\t; RS232 COM PORT SPEED\n CHANNEL=A\t\t\t; A for single channel TNC, A or B for multichannel\n NOKEEPALIVES=1\n PERSIST=64\t\t\t; PERSIST=256\/(# of transmitters-1)\n SLOTTIME=150\t\t\t; CMSA interval timer in milliseconds\n ; DWAIT=20\t\t\t; zwieksza odstep pomiedzy RX TX\n TXDELAY=300\t\t\t; Transmit keyup delay in milliseconds\n TXTAIL=90\t\t\t; TX key down, in milliseconds, at packet end\n QUALITY=192\t\t\t; Quality factor applied to node broadcasts heard on\n MINQUAL=100\t\t\t; Entries in the nodes table with qualities greater \n MAXFRAME=7\t\t\t; Max outstanding frames (1 thru 7)\n FRACK=5000\t\t\t; Level 2 timout in milliseconds\n RESPTIME=3000\t\t\t; Level 2 delayed ack timer in milliseconds\n RETRIES=10\t\t\t; Level 2 maximum retry value\n PACLEN=130\t\t\t; Default max packet length for this port\n UNPROTO=CQ                     ; BTEXT broadcast addrs format: DEST[,digi1[,digi2]]\n BCALL=SQ9MDD-11                ; BTEXT call. unstated defaults to APPL1CALL\n L3ONLY=0\t\t\t; 1=No user downlink connects on this port\n DIGIFLAG=0\t\t\t; Digipeat: 0=OFF, 1=ALL, 255=UI Only\n DIGIPORT=0\t\t\t; Port on which to send digi'd frames (0 = same port)\n USERS=0                        ; Maximum number of L2 sessions, 0 = no limit\nENDPORT\n<\/pre>\n<pre>main : \n{\n  Streams = 10;\n  BBSApplNum = 1;\n  BBSName = \"SQ9MDD-8\";\n  SYSOPCall = \"SQ9MDD\";\n  ...\n<\/pre>\n<pre>Chat : \n{\n  ApplNum = 2;\n  MaxStreams = 12;\n  OtherChatNodes = \"\";\n  ChatWelcomeMsg = \"Witaj zapraszam do rozmowy \";\n  ...\n<\/pre>\n<p>Gdy mamy ju\u017c przygotowan\u0105 konfiguracj\u0119 linBPQ przyst\u0119pujemy do konfiguracji systemu tak by linBPQ by\u0142o uruchamiane przy starcie.<br \/>\nTworzymy pliki startowe serwisu:<\/p>\n<pre>pico \/home\/pi\/linBPQ\/runbpq\n<\/pre>\n<p>Zawarto\u015b\u0107 runbpq wygl\u0105da tak:<\/p>\n<pre>cd \/home\/pi\/linBPQ\nsudo .\/pilinbpq &gt; \/dev\/tty2\n<\/pre>\n<p>Serwis linbpq:<\/p>\n<pre>sudo pico \/etc\/systemd\/system\/linbpq.service\n<\/pre>\n<p>Wewn\u0105trz linbpq.service wpisujemy:<\/p>\n<pre>[Unit]\nAfter=network.target direwolf.service\n\n[Service]\nExecStart=\/bin\/bash \/home\/pi\/linBPQ\/runbpq\nRestart=always\n\n[Install]\nWantedBy=multi-user.target\n<\/pre>\n<p>I podobnie jak to by\u0142o w przypadku direwolfa musimy wyda\u0107 komend\u0119 kt\u00f3ra spowoduje uruchomienie linBPQ przy ka\u017cdym starcie:<\/p>\n<pre>sudo systemctl enable linbpq.service\n<\/pre>\n<p>Je\u015bli zachodzi potrzeba zatrzymania lub uruchomienia linBPQ korzystamy z polecenia:<\/p>\n<pre> sudo systemctl stop linbpq.service\n sudo systemctl start linbpq.service\n<\/pre>\n<p>Opisana tutaj konfiguracja jest w zasadzie najprostsz\u0105 i najta\u0144sz\u0105 z mo\u017cliwych. Tak skonfigurowany w\u0119ze\u0142 pozwala na \u0142\u0105czenie sie poprzez niego z innymi stacjami, wchodzenie na grupowego chata czy te\u017c pozostawianie wiadomosci w lokalnym BBS-ie.<\/p>\n<p><a href=\"http:\/\/10.9.48.151\/?attachment_id=782\" rel=\"attachment wp-att-782\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-782\" src=\"http:\/\/10.9.48.151\/wp-content\/uploads\/2017\/09\/BBS-test-300x177.png\" alt=\"BBS-test\" width=\"300\" height=\"177\" srcset=\"https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/09\/BBS-test-300x177.png 300w, https:\/\/sq9mdd.hamspirit.pl\/wp-content\/uploads\/2017\/09\/BBS-test.png 613w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Za jaki\u015b czas opisz\u0119 kolejne mo\u017cliwo\u015bci zwi\u0105zane z po\u0142aczeniem BBS-a do sieci HamNet i AmprNet.<br \/>\nA p\u00f3ki co zapraszam do \u0142\u0105czno\u015bci via Packet-Radio.<\/p>\n<p>Rysiek SQ9MDD<\/p>\n","protected":false},"excerpt":{"rendered":"<p>W zwi\u0105zku z tym \u017ce powr\u00f3t Packet Radio na 2m jest faktem i co wiecz\u00f3r rozmawiamy za jego pomoc\u0105 na falach ultra-kr\u00f3tkich, postanowi\u0142em \u017ce potrzebujemy radiowego BBS-a. I tutaj postanowi\u0142em po\u0142\u0105czy\u0107 razem sprawdzone rozwi\u0105zanie w roli TNC (Direwolf) oraz linBPQ.<\/p>\n","protected":false},"author":2,"featured_media":782,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,19,23],"tags":[],"class_list":["post-769","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-diy","category-packet-radio","category-testy"],"_links":{"self":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts\/769","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=769"}],"version-history":[{"count":0,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/posts\/769\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=\/wp\/v2\/media\/782"}],"wp:attachment":[{"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sq9mdd.hamspirit.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}