...
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.
...