tutorial-packet-on-pi
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tutorial-packet-on-pi [2025/11/30 20:21] – [Systemd Services] n6cta | tutorial-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 '' | 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 '' | ||
| - | ==== Why linBPQ: ==== | + | ==== Why linBPQ? ==== |
| We’ve choosen linBPQ as it is cross-platform, | We’ve choosen linBPQ as it is cross-platform, | ||
| 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: | ||
| < | < | ||
| - | cd ~/.local && mkdir bin log src | + | cd ~/ && mkdir .local .config |
| + | cd ~/.local && mkdir bin log src share | ||
| cd ~/ | cd ~/ | ||
| cd ~/.config && mkdir autostart linbpq direwolf qttermtcp hamlib | cd ~/.config && mkdir autostart linbpq direwolf qttermtcp hamlib | ||
| Line 102: | Line 100: | ||
| < | < | ||
| cd ~/ | cd ~/ | ||
| - | git clone --branch 24.52 --single-branch https:// | + | git clone --branch 24.56 --single-branch https:// |
| git clone --branch 1.7 --single-branch https:// | git clone --branch 1.7 --single-branch https:// | ||
| git clone --branch 0.79 --single-branch https:// | git clone --branch 0.79 --single-branch https:// | ||
| Line 121: | Line 119: | ||
| ./configure | ./configure | ||
| make | make | ||
| - | export | ||
| sudo make install | sudo make install | ||
| sudo ldconfig | sudo ldconfig | ||
| Line 229: | Line 226: | ||
| KISSPORT 8003 | KISSPORT 8003 | ||
| </ | </ | ||
| + | |||
| ==== linBPQ ==== | ==== linBPQ ==== | ||
| Here is an example configuration file for linBPQ. This should be created as ~/ | Here is an example configuration file for linBPQ. This should be created as ~/ | ||
| Line 441: | Line 439: | ||
| APPLICATION 1, | APPLICATION 1, | ||
| APPLICATION 2,K2K,C 3 HOST 0 K S, | APPLICATION 2,K2K,C 3 HOST 0 K S, | ||
| + | </ | ||
| + | |||
| + | ==== Yggdrasil ==== | ||
| + | FARPN has moved away from plain AXUDP and now we use a private Yggdrasil mesh to connect to each other using the internet. | ||
| + | |||
| + | < | ||
| + | yggdrasil -genconf -json > yggdrasil.conf | ||
| + | </ | ||
| + | |||
| + | In the `yggdrasil.conf` file, edit your peers (typically the second line) to add: | ||
| + | |||
| + | < | ||
| + | " | ||
| + | </ | ||
| + | |||
| + | I also strongly advise disabling the multicast interface: | ||
| + | |||
| + | < | ||
| + | " | ||
| + | </ | ||
| + | |||
| + | A nice thing for gateway and mesh ops generally would be to also add something helpful here to let us know what the yggdrasil connected thing is like this: | ||
| + | |||
| + | " | ||
| + | " | ||
| + | "Peer Type": " | ||
| + | } | ||
| + | |||
| + | Then copy the file to the correct directory. | ||
| + | |||
| + | < | ||
| + | sudo cp yggdrasil.conf / | ||
| </ | </ | ||
| ===== PBBS Hardening ===== | ===== PBBS Hardening ===== | ||
| Line 536: | Line 566: | ||
| } | } | ||
| - | < | ||
| pcm.9700RX { | pcm.9700RX { | ||
| type dsnoop | type dsnoop | ||
| Line 561: | 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}} |
| </ | </ | ||
| ==== Serial - udev rules ==== | ==== Serial - udev rules ==== | ||
| Line 631: | Line 660: | ||
| ==== Firewall - UFW ==== | ==== Firewall - UFW ==== | ||
| + | We'll need to first make sure we've got IPv6 covered in UFW: | ||
| + | |||
| + | < | ||
| + | |||
| + | If it reads no change it to yes and if it is missing altogether, add it to the end of the file. | ||
| + | |||
| < | < | ||
| - | sudo ufw allow OpenSSH | + | IPV6=yes |
| + | </ | ||
| + | |||
| + | Next, we'll need to open port 22 so we don't lock ourselves out as well as applying sane defaults and starting the service. If you use a different internal subnet range you'll want to edit this to reflect it: | ||
| + | |||
| + | < | ||
| + | sudo ufw reload | ||
| sudo ufw default deny incoming | sudo ufw default deny incoming | ||
| sudo ufw default allow outgoing | sudo ufw default allow outgoing | ||
| + | sudo ufw allow from 192.168.1.0/ | ||
| + | sudo ufw enable | ||
| </ | </ | ||
| - | |||
| ==== Systemd Services ==== | ==== Systemd Services ==== | ||
| Line 700: | Line 742: | ||
| === Modem - Direwolf === | === Modem - Direwolf === | ||
| - | Create file ''/ | + | Create file ''/ |
| < | < | ||
| [Unit] | [Unit] | ||
| Line 720: | Line 762: | ||
| WantedBy=multi-user.target | WantedBy=multi-user.target | ||
| </ | </ | ||
| + | |||
| + | Here the options passed to direwolf are as follows: | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| === BBS - linBPQ === | === BBS - linBPQ === | ||
| - | Create file ''/ | + | Create file ''/ |
| < | < | ||
| [Unit] | [Unit] | ||
| Line 745: | Line 797: | ||
| </ | </ | ||
| + | === Mesh - Yggdrasil === | ||
| + | This should have been created and enabled but you can make sure by running: | ||
| + | < | ||
| + | sudo systemctl enable yggdrasil.service | ||
| + | sudo systemctl restart yggdrasil.service | ||
| + | </ | ||
tutorial-packet-on-pi.1764534099.txt.gz · Last modified: by n6cta