A guide to Build and Configure FBB 7.0.12-SVN

+ Applying the WA8DED Interface Bug Patch For Use With LINBPQ

Prerequisites

This document assumes that you will be running FBB with LinBPQ.

Downloading

sudo apt install subversion

svn checkout https://svn.code.sf.net/p/linfbb/code/ linfbb-code

Patching

cd linfbb-code/trunk/src
nano drv_ded.c

You will need to locate this part in the code, it begins at line 60.

The part that needs adding a usleep(10000); highlighted in bold below.


       if (p_port[*port].polling == 0)
        {
                ded_sonde (*port, next);
                return (0);
        }

        valid = 0;

        usleep(10000);

Save the file.

Building FBB

Install the necessary build tools listed below. I have not done this in a while so I may have also installed additional libraries that are needed. If the FBB build process fails because of a missing library, please remind me (pe1rrr[at]amsat[dot]org) so that I can update this document.

sudo apt install build-essential autoconf
 
sudo apt install libax25 ax25-tools ax25-apps libax25-dev libncurses-dev

Generate the โ€œMakefileโ€ required by the build system:

cd ..
./autogen.sh

It is recommended not to install FBB to the OS root structure by default. Instead, it is advisable to keep FBB contained within its own subdirectory within the node’s home directory for easier backups.

CAUTION: The temporary variable PREFIX you are about to set specifies the actual storage location for FBB files. Do not leave it set as-is below. ๐Ÿ™

PREFIX=/path/to/your/home/directory/for/example ๐Ÿ™

Then we being the build process:

./configure --prefix=$PREFIX
make -j4
make install

The FBB SVN README provides helpful advice.

*** If you are installing for the first time, run "make installconf".
*** This will install default configuration files.
*** DO NOT run "make installconf" if you are upgrading a working system,
*** as your configuration files WILL BE overwritten with defaults

To get started, make sure to install the default configuration files. If you’re doing a fresh install, running this will overwrite any existing configuration files, so be careful if you’re upgrading instead.

make installconf 

First Start and Configuration

The FBB installation is located at the $PREFIX/sbin directory.

cd $PREFIX/sbin

Run the fbb script:

./fbb

You wil be prompted to answer several questions, here is an example:

Configuration files does not exist. Create them (Y/N) ?y

Callsign of the BBS without ssid   (Ex: F6FBB)        : PE1RRR
SSID of the BBS                    (Ex : 1)           : 1 
Hierarchical address               (Ex : FMLR.FRA.EU) : #NBW.NLD.EURO
QRA-Locator of the BBS             (Ex : JN03QL)      : JO21LO
City of the BBS                    (Ex : Toulouse)    : Rijen
Name of the SysOp                  (Ex : Jean-Paul)   : Red
Callsign of the SysOp without SSID (Ex : F6FBB)       : PE1RRR
Difference with GMT time           (Ex : +1)          : +1

BBS     : PE1RRR.#NBW.NLD.EURO
SSID    : 1
LOCATOR : JO21LO (Rijen)
SYSOP   : PE1RRR (Red)
TIME    : GMT +1

Correct (Y/N) Y

Please note that at this time, the installation script is unable to handle the specific port configuration required to connect to a LinBPQ node, so for the time being this is just placeholder information, we will come back to TNC port configuration later.

Name of the port #1 as named in /tmp/fbb/etc/ax25/axports (<CR> to end) : LinBPQ
Number of channels [ex. 4]                           : 10
Frequency [ex. 145]                                  : LinBPQ

Name of the port #2 as named in /tmp/fbb/etc/ax25/axports (<CR> to end) : <hit the enter key>

Port 1 on axports none (1 channels) Freq=LinBPQ

Correct (Y/N) ? Y

The setup will display a lot of technical information and ask for your input. It may also request permission to create specific files.

Creating port.sys ... Ok
Creating beacon1.sys ... Ok
Checking fbb tree.... Ok
Checking fbb configuration :
*************************************************************
* XFBB Linux daemon version 7.0.12-svn (Jul 21 2023) PID=11537
* Copyright F6FBB 1986-1999. All rights reserved.
* Copyright F6BVP 2000-2020. All rights reserved.
* Maintainer since 2020 : D. van der Locht <dave.is@home.nl>
*
* This software is in the public domain. It can be copied
* or installed for any use abiding by the laws
* under GNU General Public License
*
* The current and previous maintainers decline any
* responsibilty in the use of XFBB software.
*
*************************************************************
Reading fbb.conf file
Parameters set-up            
vers : FBB7.0.12-svn
call : PE1RRR.#NBW.NLD.EURO
ssid : 1
qral : JO21LO
city : Rijen
conf : /tmp/fbb/etc/ax25/fbb
data : /tmp/fbb/var/ax25/fbb
mess : /tmp/fbb/var/ax25/fbb/mail
comp : /tmp/fbb/var/ax25/fbb/binmail
fbbd : *,*,/tmp/fbb/var/ax25/fbb/fbbdos,*,*,*,*,*
fbbd : <*,*,/tmp/fbb/var/ax25/fbb/fbbdos,*,*,*,*,*>
0 : {*}
0 : {}
1 : {*}
1 : {}
2 : {/tmp/fbb/var/ax25/fbb/fbbdos}
2 : {C:\tmp\fbb\var\ax25\fbb\fbbdos\}
3 : {*}
3 : {}
4 : {*}
4 : {}
5 : {*}
5 : {}
6 : {*}
6 : {}
7 : {*}
7 : {}
yapp : /tmp/fbb/var/ax25/fbb/fbbdos/yapp
docs : /tmp/fbb/share/doc/fbb
name : Red
syso : PE1RRR
sysm : 
impo : /tmp/fbb/var/ax25/fbb/mail/mail.in
logs : OK
test : NO
fbbf : OK 160
fbbc : OK 3
aski : OK
mask : 3616
secu : 0 4 59  
warn : 255
hous : 2
time : 10 20
maxd : 0 0
loca : +1
beac : 8
scro : 1500 1500 1500
fwdh : [$c] $$:$R
maxb : 30000
life : 30
wpca : 
zipc : 00000
unpr : 500 5 P
upba : 
dwba : 
  pg : /tmp/fbb/lib/fbb/pg
fdir : /tmp/fbb/lib/fbb/filter
sdir : /tmp/fbb/lib/fbb/server
tdir : /tmp/fbb/lib/fbb/tool
poph : 
LINUX virtual paged memory set-up    
Texts set-up             
1 language buffers allocated
Init lang   ENGLISH
Init lang  FRANCAIS
Cannot open /tmp/fbb/var/ax25/fbb/sat/satel.dat     
Creating file /tmp/fbb/var/ax25/fbb/sat/satel.dat       (Y/N) ? Y
Creating file /tmp/fbb/var/ax25/fbb/sat/satel.dat      
Cannot open /tmp/fbb/var/ax25/fbb/statis.dat     
Creating file /tmp/fbb/var/ax25/fbb/statis.dat       (Y/N) ? Y
Creating file /tmp/fbb/var/ax25/fbb/statis.dat      
Cannot open TPSTAT.SYS     
Creating file TPSTAT.SYS       (Y/N) ? Y
Creating file TPSTAT.SYS      
RS232 ports set-up            
Ports set-up            
1 channels ok  
TNC set-up            
TNC ports set-up              
socket_monitoring: Operation not permitted
BID set-up            
WFBID.SYS file is not present. Creating /tmp/fbb/var/ax25/fbb/wfbid.sys
WFBID.SYS is not present. Creating /tmp/fbb/var/ax25/fbb/wfbid.sys
Callsign set-up                  
Callsigns set-up             
Cannot open /tmp/fbb/var/ax25/fbb/inf.sys     
Creating file /tmp/fbb/var/ax25/fbb/inf.sys       (Y/N) ? Y
Creating file /tmp/fbb/var/ax25/fbb/inf.sys      
      
Cannot open /tmp/fbb/var/ax25/fbb/dirmes.sys     
Creating file /tmp/fbb/var/ax25/fbb/dirmes.sys       (Y/N) ? Y
Creating file /tmp/fbb/var/ax25/fbb/dirmes.sys      
Message set-up             
Next message 101  
End - 0 forward(s)
Files set-up complete           
FORWARD set-up           
BBS set-up        
Cannot open ETAT.SYS     
Creating file ETAT.SYS       (Y/N) ? Y
Creating file ETAT.SYS      
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Fri Jul 21 17:08:13 2023
Set-up complete        
GMT 15:08 - LOCAL 17:08
Starting multitasking ... ok

FBB options : (none)
Running XFBB in background mode ^C to abort
Starting XFBB (pwd = /tmp/fbb/var/ax25/fbb)...

The FBB BBS process is currently running in the background, but it won’t work yet due to an incorrect TNC port configuration. We will correct that in a moment, but first, letโ€™s check to see that the FBB process is running:

ps -ef | grep xfbbd

You should see something like this:

pi      17369  2.0  0.0   8304  2780 pts/11   S    17:11   0:00 /tmp/fbb/sbin/xfbbd

We now can kill this process. Locate the PID number (17369 in the example above),

CAUTION: Please find the correct Process ID on your system and replace the number below before proceeding ๐Ÿ™

kill -9 17369 ๐Ÿ™

Now that the BBS is stopped we need to put your sysop callsign into the sysop permissions file: passwd.sys

cd $PREFIX/etc/ax25/fbb
nano passwd.sys

Edit the example to your own callsign and password where indicated ๐Ÿ™. You will use this password to access the sysop terminal.

#
# Password for all non defined callsigns (one case dependant line)
#
reallycomplicatedpassword ๐Ÿ™
#
# Rights and password specific to callsigns (one or more lines)
#
PE1RRR ๐Ÿ™ 63 1023 MYPASSWORD๐Ÿ™
#

Save and exit from the text editor. (Nano: CTRL-X, etcโ€ฆ Vim: !wq)

Start up the BBS

cd $PREFIX/sbin
./fbb

FBB will launch and eventually background itself.

To test if the BBS process is working, connect with the FBB Client and provide the required information, use your callsign after the -ci arguments.

cd $PREFIX/sbin
./xfbbC -ci MYCALL๐Ÿ™ -w MYPASSWORD๐Ÿ™

You should be presented with the following screen and you will be prompted to enter your own details for your user record on the BBS.

Client application for xfbbd V7.0.12-svn (Jul 21 2023) ( help : xfbbC -? )

Connecting localhost ...  Ok
Authentication in progress ...  Ok
Console connection ...

 xfbbC V7.0.12-svn (Jul 21 2023) -  Callsign : pe1rrr  -  Remote host : localhost
[FBB-7.0.12-AHMR$]
PE1RRR BBS, QTH JO21LO.
Hello ???, you are now on channel 0.
Here are 0 active messages, 100 is last message and 
80 is the last you have listed.

Assigned channels:


This is your first contact with this BBS.
Please enter your first name :Red
City (without ZIP code !)    :Rijen
Please enter your HomeBBS    :PE1RRR.#NBW.NLD.EURO
Please enter your ZIP code   :5120AA
Thank you ...
(0) PE1RRR BBS (H for help) > bye

Configuring FBB to use LinBPQ

Updated

FBB will be running atop LinBPQ node, the node provides the connections to the TNCs, FBB treats LinBPQ as a gateway port.

cd $PREFIX/etc/ax25/fbb
nano port.sys

Below is port.sys modified with the path to the LinBPQ FBB WA8DED interface.

# FBB7.0.12-svn
#
#Ports TNCs
 1     1
#
#Com Interface Adress (Hex) Baud
 1   9         /home/pi/fbb_ded            9600
#
#TNC NbCh Com MultCh Pacln Maxfr NbFwd MxBloc M/P-Fwd Mode  Freq
 0   0    0   0      0     0     0     0      00/01   ----  File-fwd.
 1   10   1   1      230   4     1     10      40/59   DULYW LinBPQ
#
# End of file.
#

The flags for the port must be DULYW which tells FBB this is a WA8DED port. The flags are documented on my advanced port.sys page.

You can place the virtual device โ€œfbb_dedโ€ in different locations, but it is recommended to keep it in the home directory of the LinBPQ user.

Save the file after editing.

Shut down the old BBS process that is still running:

pkill -9 xfbbd

At this point, the BBS can be configured to auto-start using the process described in the next chapter. The BBS mail forwarding options are handled in a later chapter.

TO DO (notes)

  • forward.sys
    • C SWITCH
    • C C <dest>
  • bbs.sys
    • One BBS per line, uppercase, do not shorten the file!
  • Create inittnc1.sys
    • MUI <comma separated list of LinBPQ ports to send UI beacons to>
  • Create beacon1.sys
    • Standard beacon template in syntax manual.
  • passwd.sys
    • Add logins for sysops using the FBB Client.

Hereโ€™s the FBB config file syntax manual.

Automatic startup with systemd

The FBB service unit relies on another service called linbpq.service, which can be found here. This arrangement allows for a streamlined startup process and enables the entire system to be restarted with a single command to the systemd broker.

Create a new text file in /lib/systemd/system/fbb.service

sudo nano /lib/systemd/system/fbb.service

Copy & Paste:

[Unit]
Description=FBB with Screen Start Script for use with LinBPQ.
# Important 
After=linbpq.service
# Important 
Wants=linbpq.service
# Important 
PartOf=linbpq.service

[Service]
# Stop FBB running before linbpq has brought up the FBBDED interface.
ExecStartPre=/bin/sleep 30
Type=forking
WorkingDirectory=/full/path/to/fbb
# Important 
Restart=on-failure
RestartSec=40
StartLimitInterval=60
StartLimitBurst=3
User=pi
Group=pi
# Note if FBB is started with any FBB_PARAMS in the sbin/fbb shell script, add them below.
ExecStart=/usr/bin/screen -S fbb-console -d -m /full/path/to/fbb/sbin/fbb -f
ExecStop=pkill --signal 15 --full "/full/path/to/fbb/sbin/xfbbd"
SyslogIdentifier=FBB-Debug


[Install]
WantedBy=multi-user.target

Edit the new unit file:

  • WorkingDirectory
    • should be the installation directory used in the build.
  • User & Group
    • set to the user and group (example: pi is both a user and group in Raspberry Pi OS).
  • ExecStart & ExecStop
    • Replace โ€œ/full/path/toโ€ with the actual location of the FBB install.
    • Tip: echo $PREFIX/sbin should show it.
    • Perform ls -l $PREFIX/sbin to verify.

Enable the service:

sudo systemctl enable fbb.service

Starting the BBS

Before proceeding, ensure you have configured LinBPQ and have it running using the LinBPQ systemd unit.

If youโ€™re ready to start the BBS:

Install the following screen package, if you have followed the LinBPQ Ready To Go setup you may already have this installed.

sudo apt install screen

Start/Stop the FBB service:

sudo service fbb start
sudo service fbb start

Viewing the console

screen -r fbb-console

To exit, use CTRL+A (then release) then hit โ€œDโ€ to detach the console again.

Shouts to Ian G0VGS for helping to test this documentation.

If you find the articles, or content in general posted here useful, enjoyable or maybe even something else, please consider making aย small contribution towards my hosting fund so that I may continue to provide my services for free to as many people as possible.