Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Prerequisits

Install Debian 78(Wheezy):

...

Info

...

Details

...

Jesse):


Update Package Manager Sources:

...

 

add contrib to the list

vi

...

/etc/apt/sources.list


Install SSHD

apt-get install openssh-server

...

Run Install

cd bbs

install.sh

Install Supervisor

apt-get install supervisor

Install addition apps

apt-get -y --no-install-recommends install inetutils-syslogd wget tightvncserver xfonts-base \
lwm xterm vim-tiny less ca-certificates balance \
zip unzip pwgen xdotool telnet nano \
mtools dosfstools dos2unix inetutils-telnetd openbsd-inetd \
xvnc4viewer tcpser ser2net socat liblockfile-bin

Update Supervisor Configurations 

vi /etc/supervisor/conf.d/vncserver.conf

Code Block
[program:vncserver]
command=/usr/local/bin/startvnc
autostart=true
autorestart=true
startsecs=5

stdout_logfile=NONE
stderr_logfile=NONE

vi /etc/supervisor/conf.d/syslogd.conf

Code Block
[program:syslogd]
command=/usr/sbin/syslogd --no-detach --no-forward
autostart=true
autorestart=true
startsecs=5
stdout_logfile=NONE
stderr_logfile=NONE

stdout_logfile=NONE
stderr_logfile=NONE

vi /etc/supervisor/conf.d/xterm.conf

Code Block
[program:xterm]
command=/usr/bin/xterm
environment=DISPLAY=":1"
autostart=true
autorestart=true
startsecs=5
startretries=1000000
stdout_logfile=NONE
stderr_logfile=NONE

vi /etc/supervisor/conf.d/rawsocat.conf

Code Block
[program:rawsocat]
command=/usr/local/bin/waitfordaemon vncserver /usr/bin/socat TCP4-LISTEN:23,reuseaddr,fork EXEC:"/usr/local/bin/startnode,pty"
priority=1
directory=/dos
environment=DISPLAY=":1"
autostart=true
autorestart=true
startsecs=5
startretries=1000000
stdout_logfile=NONE
stderr_logfile=NONE

vi /etc/supervisor/conf.d/tcpsercon.conf

Code Block
[program:tcpsercon]
command=/usr/bin/tcpser -v 7000 -s 115200 -p 8000
priority=1
directory=/dos
environment=DISPLAY=":1"
autostart=true
autorestart=true
startsecs=5
startretries=1000000
stdout_logfile=NONE
stderr_logfile=NONE

vi /etc/supervisor/conf.d/telnetinetd.conf

Code Block
[program:telnetinetd]
command=/usr/local/bin/waitfordaemon vncserver /usr/sbin/inetd -E -i -l
priority=1
directory=/dos
environment=DISPLAY=":1"
autostart=false
autorestart=true
startsecs=5
startretries=1000000
stdout_logfile=NONE
stderr_logfile=NONE

vi /usr/local/bin/startvnc

Code Block
#!/bin/bash

echo " *** startvnc script"
set -e

export VNCPASSWORD='xxx'

if [ -z "$VNCPASSWORD" ]; then
  VNCPASSWORD=`pwgen 8`
  echo " *** VNC password for this session: $VNCPASSWORD"
fi

export USER="`whoami`"
mkdir -p ~/.vnc

echo "$VNCPASSWORD" | tightvncpasswd -f > ~/.vnc/passwd
chmod 0600 ~/.vnc/passwd

tightvncserver -geometry 1024x768 :1
sleep 1
tail -f ~/.vnc/*.log

vi /usr/local/bin/waitfordaemon

...

...

#!/bin/bash

while supervisorctl status "$1" 2>/dev/null | grep -vq 'RUNNING'; do
  echo "Waiting for $1"
  sleep 1
done

# An additional wait, just to be safe
sleep 3
shift
exec "$@"


chmod +x /usr/local/bin/waitfordaemon

DOSEmu

Installation

sudo su

apt-get update

apt-get install dosemu

Setup OS and Utilities

Setup Folders

Code Block
mkdir /dos

for DRIVE in e f g h i j k; do
  mkdir -p /dos/drive_$DRIVE
  ln -s /dos/drive_$DRIVE /etc/dosemu/drives/$DRIVE
done

mkdir /dos/drive_h/UTILS
mkdir /dos/drive_h/STARTUP

mkdir /dos/sessions
mkdir /dos/session.skel

echo > /dos/drive_e/BOOTUP.BAT
unix2dos /dos/drive_e/BOOTUP.BAT

# These seem to be what dosemu does on start.
#cp -rv /etc/dosemu/freedos /dos/session.skel/drive_c
#mkdir /dos/session.skel/drive_c/tmp

touch /dos/session.skel/dosemu.conf

echo 0 > /dos/numnodes
echo 1 > /dos/startconsole

echo '$_com1 = "virtual"' >> /etc/dosemu/dosemu.conf
echo '$_timemode = "linux"' >> /etc/dosemu/dosemu.conf

Update AUTOEXEC.BAT

vi /etc/dosemu/freedos/autoexec.bat

Code Block
@echo off
rem autoexec.bat for DOSEMU + FreeDOS
path z:\bin;z:\gnu;z:\dosemu;h:\utils
set HELPPATH=z:\help
set TEMP=c:\tmp
blaster
prompt $P$G
unix -s DOSEMU_VERSION
echo "Welcome to dosemu %DOSEMU_VERSION%!"
CALL E:\BOOTUP
unix -e

unix2dos /etc/dosemu/freedos/autoexec.bat

Install utilities

Run the following script

Code Block
#!/bin/bash

set -e
set -x

rm -rf /tmp/setup
mkdir /tmp/setup

## Do the downloads
cd /tmp/setup
wget https://ftp.sunet.se/mirror/archive/ftp.sunet.se/pub/simtelnet/msdos/fossil/adf_150.zip
wget https://bbs.bapho.net/bbs/i-drive/generic/pkz204g.exe
wget http://cd.textfiles.com/pier/pier08/046/list91k.zip
wget http://www.filegate.net/comm/dszexe.zip

# Unpack PKZIP
mkdir /tmp/setup/t
cd /tmp/setup/t
unzip ../pkz204g.exe
mv -v PKZIP.EXE PKUNZIP.EXE PKUNZJR.COM /dos/drive_h/UTILS/
cd /tmp/setup
rm -r /tmp/setup/t

# Unpack LIST
mkdir /tmp/setup/t
cd /tmp/setup/t
unzip ../list91k.zip
mv -v LIST.COM /dos/drive_h/UTILS/
cd /tmp/setup
rm -r /tmp/setup/t

# Unpack DSZ
mkdir /tmp/setup/t
cd /tmp/setup/t
unzip ../dszexe.zip
mv -v DSZ.EXE /dos/drive_h/UTILS/
cd /tmp/setup
rm -r /tmp/setup/t

# Unpack ADF (FOSSIL)
cd /dos/drive_h
rm -rf adf
mkdir adf
cd adf
unzip /tmp/setup/adf_150.zip
rm /tmp/setup/adf_150.zip

Add startdossession script

vi /usr/local/bin/startdossession

Code Block
#!/bin/bash

# $1 - session name
set -e

if [ -z "$1" ]; then
   echo "Syntax: $0 sessionname [dosemuargs]"
   exit 1
fi

export SESSION="$1"
SESSPATH="/dos/sessions/$1"

if [ ! -e "$SESSPATH" ]; then
  cp -a /dos/session.skel "$SESSPATH"
fi

if check-dosemu-session $SESSION; then
  echo "dosemu session $SESSION already running; refusing to start again"
  exit 1
fi

HOME=/root   # telnetd may not leave this set for us
# Copy .Xauthority, since we have to set HOME
rm -rf "$SESSPATH/.Xauthority"
cp -r $HOME/.Xauthority "$SESSPATH"

# After the first start, we have to copy the drive stuff into here.
DRIVESPATH="$SESSPATH/.dosemu/drives"
if [ -e "$DRIVESPATH" ]; then
  cp -an /etc/dosemu/drives/* "$DRIVESPATH"
fi


waitfordaemon vncserver
shift

# Final sanity check.
dotlockfile -p -l "$SESSPATH/jglock"
# -f is an excuse for the session check
stty raw
DISPLAY=:1 HOME="$SESSPATH" exec dosemu -f "$SESSPATH/dosemu.conf" "$@"
dotlockfile -p -u "$SESSPATH/jglock"

chmod +x /usr/local/bin/startdossession

Add check-dosemu-session script

vi /usr/local/bin/check-dosemu-session

Code Block
#!/bin/bash

# Check if a dosemu session named "$1" is running.

# If yes, exit with code 0 and display its PID.
# If no, exit with code 1.

pgrep -f "dosemu.*/dos/sessions/$1/dosemu.conf"

chmod +x /usr/local/bin/check-dosemu-session

Add startnode script

vi /usr/local/bin/startnode

Code Block
#!/bin/bash

set -e

MAXNODE=${BBSNODES:-`cat /dos/numnodes`}
FOUNDNODE=""

for NODE in `seq 1 $MAXNODE`; do
  if ! check-dosemu-session node$NODE &> /dev/null; then
    FOUNDNODE="$NODE"
    break
  fi
done

if [ -z "$FOUNDNODE" ]; then
  echo "All nodes are busy now; please try again later."
  exit 1
fi

SESSNAME=node$FOUNDNODE
STARTUP=/dos/drive_h/STARTUP/NODE$FOUNDNODE.BAT

# Hook to let node prep happen
if [ -e /dos/nodeprephook.sh ]; then
  . /dos/nodeprephook.sh
fi

printf "Welcome to node $FOUNDNODE.  Please stand by while we connect you...\r\n"
exec startdossession $SESSNAME "H:\\STARTUP\\NODE$FOUNDNODE"

chmod +x /usr/local/bin/startnode

Add dosconsole script

vi /usr/local/bin/dosconsole

Code Block
#!/bin/bash

export DISPLAY=:1
SESSNAME="console"

set -e
set -x

if [ "`cat /dos/startconsole`" = 0 ]; then
  echo "$0 startup disabled by /dos/startconsole; not starting."
  sleep 900d
  exit 0
fi


waitfordaemon vncserver true
waitfordaemon tcpsercon true

exec socat TCP4:localhost:7000 EXEC:"startdossession console",pty

vi /dos/nodeprephook.sh

Code Block
# Called by startnode
if [ ! -e $STARTUP ]; then
  echo "H:" >> $STARTUP.tmp
  echo "cd ADF" >> $STARTUP.tmp
  echo "lh adf COM1 3F8  4 115200 8192  8192  8" >> $STARTUP.tmp
  echo "G:" >> $STARTUP.tmp
  echo "cd rg" >> $STARTUP.tmp
  echo "renegade /N$FOUNDNODE -Q -B115200" >> $STARTUP.tmp
  echo "exitemu" >> $STARTUP.tmp
  unix2dos $STARTUP.tmp &> /dev/null
  mv $STARTUP.tmp $STARTUP
fi

chmod +x /dos/nodeprephook.sh

Update inetd.conf

vi /etc/inetd.conf

Code Block
23  stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/telnetd -a off -h --exec-login=/usr/local/bin/startnode

Renegade BBS

Installation

We will be installing everything under /dos. Renegade will be installed under /dos/drive_g.

Extract

sudo su

cd /dos/drive_g

wget http://renegadebbs.info/files/unofficial.rgbbsfullv120a.zip

unzip unofficial.rgbbsfullv120a.zip

rm unofficial.rgbbsfullv120a.zip

Add additional NODE DAT files

cd rg/DATA

for ASDF in 2 3 4 5 6 7 8 9; do

cp NODE1.DAT NODE$ASDF.DAT

done

Patch the paths

cd /dos/drive_g

find . -type f -exec sed -i 's,C:\\RG,G:\\RG,g' {} \;

Set number of nodes

...

Configuration

Using dosemu

...

Update the SYSOP user.


Tradewars 2002

Installation

...

cd /dos/drive_g/rg/doors

mkdir tw2002

cd tw2002

wget https://www.slbbs.com/files/doorgame/2002v309.zip

unzip 2002v309.zip

rm 2002v309.zip


Start DOSEmu

dosemu


Install from DOSEMU

g:

cd g:\rg\doors\tw2002

install.bat

If you need to redo the BIG BANG, you will find a file called bigbang.exe in the tradewars folder.

...