Both sides previous revisionPrevious revisionNext revision | Previous revision |
howto:raspbian_install [2021/01/16 13:23] – [Instructions] install libncursesw5-dev (wide) not libncurses5-dev digital man | howto:raspbian_install [2024/10/11 22:16] (current) – Installation make command-line updated to reflect new makefile name and default target digital man |
---|
====== Install Synchronet on a Raspberry Pi (Raspian) ====== | ====== Install Synchronet on a Raspberry Pi ====== |
| |
Here are step-by-step instructions on building and installing Synchronet on a [[http://www.raspbian.org/|Raspbian]] computer ([[http://www.raspberrypi.org|Raspberry Pi]] running [[http://www.debian.org/|Debian]] Linux OS). | Here are step-by-step instructions on building and installing Synchronet on a [[http://www.raspberrypi.org|Raspberry Pi]] running either [[http://www.raspbian.org/|Raspbian]] or [[https://www.raspberrypi.com/software/|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. |
| |
| {{:howto:rpi.png?100|}} |
===== Prerequisites ===== | ===== Prerequisites ===== |
| |
Linux raspberrypi 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l GNU/Linux | Linux raspberrypi 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l GNU/Linux |
| |
| These instructions have recently been confirmed using a Raspberry Pi 4 running Raspberry Pi OS, kernel version 6.1.0: |
| $ uname -a |
| Linux raspberrypi 6.1.0-rpi7-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64 GNU/Linux |
===== Instructions ===== | ===== Instructions ===== |
| |
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. | 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: | Install all the [[install:nix:prerequisites]] for Debian/Ubuntu for version 23.00 upwards then follow the instructions below: |
| **Note: If using an Rpi4 use a 64 bit Raspberry Pi OS and download arm64 instead of armhf.** |
^ # ^ Command ^ Description ^ | ^ # ^ Command ^ Description ^ |
| 1 |''sudo apt-get update'' | Resynchronize your Debian package index | | | 1 | mkdir ~/deb_packages | Create a directory to store some packages for manual installation | |
| 2 | ''sudo apt-get install git'' | Install the [[dev:Git]] tools | | | 2 | cd ~/deb_packages | Change the current working directory to the newly-created directory | |
| 3 | ''sudo apt-get install zip'' | Install the Info-zip (zip/unzip) tools | | | 3 | wget http://archive.debian.org/debian/pool/main/libf/libffi/libffi6_3.2.1-6_armhf.deb or \\ wget http://archive.debian.org/debian/pool/main/libf/libffi/libffi6_3.2.1-6_arm64.deb | Download libffi6 | |
| 4 | ''sudo apt-get install libnspr4-dev'' | Install the Netscape Portable Runtime library (used by Mozilla stuff) | | | 4 | ''wget http://archive.debian.org/debian/pool/main/m/mozjs/libmozjs185-1.0_1.8.5-1.0.0+dfsg-6_armhf.deb or\\ wget http://archive.debian.org/debian/pool/main/m/mozjs/libmozjs185-1.0_1.8.5-1.0.0+dfsg-6_arm64.deb'' | Download libmozjs185-1.0 | |
| 5 | ''sudo apt-get install libmozjs185-dev'' | Install the Mozilla JavaScript development package | | | 5 | ''wget http://archive.debian.org/debian/pool/main/m/mozjs/libmozjs185-dev_1.8.5-1.0.0+dfsg-6_armhf.deb or\\ wget http://archive.debian.org/debian/pool/main/m/mozjs/libmozjs185-dev_1.8.5-1.0.0+dfsg-6_arm64.deb'' | Download libmozjs185-dev | |
| 6 | ''sudo apt-get install libncursesw5-dev'' | Install the curses development package (wide char variant) | | | 6 | ''sudo apt install ./lib*.deb'' | Install libs and dependencies| |
| 7 | ''mkdir ~/sbbs'' | Create the directory where Synchronet will be built and run from | | | 7 | ''mkdir ~/sbbs'' | Create the directory where Synchronet will be built and run from | |
| 8 | ''cd ~/sbbs'' | Change the current working directory to the newly-created directory | | | 8 | ''cd ~/sbbs'' | Change the current working directory to the newly-created directory | |
| 9 | ''wget [[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/install/GNUmakefile]]'' | [[install:nix:Fetch makefile]] | | | 9 | ''wget [[https://gitlab.synchro.net/sbbs/sbbs/-/raw/master/install/install-sbbs.mk]]'' | [[install:nix:Fetch makefile]] | |
|10 | ''make install SYMLINK=1 JSINCLUDE=/usr/include/js JSLIB=mozjs185'' | Build it (will likely take quite a while) | | |10 | ''make -f install-sbbs.mk SYMLINK=1 JSINCLUDE=/usr/include/js JSLIB=mozjs185'' | Build it (will likely take quite a while) | |
|11 | ''export SBBSCTRL=~/sbbs/ctrl'' | See [[config:env]] for details on setting this environment variable persistently | | |11 | ''export SBBSCTRL=~/sbbs/ctrl'' | See [[config:env]] for details on setting this environment variable persistently | |
|12 | ''~/sbbs/exec/[[util:scfg]]'' | Configure your BBS, see ''[[config:sbbs.ini]]'' for more Synchronet server settings | | |12 | ''~/sbbs/exec/[[util:scfg]]'' | Configure your BBS, see ''[[config:sbbs.ini]]'' for more Synchronet server settings | |
| |
Now you are ready to either run ''~/sbbs/exec/sbbs'' directly (you'll need to run using ''sudo'' if you want to use TCP ports < 1024): | Now you are ready to either run ''sbbs'' with interactive sysop console: |
| |
$ sudo -E ~/sbbs/exec/sbbs | $ ~/sbbs/exec/sbbs |
| |
or see [[systemd|this how-to]] for instructions on how to run ''sbbs'' as a daemon using systemd. | or see [[systemd|this how-to]] for instructions on how to run ''sbbs'' as a daemon using systemd. |
| |
Although it [[https://www.tal.org/tutorials/raspberry-pi3-build-64-bit-kernel|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. | Although it [[https://www.tal.org/tutorials/raspberry-pi3-build-64-bit-kernel|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. |
| |
| ====== DOSEMU On Raspberry Pi 4 with 64 Bit OS ====== |
| |
| You will need to add the DosEMU2 Launchpad PPA to your system. |
| |
| First, add the public key |
| |
| $ sudo curl -sS 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xebe1b5ded2ad45d6'|gpg --dearmor > /etc/apt/trusted.gpg.d/ubuntu-dosemu2-ppa.gpg |
| |
| This step seems to be a challenge for some people so you may have to break it into a couple of steps |
| |
| $ curl -sS 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xebe1b5ded2ad45d6' | gpg --dearmor > /tmp/dosemupgp.txt |
| $ sudo mv /tmp/dosemupgp.txt /etc/apt/trusted.gpg.d/ubuntu-dosemu2-ppa.gpg |
| |
| Second, create a source file |
| |
| $ sudo echo "deb https://ppa.launchpadcontent.net/dosemu2/ppa/ubuntu kinetic main" > /etc/apt/sources.list.d/dosemu2 |
| |
| Next, run apt update to make sure there are no issues |
| |
| $ sudo apt update |
| |
| Then install the DosEMU2 files |
| |
| $ apt install dosemu2 |
| |
| A number of packages will be installed. |
| |
| Finally, download Nelgin's dosemu2 configurations. Untar the file and follow the readme. You should be left with a working DosEMU |
| |
| $ wget https://www.endofthelinebbs.com/dosemu2.tar.gz |
| $ tar xf dosemu2.tar.gz |
| |
| |
===== See Also ===== | ===== See Also ===== |