This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
deb-mbse/html/faq.html
2002-10-28 15:57:05 +00:00

1084 lines
42 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<!-- $Id$ -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="GENERATOR" content="vi handcraft">
<meta name="author" lang="en" content="Michiel Broek">
<meta name="description" lang="en" content="MBSE BBS Manual">
<meta name="keywords" lang="en" content="MBSE BBS, MBSE, BBS, manual, fido, fidonet, gateway, tosser, mail, tic, mailer">
<title>MBSE BBS FAQ &amp; Howto</title>
<link rel="stylesheet" href="manual.css">
</head>
<body>
<blockquote>
<div align="Center"><h1>MBSE BBS FAQ and Howto.</h1></div>
<hr>
<div align="Right"><h5>Last updated 28-Oct-2002</h5></div>
<pre> Author: P.E. Kimble aka King Kimerud<br> kimerud@bayhaus.org<br> </pre>
Introduction
<p> This FAQ is a work in progress. It is not complete, nor does its
author claim that it is complete. This FAQ only answers questions pertaining
to using MBSE BBS on your Linux box. It is a compilation of previous questions
that Michiel Broek has recieved and answered from us newbies in getting
MBSE up &amp; running. </p>
<ol>
<li><a name="_Installation"></a>
<a href="#1">Installation</a>
</li>
<ol>
<li><a href="#1.1">Why do I have to install MBSE in the /opt directory?</a>
</li>
<li><a href="#1.2">What other operating systems will MBSE run on?</a>
</li>
<li><a href="#1.3">Will MBSE ever be ported to DOS/Windows or OS/2?</a>
</li>
<li><a href="#1.4">What does the quest switch in the bbs user setup
mean?</a>
</li>
<li><a href="#1.5">How do I monitor as the things happen?</a>
</li>
<li><a href="#1.6">How do I start mbsebbs from inetd?</a>
</li>
<li><a href="#1.7">I just installed mbse, now I get a Socket send
failed error 2</a>
</li>
</ol>
<p>&nbsp;</p>
<li><a name="_Fidosetup"></a>
<a href="#2">Fidonet Setup</a>
</li>
<ol>
<li><a href="#2.1">The nodelist compiler crashes, why?</a>
</li>
<li><a href="#2.2">What is the purpose of the "Comment" line in the
tic area setup?</a>
</li>
<li><a href="#2.3">How do I poll a node?</a>
</li>
<li><a href="#2.4">I created a filerequest but mbcico doesn't call
out.</a>
</li>
<li><a href="#2.5">Does MBSE support fidonet via ftp feeds?</a>
</li>
</ol>
<p>&nbsp;</p>
<li><a name="_Inetsetup"></a>
<a href="#3">Internet Setup</a>
</li>
<ol>
<li><a href="#3.1">Posting newsmessages to the newsserver fails.</a></li>
<li><a href="#3.2">FTP fidonet feeds how-to.</a></li>
<li><a href="#3.3">Polling a internet node fails</a></li>
</ol>
<p>&nbsp;</p>
<li><a name="_BBSsetup"></a>
<a href="#4">BBS Setup</a>
</li>
<ol>
<li><a href="#4.1">How do I to set up MBSE for ISDN?</a>
</li>
<li><a href="#4.2">How do I use GoldED together with MBSE?</a>
</li>
</ol>
<p>&nbsp;</p>
<li><a name="_Doors"></a>
<a href="#5">Doors Setup</a>
</li>
<ol>
<li><a href="#5.1">How do I run DOS doors under MBSE BBS?</a>
</li>
<li><a href="#5.2">Dosemu compile tips</a>
</li>
<li><a href="#5.3">Setting up for InterBBS games.</a>
</li>
<li><a href="#5.4">Door Maintenance.</a>
</li>
</ol>
</ol>
<a href="index.htm"> <img src="images/b_arrow.gif" alt="Back" border="0">
Go Back</a>
<hr>
<h3><a name="1">1. Installation.</a>
</h3>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="1.1">Q 1.1</a>
</td>
<td>Why do I have to install MBSE in the /opt directory?</td>
</tr>
<tr>
<td valign="Top">A 1.1</td>
<td> The /opt is for extra applications, when mbse is installed there
it is easier to upgrade the OS. If you insist on installing in /usr/local
the choose /usr/local/mbse. </td>
</tr>
</tbody>
</table>
<a href="#_Installation"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="1.2">Q 1.2</a>
</td>
<td> What other operating systems will MBSE run on? </td>
</tr>
<tr>
<td valign="Top">A 1.2</td>
<td> Currently only on most Linux distributions, FreeBSD and NetBSD.
The author, Michiel Broek, has made a valiant effort ensuring that MBSE will
recognize and install on the major distributions of Linux. </td>
</tr>
</tbody>
</table>
<a href="#_Installation"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="1.3">Q 1.3</a>
</td>
<td> Will MBSE BBS ever be ported to DOS/Windows or OS/2? </td>
</tr>
<tr>
<td valign="Top">A 1.3</td>
<td> No. </td>
</tr>
</tbody>
</table>
<a href="#_Installation"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="1.4">Q 1.4</a>
</td>
<td> What does the guest switch in BBS user setup mean? </td>
</tr>
<tr>
<td valign="Top">A 1.4</td>
<td> Nothing yet. </td>
</tr>
</tbody>
</table>
<a href="#_Installation"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="1.5">Q 1.5</a>
</td>
<td> How do I monitor as the things happen? </td>
</tr>
<tr>
<td valign="Top">A 1.5</td>
<td> tail -f /opt/mbse/log/system.log or start mbmon. </td>
</tr>
</tbody>
</table>
<a href="#_Installation"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="1.6">Q 1.6</a>
</td>
<td> How to start mbsebbs from inetd? </td>
</tr>
<tr>
<td valign="Top">A 1.6</td>
<td> This is described in the documentation of the <a href="programs/mblogin.html">
mblogin</a>
program. </td>
</tr>
</tbody>
</table>
<a href="#_Installation"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="1.7">Q 1.7</a>
</td>
<td> I just installed mbse, now I get a Socket send failed error
2. </td>
</tr>
<tr>
<td valign="Top">A 1.7</td>
<td> With a normal system boot the <b>mbtask</b> daemon will be started
by one of the systems init scripts. If you just installed mbse you need to
do this for the first time manually. As user <b>mbse</b> issue the following
commands:
<pre>
mbtask
mbstat open
</pre>
This will start the daemon, the daemon creates the default databases. Then
you can use <b>mbsetup</b> to configure your new system. </td>
</tr>
</tbody>
</table>
<a href="#_Installation"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p> </p>
<hr>
<h3><a name="2">2. Fidonet setup.</a>
</h3>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="2.1">Q 2.1</a>
</td>
<td> The nodelist compiler crashes, why? </td>
</tr>
<tr>
<td valign="Top">A 2.1</td>
<td> Note: From previous experience, it is vital that you follow
the docs closely. Also, ensure that you have a copy of a valid nodelist
and nodediff file. I have ran into problems where either the noddiffs don't
match the nodelist, the crc checks fail, or I have files from two different
zones. I have even had to back up several months before finding a valid
noddiff that would match the nodelist. <br>
Make sure the domain translations do exist, with mbsetup enter menu 17
and save it even if you didn't change anything. </td>
</tr>
</tbody>
</table>
<a href="#_Fidosetup"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="2.2">Q 2.2</a>
</td>
<td> What is the purpose of the "Comment" line in the tic area setup?
</td>
</tr>
<tr>
<td valign="Top">A 2.2</td>
<td> The downlinks will see this when receiving FileMgr replies.
It is meant only as a description for the filearea. </td>
</tr>
</tbody>
</table>
<a href="#_Fidosetup"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="2.3">Q 2.3</a>
</td>
<td> How do I poll a node? </td>
</tr>
<tr>
<td valign="Top">A 2.3</td>
<td> mbout poll f2802.n280.z2 </td>
</tr>
</tbody>
</table>
<a href="#_Fidosetup"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="2.4">Q 2.4</a>
</td>
<td> I created a filerequest but mbcico doesn't call out. </td>
</tr>
<tr>
<td valign="Top">A 2.4</td>
<td> You need to add a poll for that node to do the call. </td>
</tr>
</tbody>
</table>
<a href="#_Fidosetup"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="2.5">Q 2.5</a>
</td>
<td> Does MBSE support fidonet via ftp transfers? </td>
</tr>
<tr>
<td valign="Top">A 2.5</td>
<td> Yes, but only the passive side. <a href="#2.5">Refer to 3.2.</a>
</td>
</tr>
</tbody>
</table>
<a href="#_Fidosetup"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p> </p>
<hr>
<h3><a name="3">3. Internet setup.</a>
</h3>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="3.1">Q 3.1</a>
</td>
<td> Posting newsmessages to the newsserver fails. </td>
</tr>
<tr>
<td valign="Top">A 3.1</td>
<td> Check if you need the "mode reader" command for the newsserver.
Set this flag in mbsetup 1.15.5 </td>
</tr>
</tbody>
</table>
<a href="#_Inetsetup"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="3.2">Q 3.2</a>
</td>
<td> How do I configure MBSE for my ftp filenet feeds? </td>
</tr>
<tr>
<td valign="Top">A 3.2</td>
<td>
Follow the next steps to setup your system for FTP clients.
<ol>
<li>As root, add a new group to your system: <b>groupadd bbsftp</b>.
<li>Make sure there is a directory /opt/mbse/var/bbsftp. This directory
should be owned by mbse, group bbs and have mode 0775.
<li>Add an invalid shell to /etc/shells, /usr/bin/false is good.
<li>Install an FTP server, the examples here are for ProFTPD.
<li>In /etc/proftpd.conf make sure there are the following lines:
<pre>
# Anonymous ftp and members of group bbsftp have a chroot environment.
DefaultRoot ~ bbsftp
</pre>
This will make sure that users who are member of the bbsftp group have
a chrooted directory structure for their ftp directories.
Also make sure the line Umask 022 is changed to Umask 002.
<li>Add a username for the node you whish to give an FTP feed. Use the
following as root:
<pre>
useradd -g bbs -G bbsftp -d /opt/mbse/var/bbsftp/username
-s /usr/bin/false -c "FTP Account for username" -m username
</pre>
Note: this is one line!
There will now be a user added and have a home directory of
/opt/mbse/var/bbsftp/username. Make sure that directory has permission
0775 or 0770. Create in the username directory two other directories,
inbound and outbound. They must be owned by the user and be a member of
group bbs and have mode 0775. The modes 077x are needed because the
user and mbse must be able to read and write to these directories.
<li>Try to login with ftp from some other system with the choosen
username and his password and check the changes until now. You should
not be able to escape from the directories of this user and you should
be able to upload files, download and delete files. Check also if you
uploaded a file if user mbse can delete that file and also put a file
in the users ftp directory as user mbse, and check that you can
download and delete is as ftp user.
<li>
Make sure for the node you want to change there is no mail left in the
outbound.
Now start mbsetup, menu 7, open the setup of the node that will use
ftp. In screen 3, items 7 and 8, set these to Directory. Now enter
screen 8, here you will setup the directory session.
<pre>
7.8 EDIT NODE DIRECTORY SESSION
Outbound settings
1. Files path /opt/mbse/var/bbsftp/username/outbound
2. Check for lock Yes 3. Wait clear lock No
4. Check lockfile /opt/mbse/var/bbsftp/username/lock.bsy
5. Create lock Yes
6. Create lockfile /opt/mbse/var/bbsftp/username/lock.bsy
Inbound settings
7. Files path /opt/mbse/var/bbsftp/username/inbound
8. Check for lock Yes 9. Wait clear lock Yes
10. Check lockfile /opt/mbse/var/bbsftp/username/lock.bsy
11. Create lock Yes
12. Create lockfile /opt/mbse/var/bbsftp/username/lock.bsy
</pre>
Save this and you are ready.
<li>A final note, since this user is in group bbs and not in the bbs
userdatabase he can never telnet to your system with this account and
get a shell. The user doesn't even have a valid shell.
</ol>
</td>
</tr>
</tbody>
</table>
<a href="#_Inetsetup"><img src="images/hand.up.gif" border="0" alt="Up"></a>
</p>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="3.3">Q 3.3</a>
</td>
<td>Polling a internet node fails.</td>
</tr>
<tr>
<td valign="Top">A 3.3</td>
<td>
There are several reasons why mbcico refuses to call an internet node, most
problems are nodelist related. A internet node with binkp protocol should be
listed with the flags CM,IBN before mbcico will make a call. Also, in the
nodelist system name field there should be the hosts full qualified
domainname so that mbcico can get that node's IP address. If one of these
items are missing, the node will not be called. To correct this problem there
are two options, make sure the node is listed with a dns name and proper
flags in the nodelist. The second option is to add a setup record for that
node and fill in the nodelist override fields. You can find these in menu
7.3, item 5 can be filled with the nodelist flags, ie. CM,IBN and item 6 can
be used to give that node's fdn or IP address.
</td>
</tr>
</tbody>
</table>
<a href="#_Inetsetup"><img src="images/hand.up.gif" border="0" alt="Up"></a>
</p>
<p></p>
<hr>
<h3><a name="4">4. BBS setup.</a>
</h3>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="4.1">Q 4.1</a>
</td>
<td> How to set up MBSE for ISDN. </td>
</tr>
<tr>
<td valign="Top">A 4.1</td>
<td> Contributed by: J. Beekhuizen, 2:280/1018
<p> Of course, you have to configure and build your kernel for ISDN
support and the correct drivers for your card. It is beyond the scope of
this document to explain how to do that. </p>
<p> To your /etc/inittab file add the following lines for your ISDN
devices ttyI0 and ttyI1. </p>
<pre># ISDN lines<br>I1:23:respawn:/usr/local/sbin/mgetty -x 4 -i /opt/mbse/etc/issue ttyI0<br>I2:23:respawn:/usr/local/sbin/mgetty -x 4 -i /opt/mbse/etc/issue ttyI1<br><br></pre>
To your mgetty.config file [/usr/local/etc/mgetty_sendfax/mgetty.config
on my system] set up the ttyI0 and ttyI1 ports. With AT&amp;E you set the
MSN/EAZ the device should listen to. This should for an MSN be your telephone
number <b>with</b> the area code but <b>without</b> the leading 0. For an
EAZ the last digit of your EAZ.
<p> The ISDN ports </p>
<pre>
port ttyI0
modem-type data
init-chat "" ATZ OK
AT&amp;E714015437&amp;W0 OK
AT&amp;B512 OK
port ttyI1
modem-type data
init-chat "" ATZ OK
AT&amp;E714017198&amp;W0 OK
AT&amp;B512 OK
</pre>
From the mbsetup menu #5 "Edit Modem types" configure the ISDN modem type.
<pre>
Modem type ISDN Linux
Init string ATZ\r
Init string
Init string
OK string OK
Hangup \d\p\p\p+++\d\p\p\pATH0\r
Info command ATI2\r
Dial command ATD\T\r
Connect CONNECT 64000
Connect CONNECT
[...]
Reset cmd ATZ\r
Error string BUSY
Error string NO CARRIER
Error string NO DIALTONE
Error string NO ANSWER
Error string RING\r
Error string ERROR
Error string
Error string
Error string
Error string
Cost offset 0
EMSI speed 28800 ! not relevant for ISDN
Strip dashes No
Available Yes
</pre>
And from #6 "Edit TTY lines info" the ISDN lines
<pre>
TTY name ISDN Line 1
Device name ttyI0
Phone or DNS 31-71-4015437
Line speed 64 kbits
Fido flags CM,XA,MO,X75
Equipment ISDN
Available Yes
Auth. log No
Honor ZMH Yes
Callout Yes
Modem type ISDN Linux
Locked speed 0 ! not relevant for ISDN
EMSI name The Wizard's ISDN line 1
TTY name ISDN Line 2
Device name ttyI1
Phone or DNS 31-71-4017198
Line speed 64 kbits
Fido flags CM,XA,MO,X75
Equipment ISDN
Available Yes
Auth. log No
Honor ZMH Yes
Callout Yes
Modem type ISDN Linux
Locked speed 0
EMSI name The Wizard's ISDN line 2
</pre>
T-t-that's all folks :)) </td>
</tr>
</tbody>
</table>
<a href="#_BBSsetup"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="4.2">Q 4.2</a>
</td>
<td> How do I use GoldED together with MBSE? </td>
</tr>
<tr>
<td valign="Top">A 4.2</td>
<td> Since MBSE BBS version 0.33.12 GoldED and MBSE BBS can be used
together without problems as long as you use it to read the sysop mail. The
mbsetup program can export a file called /opt/mbse/etc/golded.inc which will
contain your main Aka's, Aka matching, sysop name and all your mail areas.
This file is only (re)created if you change the global settings or one of
the mail areas. The first time you must force this by making a change somewhere.
<p> Now create /opt/mbse/etc/golded.cfg, here is what I wrote: </p>
<pre>
; GoldED.cfg
;
; Internet Addressing
;
INTERNETADDRESS Michiel_Broek@f2802.n280.z2.fidonet.org
INTERNETGATE UUCP 2:292/875
;
;
OUTBOUNDPATH /opt/mbse/var/bso/outbound
REPLYLINK chain
STYLECODES yes
;
;
; MESSAGE READER
;
DISPMSGSIZE KBYTES
DISPATTACHSIZE KBYTES
DISPLOCALHIGH YES
DISPPAGEBAR YES
VIEWHIDDEN YES
VIEWKLUDGE NO
VIEWQUOTE YES
;
INCLUDE /opt/mbse/etc/golded.inc
;
; The end.
</pre>
Put in /opt/mbse/.profile the following line: export GOLDED=$HOME/etc
<p> When you now start GoldED you use it as the sysop. Make sure
that the sysop's userrecord is the first user in the MBSE BBS userbase. If
not, the lastread pointers are not right. The GoldED nodelist compiler can
be added to the setup in menu 18. </p>
</td>
</tr>
</tbody>
</table>
<a href="#_BBSsetup"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p> </p>
<hr>
<h3><a name="5">5. Doors setup.</a>
</h3>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="5.1">Q 5.1</a>
</td>
<td> How do I run DOS doors under MBSE BBS? </td>
</tr>
<tr>
<td valign="Top">A 5.1</td>
<td>
<pre>Written by: Redy Rodriguez, sysop of Parolas BBS 2:348/609<br>Fidonet: Redy rodriguez 2:348/609<br>Email: redy@users.sourceforge.net<br> Redy_Rodriguez@f609.n348.z2.fidospain.org<br></pre>
<p> <b>NO WARANTEE</b> </p>
<p> The information gathered here, works for the indicated intention.
It is proven and working in PAROLAS BBS, however, I do not guarantee that
it works correctly in all the cases. The author is not responsible for the
damage this can cause. If you follow the instructions, and you get not the
expected result, or as a result of it you get undesired results, you loose
data or destroy your system, you you will be the only person in charge.
</p>
<p> <b>INTRODUCTION</b> </p>
<p> This document describes how I have been able to execute MS/DOS
doors in MBSEBBS. Probably it is not the best way to do it, but this is
the one that works for me. If somebody finds one more more effective, or
simpler or safer a solution, the I like to hear this solution. </p>
<p> <b>WHAT IS NEEDED?</b> </p>
<p> MBSEBBS is correctly compiled and working, in my case I have
the version 0.33.19, that is at the moment the most recent and stable, I
suppose that this method can be valid for newer versions. DOSEMU 1.0.2
I have tried previous versions, but these do not work correctly with virtual
ports. You can download dosemu.1.02.tgz from <a href="www.dosemu.org">www.dosemu.org</a>
, you may also need to download the freedos archive dosemu-freedos-bin-1.02.tgz.
A partition with MS/DOS, I have on my disc a partition with installed MS/DOS,
and that is the one that I use, but I'm sure that many doors could work correctly
with the freedos. You also need <b>sudo</b>. Sudo is a utility that let's
ordinary users execute certain programs as superuser, this is available with
almost all Linux distributions. </p>
<p> <b>COMPILING DOSEMU</b> </p>
<p> Unpack dosemu in some directory, for example /usr/src, then changed
into that directory and execute 'make'. When this is ready we have dosemu
compiled. If we already had a previous version of dosemu it is advisable
to uninstall it before continuing. Copy dosemu-freedos-bin-1.02.tgz to the
toplevel directory of the dosemu source and execute: </p>
<pre>
./install_systemwide -fd dosemu-freedos-bin-1.02.tgz
</pre>
In the directory etc, within the directory where we have decompressed the
source code of dosemu we have configuration examples. Create the directory
/var/lib/dosemu if it does not exist the directory, and copy global.conf
to that directory. Also copy dosemu.conf to directory /etc and copy dosemu.users.secure
as dosemu.users to /etc.
<p> <b>CONFIGURE THE DOS PARTITION</b> </p>
<p> Now we must configure the dos partition, in my case this exists
as a mounted dos partition in /dos/c. If this is not the case then you could
work with an image of freedos. I have created in my dos partition a directory
c:\doors where I install all doors that I want to use, and a file called
c:\doors.bat with the following contents: </p>
<pre>@echo off<br>c:<br>cd \doors<br>if exist %1.bat call %1 %2 %3 %4 %5 %6 %7 %8 %9<br>c:\dosemu\exitemu<br><br></pre>
Change to the directory /var/lib/dosemu and create directory called for
example 'c':
<pre>
mkdir c.
</pre>
A link to the mounted partition could be made but I prefer to create a new
directory and in that directory make links to dos program which are only
of interest for us. Many programs and directories of the dos partition are
not needed in dosemu and to run doors. Change to the created directory and
make links to everything what we have in our dos partition (we will erase
soon what we do not need). Autoexec.bat and config.sys must copied instead
of making links so we can modify them, because surely we will want that they
are different in dosemu, then in real dos.
<pre>
cd c
ln -s /dos/c/* .
rm autoexec.bat
rm config.sys
cp /dos/c/autoexec.bat config.sys .
</pre>
Create a directory dosemu and copy the typical utilities of dosemu.
<pre>
mkdir dosemu
cp /usr/src/dosemu-1.02/1.0.2.0/commands/* dosemu
</pre>
Now we modify the copy of config.sys and autoexec.bat to erase everything
what is not necessary to execute our games as doors, like drivers for cdrom,
mouse etc... We will clear the keyboard driver 'KEYB XX' and make sure that
in the path in autoexec.bat to include the directory c:\dosemu. Also load
the fossil emulator, for example add these two lines:
<pre>
path %PATH%:c:\dosemu
c:\dosemu\fossil
</pre>
If there is another fossil, such as bnu or x00 in config.sys or autoexec.bat
we clear all references to these, we will load them if that is necessary
in the file that it executes the door when needed, this can be necessary
for some doors and for other not. Now we can erase all the links to the directories
who are not necessary, and that we do not want that they are visible.
<p> Then edit the file /etc/dosemu.conf and look for the line that
begins with "$_hdimage =" and change that to: </p>
<pre>$_hdimage = "c" <br><br></pre>
Now login as root and you should be able to execute our dos emulator by executing
'/usr/bin/dosemu.bin'
<p> (to leave dosemu type in exitemu) </p>
<p> <b>CONFIGURING SUDO</b> </p>
<p> Normally the dos partition is not accessible to the users of
the BBS, except from within dosemu, and to be able to have access without
activating the setuid bit of dosemu, we use sudo so that any user of the
BBS can execute dosemu.bin as root. As root execute visudo to edit the configuration
file of sudo add the lines: </p>
<pre>%bbs ALL=NOPASSWD:/opt/mbse/bin/bbsdoor.sh<br>%bbs ALL=NOPASSWD:/opt/dosemu/bin/dosemu.bin<br><br></pre>
The first command is a script that takes care of copying the file door.sys
to the dos partition, the second line is to allow to execute dosemu.bin. Any
user of group BBS can execute these commandos like root without password is
asked.
<p> In order to test that this works login as user mbse and execute:
</p>
<pre>
sudo dosemu.bin
</pre>
<p> <b>INSTALLING A DOOR</b> </p>
<p> First we need a pair of scripts. These scripts are installed
when you did install MBSE. These scripts are needed to execute the doors
and are installed in /opt/mbse/bin: </p>
<pre>--- rundoor.sh ---<br><br>#!/bin/bash<br>#<br># rundoor.sh - Never
call this script directly, create a symlink<br># to this
file with the name of the door. For example<br># tu run the
door ilord do:<br># cd /opt/mbse/bin<br># ln
-s rundoor.sh ilord<br>#<br># by Redy Rodriguez and Michiel
Broek.<br>#<br>DOOR=`basename $0`<br>COMMANDO="\" doors $DOOR $*\r\""<br><br>/usr/bin/sudo /opt/mbse/bin/bbsdoor.sh $DOOR $1<br>/usr/bin/sudo /opt/dosemu/bin/dosemu.bin \<br> -F /var/lib/dosemu/global.conf \<br> -I "`echo -e serial { com 1 virtual }"\n" keystroke $COMMANDO`"<br>reset<br>tput reset<br>stty sane<br><br><br><br>--- bbsdoor.sh ---<br>#<br># Initialize DOS environment before starting a bbs door.<br># Parameters: $1 = name of the door<br># $2 = the nodenumber for this session<br>#<br># by Redy Rodriguez, 22-Oct-2001<br><br>if [ "$1" != "" ]; then<br> if [ "$2" != "" ]; then<br> mkdir -p /dos/c/doors/node$2 &gt;/dev/null 2&gt;&amp;1<br> # Copy door.sys to dos partition<br> cat ~/door.sys &gt;/dos/c/doors/node$2/door.sys<br> # Create .dosemu/disclaimer in user home to avoid warning<br> if [ ! -d $HOME/.dosemu ]; then<br> mkdir $HOME/.dosemu<br> fi<br> if [ ! -f $HOME/.dosemu/disclaimer ]; then<br> touch $HOME/.dosemu/disclaimer<br> fi<br> fi<br>fi<br><br></pre>
The script rundoor.sh is never called directly, simply create a link with
the name of the door to this file, this name must be the same as the one
of the .bat file that starts the door in the doors directory of the dos partition.
Let me explain this with an example:
<p> I have chosen the door Virtual Sysop, but it could be any other
door. My experience says to me that not all doors work correctly with a serial
port in virtual mode. This one is working at Parolas BBS. </p>
<p> Unpack Virtual Sysop in the dos partition, in the directory c:\doors\vsysop.
Execute as user mbse 'sudo dosemu.bin' and make sure that the door works
in local mode (these commands are for this door): </p>
<pre>cd doors<br>cd vsysop<br>vsysop -local<br><br></pre>
If everything is correct then create the file c:\doors\vsysop.bat with the
following contents:
<pre>
--- vsysop.bat ---
@echo off
C:\COMUNIC\X00\X00 E B,0,57600
cd vsysop
vsysop -D c:\doors\node%1\door.sys -BBSNAME PAROLAS
deltree /y c:\doors\node%1
C:\COMUNIC\X00\X00
cd ..
</pre>
Before passing the control to dosemu, the file door.sys will be copied to
c:\doors\node???? where the ???? is the node number from which the door is
invoked (to allow that several users can execute the door at the same time).
This nodenumber also is passed as the first parameters to the .bat file,
this is to indicate to which directory to copy the door.sys file.
<p> The Virtual Sysop door supports door.sys and that is the only
dropfile that is generated by mbsebbs and that is supported by most of the
doors. If you need another format you must use a converter to change the
format of the dropfile. </p>
<p> I use the fossil X00, I have it installed in C:\COMUNIC\X00 and
this door works for me correctly with these parameters, it is alos possible
that it works without X00 or that you can load another fossil. </p>
<p> Now create a link to rundoor.sh in /opt/mbse/bin called vsysop.
The name must be the same one that the name of the .bat file created in the
dos partition, but without the extension bat. </p>
<pre>ln -s /opt/mbse/bin/rundoor.sh /opt/mbse/bin/vsysop<br><br></pre>
Now we execute mbsetup and enter the menu setup to add an entrance like
this (It puts option 16 to Yes):
<pre>
8.3. EDIT MENU ITEM
1. Sel. key V
2. Type nr. 7 Run external program in shell
3. Opt. data /opt/mbse/bin/vsysop /N
1234567890123456789012345678901234567890123456789012345678901234
4. Display
5. Security 0 --------------------------------
6. Min. age 0
7. Max. lvl 0
8. Password &lt;null&gt; 13. No door.sys No
9. Credit 0 13. Y2K style No
10. Lo-colors Normal display color 14. Use Comport Yes
11. Hi-colors Bright display color 15. Run nosuid Yes
12. Autoexec No 16. No Prompt Yes
</pre>
And that is everything... </td>
</tr>
</tbody>
</table>
<a href="#_Doors"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="5.2">Q 5.2</a>
</td>
<td> Dosemu compile tips </td>
</tr>
<tr>
<td valign="Top">A 5.2</td>
<td>
<pre>Written by: Rick Van Ruth, sysop of&nbsp;Vampyre's Heaven BBS 3:640/954</pre>
Dosemu still exhibits some file locking behaviour and this needs to be overcome,
especially if you are running multinode door games. The following information
was supplied by Bob Newell of Chung Kuo BBS (telnet chungkuo.org) and I reiterate
it here.
<p> There is an issue in that Linux file locking does not map precisely
to DOS file locking. You need to patch DOSEMU and build a special version
to deal with this problem. Find the file "dosext/mfs/mfs.c" in your DOSEMU
source tree. Locate the following lines: </p>
<pre>case DENY_ANY:<br> fl.l_type = F_RDLCK;<br><br>Change the second line to <br> fl.l_type = !writing ? F_RDLCK : F_WRLCK;<br><br></pre>
and build a new version of DOSEMU.
<p> To solve a problem of slow screen painting, locate "base/async/int.c"
in your source tree. Locate </p>
<pre>case 0x2C:<br><br>and just below, comment out or delete the line<br><br>usleep(INT2F_IDLE_USECS);<br><br></pre>
and rebuild your DOSEMU.<br>
<br>
It is recommended to use both tips above as it will not harm any dos door
games.<br>
</td>
</tr>
</tbody>
</table>
<a href="#_Doors"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="5.3">Q 5.3</a>
</td>
<td> Setting up for InterBBS games. </td>
</tr>
<tr>
<td valign="Top">A 5.3</td>
<td>
<pre>Written by: Rick Van Ruth, sysop of&nbsp;Vampyre's Heaven BBS 3:640/954</pre>
There are 2 methods for providing InterBBS setup. If your system merely connects
to one host for your games packets you need only perform a few simple steps
to have it working. If your system is a Host for InterBBS games you will
also need to add a script to separate different packets for different downlink
systems.<br>
<br>
Common to Both Methods:<br>
With most BBS games you will need 2 directories in your dos filesystem area.
One for the inbound packets and one for netmail messages door games produce
to send outbound packets.
<p> The easiest way to solve this is by creating symlinks from your
MBSE directories into the directory where your dos doors live (c:\doors).
The 2 directories you wish to link are /opt/mbse/var/inbound and /opt/mbse/var/msgs
- link them into your dos directories doors directory with the same names
ie: "inbound" and "msgs". Now according to dosemu you will have a c:\doors\inbound
and a c:\doors\msgs. We do not actually use the "msgs" directory for anything
other than a place to tell games where to write its netmails to. These "netmails"
are subsequently deleted from the system, but the games need to be able to
write them there. </p>
<p>1. The Easy Way - Single Host System:<br>
</p>
<p>1A.First of all you will realise that door games running under
dosemu usually write files as owner root, chmod 0644. This is not good for
MBSE to transfer these files as it does not have permission to act on the
files. In order to force dosemu to write games files so that MBSE can act
upon them we need to alter /etc/sudoers and change the umask for root running
under sudo. To do this open /etc/sudoers (you must be root to edit this file)
and add the following line at the top of the file before the specifications:</p>
<p>Defaults &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; umask=0000</p>
<p>This will allow dosemu to write files chmod 0666 (read/write everybody)
and MBSE will be able to manipulate them.<br>
</p>
<p> For my example I will use the InterBBS dos door game called Barren
Realms Elite (BRE for short). </p>
<p> 1B. Install Bre in c:\doors\bre and setup the necessary files
for its execution as a dos door from MBSE as per the dos doors faq. </p>
<p> 1C. Tell Bre (in its BBS.CFG) that the path for inbound packets
is c:\doors\inbound and the netmail path is c:\doors\msgs Bre will now automatically
process all inbound packets it finds in the inbound directory for itself.
It needs no assistance as it merely searches for the correct filename in
the directory.</p>
<p> </p>
<p>1D. We need to link Bre's outbound path to our host nodes MBSE
mailbox for automatic transfer of games packets. First make sure you have
added an "outbox" for your uplink node in the nodes setup in MBSE - Section
7, Select Uplink, Menu 1, Section 2 "outbox dir". eg: if your uplink is 3:640/954
then MBSE will default to creating /opt/mbse/var/boxes/node3_640_954 as the
outbox (I will use this as an example). Note the flavour of your uplinks
node connection will apply to the outbox as well. Thus if that particular
node is set crashmail then anything you put in the outbox will also be sent
crashmail.</p>
<p>Next go to your Bre game directory. You will notice Bre has an
OUTBOUND directory, this is where it places all its game packets that are
to be sent to the uplink. We need to delete this directory and instead create
a symlink to the node outbox instead. If Bre is in c:\doors\bre then the
symlink command will be:</p>
<p>ln -s /opt/mbse/var/boxes/node3_640_954 /dos/c/doors/bre/OUTBOUND</p>
<p>Alter the above depending on where your linux path to your dos
is, also remember linux is case sensitive! Note you can also make as many
synlinks as you like to the nodes outbox, so if you have 2 or 3 different
games you send to that node you can link the outbox to each games outbound
directory. Also if you have different games to different host nodes just
link the game outbound directories to the outboxes of each node.</p>
<p>Thats it. The system will now process inbound and outbound packets
automatically. You will however need to delete the netmails in the msgs directory
- I have included this in the Door game maintenance section further on.</p>
<p> 2. The Hard Way - Multiple Host System</p>
<p>Follow steps 1A, 1B, 1C above, the change occurs for 1D (below).<br>
</p>
<p> 1D. We need a script to process the Bre outbound packets and
add them to MBSE's node outboxes path so they are sent. A script on how to
do this follows (with comments ). First remember to create your outboxes
for each node that you transfer games packets to. I will use 3:640/954 as
above and 1:123/456 for this example of 2 systems linked to the one Bre game.
</p>
<p> This script should be owned by user "mbse" and have the permissions
(chmod 755) -rwxr-xr-x. It is best kept in /opt/mbse/bin with your dos game
executing scripts. I call this script "dos_poll" </p>
<pre>------------------------------------------------------------------------<br>#!/usr/bin/perl -U<br>use File::Basename;<br>use File::Copy;<br><br><br># Define the variables for the outboxes for our links<br>$node1 = "/opt/mbse/var/boxes/node3_640_954";<br>$node2 = "/opt/mbse/var/boxes/node1_123_456";<br># Define the linux path to Bre's outbound directory<br>$bre_path = "/opt/mbse/dos/doors/bre/OUTBOUND";<br><br> opendir(DIR, "$bre_path") || die;<br> @dirlist = readdir(DIR);<br> closedir(DIR);<br><br> foreach $filename (@dirlist){<br> $brefile = "$bre_path/$filename";<br> ($filenameOnly, $pathname, $fileExtension) = fileparse($filename, '\..*');<br><br> if($filenameOnly eq "048b0201") {<br> move("$brefile","$node1"); <br> }<br> if($filenameOnly eq "048b0203") {<br> move("$brefile","$node2"); <br> }<br> }<br><br># '048b0201' is the packet name Bre creates. You can find out what<br># your packet name is by running BRE PLANETARY and then checking inside<br># the Bre OUTBOUND directory - note no ext on name. You should also check<br># your nodes dat for which is which 048b0201 means from system 2 to system 1<br># so you would be system 2 in the nodes dat and 1 would be 3:640/954<br># 048b0203 is obviously to system 3 in the nodes dat - 1:/123/456 in our<br># example here<br><br>------------------------------------------------------------------------<br><br>Thats it. You can run this 'dos_poll' script from the maintenance scripts described below.<br></pre>
<p> </p>
</td>
</tr>
</tbody>
</table>
<a href="#_Doors"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p>
<table width="100%">
<tbody>
<tr>
<td width="50" valign="Top"><a name="5.4">Q 5.4</a>
</td>
<td> Door Maintenance. </td>
</tr>
<tr>
<td valign="Top">A 5.4</td>
<td>
<pre>Written by: Rick Van Ruth, sysop of&nbsp;Vampyre's Heaven BBS 3:640/954</pre>
Ok, so you can setup doors, run inbound and outbound for interbbs games. So
how do you do maintenance? <br>
Again by scripts. Again I will use BRE as an example. First I create a maintenance
batch file in my C: root directory. I have called it maint.bat and for the
bre game it looks like this:
<pre>
cd \doors\bre
BRE INBOUND
BRE SCORES
BRE REQUEST
BRE PLANETARY
exitemu
</pre>
if you are familiar with Bre you will know this to be a standard sort of
maintenance except for the "exitemu" at the end. That is there because we
are going to use a script to start dosemu and call the maint.bat - so afterwards
we need it to exit dosemu. <br>
Now a maintenance script to be called from your cron or whatever else you
are using to execute events on your system. I call this script "dos_maint"
and it also lives in /opt/mbse/bin<br>
<pre>
#!/bin/sh
#
COMMANDO="\" maint \r\""
/usr/bin/sudo dosemu -dumb -E dir &gt; /opt/mbse/log/dos.log -quiet -I "`echo keystroke $COMMANDO`"<br><br>/bin/rm /opt/mbse/var/msgs/*.msg<br><br>#/opt/mbse/bin/dos_poll # Uncomment this line&nbsp;if you are using the Multiple host script<br>--------------------------------------------------------------------------------------------------
</pre>
You will notice this script starts dosemu and calls maint.bat, and then when
its finished there it deletes all those games netmails and if you run the
script for multiple hosts for your games it can call that as well. Please
note the second line is all ONE line, it has most probably wrapped here.
<p> You will notice that the script calls dosemu and not dosemu.bin,
this is because we need to tell dosemu to open a dumb terminal and not display
to a console or screen. By use of the redirection we redirect the normal console
output to a file, here I have used /opt/mbse/log/dos.log as that is where
all of MBSE's other logs reside. </p>
<p> Once "dos_maint" is run via the cron it will run maintenance
on your dos doors, process inbound/outbound interBBS game packets and have
your outbound packets ready to send. Thats about all there is to do :)</p>
<p>Note: You can make variants on these scripts for running daily
maintenance or just packet processing at certain times of day. They are just
variations on the information above, but if you have questions, contact me!
<br>
</p>
<p> Have fun! </p>
<p> </p>
</td>
</tr>
</tbody>
</table>
<a href="#_Doors"><img src="images/hand.up.gif" border="0" alt="Up">
</a>
</p>
<p> <!-- Empty reply block for cut & paste:
<table width=100%>
<tr><td width=50 valign=top><a name="4.1">Q 4.1</a></td><td>
Question?
</td></tr>
<tr><td valign=top>A 4.1</td><td>
Answer
</td></tr></table>
<a href='#_Doors'><img src='images/hand.up.gif' border=0 alt='Up'></a>
<p>
-->
</p>
</blockquote>
</body>
</html>