========================================================================
--------------------------- S h a r e T h e N e t ----------------------
========================================================================
Version 1.0 Copyright (C) 1998 SoftwareSuperStore.com, LLC

Introduction
------------
Welcome to the free version of ShareTheNet!  ShareTheNet enables you to
build a single diskette distribution of Linux that, when used to boot a
machine, will act as an Internet gateway for your entire network.

ShareTheNet...
... turns a cheap PC (386!) into an Internet Gateway
... lets your MSWindows boxes, Macs, Linux and other Unix boxes share
    the same Internet connection
... does not require a special Internet connection.  A standard ($19.95)
    connection is all you need.
... does not require that you change your applications.  It's not a SOCKS
    server -- it's a real gateway.  All your machines think they have a
    real connection to the Internet
... acts as a firewall for your network.  Connections get out, but they
    don't get in!
... is a Internet Gateway, network Name Server, and Firewall all rolled
    into one free package.  What could be better than that!?

Contents
--------
(NOTE: You can go to these sections by searching for the section name)
- The Difference Between the For Free and For Pay Versions
- You May Want the Linux Router Project
- Configuring your Kernel
- Building a ShareTheNet diskette

The Difference Between the For Free and For Pay Versions
--------------------------------------------------------
ShareTheNet comes in two flavors,  the for free version you're looking
at, and a for pay version where you get a pre-built and tested kernel
and file system and a Windows 95 administration facility that enables
you to create a ShareTheNet boot diskette quickly and easily.  Before
you go too far with this free version, you might consider the for pay
version (if you have a Win95 box).  It's reasonably priced, and you'll
be up and running in minutes instead of hours.

You May Want the Linux Router Project
-------------------------------------
ShareTheNet was designed specifically to be an Internet gateway.  It's
very good at that, but not too good at much else.  If you're looking for
a more general "Linux on a diskette" solution, you should check out the
Linux Router Project at: http://www.psychosis.com/linux-router/.

Configuring your Kernel
-----------------------
ShareTheNet has been tested with the 2.0.33 kernel with the following
configuration options set.  Your mileage may vary with a
different kernel version and/or options.  Unless noted here, the
configuration option is off "[ ]".

Note: I use the 'make menuconfig' configuration utility which is 
considerably nicer than just make config.


Code maturity level options
	[*] Prompt for development and/or incomplete code/drivers
Loadable module support
	[*] Enable loadable module support
General setup
	[*] Kernel math emulation (you may not need this)
	[*] Networking support
	[*] PCI bios support
	<*> Kernel support for ELF binaries
	[*] Compile kernel as ELF
	(386) Processor type (386 is the lowest common denomonator)
Floppy, IDE, and other block devices
	<*> Normal floppy disk support
	<*> RAM disk support
	[*] 	Initial RAM disk (initrd) support
	(NOTE the conspicuous absence of IDE support.  There's no way
	ShareTheNet can damage your hard drive.  It can't even see it!)
Networking options
	(NOTE You will not see some of these options unless you have
	installed the PPTP patch.  This should not concern you unless
	you want a Windows NT RAS client to be able to connect to a RAS
	server on the Internet through your ShareTheNet box)
	[*] Network firewalls
	[*] TCP/IP networking
	[*] IP: forwarding/gatewaying
	[*] IP: firewalling
	[*] IP: masquerading
	[*] IP: ipautofw masq support
	[*] IP: MS PPTP client masq support (EXPERIMENTAL)
	[*] IP: ICMP masquerading
	[*] IP: transparent proxy support (EXPERIMENTAL)
	[*] IP: always defragment
	[*] IP: optimize as router not host
	[*] IP: Drop source routed frames
Network device support
	[*] Network device support
	<*> Dummy net driver support
	<*> EQL (serial line load balancing) support   
	<*> PPP (point-to-point) support   
	<*> SLIP (serial line) support
	[*]  CSLIP compressed headers
	[*] Ethernet (10 or 100Mbit
	(NOTE The rest is up to you to figure out -- it's your hardware.
	Remember, there's a whole lot more adapters if you choose Other
        ISA Cards.)
	(NOTE You should create modules for the network devices.  There's
	a good possibility you'll have to tell the kernel some information
	about your device, such as IRQ and base address.  Also,  if you
	find a file called /usr/src/linux/modules/8390.o, include it
        too -- a large percentage of the network drivers rely on this module.
ISDN subsystem
	(NOTE This part is up to you to figure out -- it's your hardware)
Filesystems
	<*> Minix
	<*> DOS FAT fs support
	<*> MSDOS fs support
	[*] /proc filesystem support
Character devices
	<*> Standard/generic serial support
	(NOTE: If you have some kind of different serial card for your
	modem, tell the kernel about it here.)

Now that you've configured your kernel, you must do the good old:
# make clean ; make dep

Once this completes, do a:
make bzImage && make modules

DANGER WILL ROBINSON!!!!!!
--------------------------
Note: You do _not_ want to install this kernel on your regular linux machine.
Let me repeat that: DO NOT DO A make lilo OR ANYTHING LIKE THAT!!!!  You
will not be able to boot your machine without a hard disk driver (IDE/SCSI)

Once you've built this kernel, it will be copied to the diskette you build
by the mkstn script.  The mkstn script assumes /usr/src/linux, change the
script if this is not the case.

Building a ShareTheNet diskette
-------------------------------
There are two ways to build a ShareTheNet diskette.
1) Run the for-pay Windows95 version, you'll be done in 10 minutes.  Yes
   that was a cheap commertial plug.
2) Follow the following instuctions to build a free version.

How to do it
------------
- Ok, so you're a cheepskate.  These are the steps to building STN for free.
- First, let's get your machines straight.  You need three (possibly 2 if
  you dual-boot MSx and Linux).
  o Linux box       This is the machine that you build the ShareTheNet
                    diskette with.  It does not change in any way (unless
                    you need to add kernel support for FAT and MSDOS
                    file systems.)
  o MSx             A Microsoft machine capable of building a bootable
                    DOS Diskette.  As far as I know, you can't build a
                    bootable DOS diskette with Microsoft Windows NT.
                    This machine does nothing more than format a diskette,
                    so it does not change in any way.
  o Gateway Server  This is the inexpensive machine (386 or so) that will
                    act as the gateway to the Internet for your entire
                    network.  You can use a top-of-the-line machine if you
                    want, but it would be a waste of resources.
                    Now for the good part, you don't have to
                    change this machine in any way either!  We don't even
                    compile in the IDE or SCSI device drivers, so there is
                    no way ShareTheNet can change the hard drive.  So when
                    you're not on the net, this box can do something else.
                    We've used STN on a Gateway Server with as little as
                    8 megs.  It may run with less, but we havn't tried it.
                    Any feedback before July, 1998 would be appreciated.
- Build a special kernel that contains just enough drivers to make a floppy
  system work.  Search this document for "Configuring your kernel" for
  complete instructions.
- Untar the ShareTheNet ditribution tarball.  Chances are you've already
  done that if you're reading this.
- Cd to the ShareTheNet directory
- Copy all of the sample.* files to the name w/o the "sample." part in the
  name.  For example, you'll need to copy "sample.rc" to "rc".
- Edit each of these files.  You'll need to change them to fit your local
  configuration.  Each file is documented and has example entries to help
  you.  Make sure to delete the comments at the top.
- Copy each of the drivers named in your rc script to the stn directory
  from the /usr/src/linux/modules directory.
- Go to your DOS or Windows95 machine (you _do_ have one around here
  somewhere don't you?), and create a bootable dos diskette.  The earlier
  the version of DOS the better, because we want the DOS part to be as
  small as possible.  When I created a STN diskette using the Win95 boot
  files and the NE2000 drivers, I only had 12k left on the diskette when I
  was done!
- Put the bootable diskette into your Linux system.  (Did I mention that
  you have to have FAT and MSDOS filesystems built in to your kernel?)
- Run ./mkstn.  Behold as it magically builds the ShareTheNet boot diskette.
- Put the STN diskette into the Gateway Server and reboot.  Hopefully the
  Gateway Server can boot from floppy, if it cannot, now would be a good time
  to change the BIOS settings.  Hit the DEL key, quick! :)
- Cross your fingers.
- If it works, you'll hear it dial out to the Internet soon after it finishes
  booting.  When it's connected, you will be able to set up any client
  machines to use it as the gateway.  Telling you how to set up your client
  machines is beyond the scope of this document.  If you want some pointers,
  download the for-pay version (no, you don't have to pay for it), it
  contains a MS .hlp file that has some good instructions on setting up
  clients and troubleshooting tips.  You don't have a Windows95 box anywhere
  you say?  For the True Believers, I'll try to get the Win95 help file
  contents on the Net (cart before the horse, eh?)
- If it doesn't work, you can hook a monitor and keyboard up to the Gateway
  Server and look at the error messages.  Try ALT F1, ALT F2, and ALT F3 --
  they'll each have separate bits of information.
