Table of Contents
Install Synchronet on a Raspberry Pi
Here are step-by-step instructions on building and installing Synchronet on a Raspberry Pi running either Raspbian or Raspberry Pi OS 32-bit.
Note: While Raspbian and the 32-bit version of Raspberry Pi OS are virtually identical, the 64-bit version of Raspberry Pi OS is a significant departure from Raspbian. These instructions are untested on the 64-bit version.
These instructions were created using a Raspberry Pi 3 Model B running Raspbian Stretch, kernel version 4.4:
$ uname -a Linux raspberrypi 4.4.21-v7+ #911 SMP Thu Sep 15 14:22:38 BST 2016 armv7l GNU/Linux
These instructions have recently been confirmed using a Raspberry Pi 3 Model B running Raspbian Stretch Light, kernel version 4.14:
$ uname -a Linux raspberrypi 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l GNU/Linux
Get to a Terminal/command prompt (e.g. login via SSH or run the Terminal application from the PIXEL desktop).
Login as your preferred user account to run the BBS software (e.g. the default user
pi, or create the user
sbbs using the Linux
adduser utility and then run
su sbbs to login as the user
These instructions install Synchronet (source code, executables, configuration, and data files) into a sub-directory named
sbbs off of the home directory of the current user (e.g.
~/sbbs). So if the current user is “pi”, that would expand to
/home/pi/sbbs. If you wish to install into a different directory (e.g.
/sbbs instead of
~/sbbs), then change the following commands as you see fit, but that is not recommended.
Type each of these commands (see prerequisites for a complete list of dependencies):
|1||Resynchronize your Debian package index|
|2|| ||Install the Git tools|
|3|| ||Install the Info-zip (zip/unzip) tools|
|4|| ||Install the Netscape Portable Runtime library (used by Mozilla stuff)|
|5|| ||Install the curses development package (wide char variant)|
|6|| ||Install the libarchive development package|
|7|| ||Create a directory to store some packages for manual installation|
|8|| ||Change the current working directory to the newly-created directory|
|9|| ||Download libffi6|
|10|| ||Download libmozjs185-1.0|
|11|| ||Download libmozjs185-dev|
|12|| ||Install libffi6|
|13|| ||Install libmozjs185-1.0|
|14|| ||Install libmozjs185-dev|
|15|| ||Fix eventual missing dependencies|
|16|| ||Create the directory where Synchronet will be built and run from|
|17|| ||Change the current working directory to the newly-created directory|
|18|| ||Fetch makefile|
|19|| ||Build it (will likely take quite a while)|
|20|| ||See env for details on setting this environment variable persistently|
|21|| || Configure your BBS, see
Now you are ready to either run
sbbs with interactive sysop console:
or see this how-to for instructions on how to run
sbbs as a daemon using systemd.
This will create 32-bit ARM binaries (executables):
$ file -L sbbs sbbs: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0
Although it is possible to create 64-bit ARM binaries for the Raspberry Pi 3/3+ through cross-compilation, this is not supported by the Raspberry Pi foundation and thus not covered here.