User Tools

Site Tools


tutorial-packet-on-pi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tutorial-packet-on-pi [2025/11/30 20:57] n6ctatutorial-packet-on-pi [2026/01/01 07:07] (current) – [Audio - ALSA, maybe PipeWire, not Pulse] n6cta
Line 9: Line 9:
 N6CTA choose to use Direwolf as the software modem in this series as it appeared to the most performant and stable 300Bd FX.25 soft modem available for Linux. We've also investigated ''QtSoundModem'' and found it to be a little more challenging to use. This is still an imperfect solution as Direwolf doesn’t integrate as cleanly as it could with BPQ’s AGW driver. BPQ treats Direwolf (and all AGW ports) like a KISS TNC instead of allowing the TNC to handle some of the AX.25 stuff it’s good at. WB2OSZ’s OSI comments on why L1 and L2 need to be tightly coupled make a lot of sense and the AGW protocol allows for this kind of behavior but it does not appear to be implemented properly in BPQ. N6CTA choose to use Direwolf as the software modem in this series as it appeared to the most performant and stable 300Bd FX.25 soft modem available for Linux. We've also investigated ''QtSoundModem'' and found it to be a little more challenging to use. This is still an imperfect solution as Direwolf doesn’t integrate as cleanly as it could with BPQ’s AGW driver. BPQ treats Direwolf (and all AGW ports) like a KISS TNC instead of allowing the TNC to handle some of the AX.25 stuff it’s good at. WB2OSZ’s OSI comments on why L1 and L2 need to be tightly coupled make a lot of sense and the AGW protocol allows for this kind of behavior but it does not appear to be implemented properly in BPQ.
  
-==== Why linBPQ====+==== Why linBPQ====
 We’ve choosen linBPQ as it is cross-platform, source is made readily available via GitHub, and has a large and active community. One other important reason we chose linBPQ is the ease of which an operator can expand PBBS functionality through telnet. We’ve choosen linBPQ as it is cross-platform, source is made readily available via GitHub, and has a large and active community. One other important reason we chose linBPQ is the ease of which an operator can expand PBBS functionality through telnet.
  
Line 50: Line 50:
  
 If you’re undecided about what linux disto to use and you’re on some other hardware, //We recommend plain old Debian.// It’ll run smoothly on just about everything that isn’t in a museum. Just slap it on a USB stick using your OS’s disk imager of choice and let ‘er rip. It’s the DOOM of OS’s. If you’re undecided about what linux disto to use and you’re on some other hardware, //We recommend plain old Debian.// It’ll run smoothly on just about everything that isn’t in a museum. Just slap it on a USB stick using your OS’s disk imager of choice and let ‘er rip. It’s the DOOM of OS’s.
- 
-//But really we should say a bit more?// 
- 
 ==== Directories ==== ==== Directories ====
 We recommend setting up the software with these directories: We recommend setting up the software with these directories:
 <code> <code>
-cd ~/.local && mkdir bin log src+cd ~/ && mkdir .local .config 
 +cd ~/.local && mkdir bin log src share
 cd ~/.local/share/ && mkdir icons  cd ~/.local/share/ && mkdir icons 
 cd ~/.config && mkdir autostart linbpq direwolf qttermtcp hamlib  cd ~/.config && mkdir autostart linbpq direwolf qttermtcp hamlib 
Line 102: Line 100:
 <code> <code>
 cd ~/.local/src/ cd ~/.local/src/
-git clone --branch 24.52 --single-branch https://github.com/g8bpq/linbpq.git+git clone --branch 24.56 --single-branch https://github.com/g8bpq/linbpq.git
 git clone --branch 1.7 --single-branch https://github.com/wb2osz/direwolf.git git clone --branch 1.7 --single-branch https://github.com/wb2osz/direwolf.git
 git clone --branch 0.79 --single-branch https://github.com/g8bpq/QtTermTCP.git git clone --branch 0.79 --single-branch https://github.com/g8bpq/QtTermTCP.git
Line 121: Line 119:
 ./configure ./configure
 make make
-export 
 sudo make install sudo make install
 sudo ldconfig sudo ldconfig
Line 448: Line 445:
  
 <code> <code>
-sudo yggdrasil -genconf -json > /etc/yggdrasil/yggdrasil.conf+yggdrasil -genconf -json > yggdrasil.conf
 </code> </code>
  
-In the `yggdrasil.conf` file, edit your peers to add:+In the `yggdrasil.conf` file, edit your peers (typically the second line) to add:
  
 +<code>
   "Peers": ["tls://ip.n6cta.com:60573", "tls://yggdrasil.clitheroe.ca:23277"],   "Peers": ["tls://ip.n6cta.com:60573", "tls://yggdrasil.clitheroe.ca:23277"],
 +</code>
  
 I also strongly advise disabling the multicast interface: I also strongly advise disabling the multicast interface:
Line 468: Line 467:
   }   }
  
 +Then copy the file to the correct directory.
 +
 +<code>
 +sudo cp yggdrasil.conf /etc/yggdrasil/yggdrasil.conf
 +</code>
 ===== PBBS Hardening ===== ===== PBBS Hardening =====
  
Line 562: Line 566:
 } }
  
-<code> 
 pcm.9700RX { pcm.9700RX {
     type dsnoop     type dsnoop
Line 587: Line 590:
 } }
  
-pcm.300RX {type rate slave {pcm "plug:RX7300" rate 48000}} +pcm.300RX {type rate slave {pcm "plug:7300RX" rate 48000}} 
-pcm.300TX {type rate slave {pcm "plug:TX7300" rate 48000}} +pcm.300TX {type rate slave {pcm "plug:7300TX" rate 48000}} 
-pcm.1200RX {type rate slave {pcm "plug:RX9700" rate 48000}} +pcm.1200RX {type rate slave {pcm "plug:9700RX" rate 48000}} 
-pcm.1200TX {type rate slave {pcm "plug:TX9700" rate 48000}}+pcm.1200TX {type rate slave {pcm "plug:9700TX" rate 48000}}
 </code> </code>
 ==== Serial - udev rules ==== ==== Serial - udev rules ====
Line 670: Line 673:
  
 <code> <code>
 +sudo ufw reload
 sudo ufw default deny incoming sudo ufw default deny incoming
 sudo ufw default allow outgoing sudo ufw default allow outgoing
Line 758: Line 762:
 WantedBy=multi-user.target WantedBy=multi-user.target
 </code> </code>
 +
 +Here the options passed to direwolf are as follows:
 +
 +''-a 10'' tells it to report audio levels every 10 seconds, regardless of receiving a packet.
 +
 +''-q d'' suppresses messages when decoding APRS packets.
 +
 +''-t 0'' disables the text colors, as Direwolf's default is very colorful and can mess up standard terminal colors used elsewhere when it exits incorrectly.
 +
 +''-c ...'' tells Direwolf which configuration file to use.  Omitting this will cause it to look for a default file.
  
 === BBS - linBPQ === === BBS - linBPQ ===
tutorial-packet-on-pi.1764536238.txt.gz · Last modified: by n6cta