How to install Samba on your Amiga?
===================================
Before we discuss the details, first a word of warning: Samba is a very
complex package and so are the many TCP/IP stacks available for the Amiga.
If at first your attempts to install the product do not seem to work, try
again. If it does not work the second time and you are certain that you have
followed and understood every step outlined in this document, ask someone
else for advice. If possible, do not ask the author of this port for advice
since he does not understand every little detail of Samba, the TCP/IP stack
you are using and in particular how Samba interacts with the rest of your
network.

I'm not joking. It can go wrong and nobody will be able to tell you why it
went wrong.


1. Requirements
---------------
This port of Samba 2.0.0 requires an AmiTCP V4 compatible TCP/IP stack. Among
these are the original commercial "AmiTCP 4.x" product, the "AmiTCP Genesis"
stack that ships as part of the "NetConnect2" product and the "Miami" and
"Miami Deluxe" products. What will not work are the free "AmiTCP 3.x" product
or the "INet-225" product. You'll know that Samba does not support your
TCP/IP stack if it complains about being unable to open "bsdsocket.library V4",
etc.

This port has no special CPU type requirements. It should work on any Amiga,
provided it is running AmigaOS 2.04 or higher.

The next thing this port requires is a lot of memory. If you took a quick
look at the programs this package consists of you will know why: some of
these programs are almost 1 MByte in size. Don't expect this to run on a
machine with less than 4 MBytes of memory installed.

Due to how these Samba/Windows networks are usually set up, your computer
should sport an Ethernet card, which is properly set up and not suffering
from defects such as missing terminators, wrong cabling, wrong connections,
etc. You may be able to run Samba via your Amiga's serial port, but honestly,
it would be faster to copy the data you wish to transfer with a floppy disk.


2. Preparations
---------------
The following text makes a few assumptions on the configuration of your
network which may be inappropriate for your system. However, they
considerably simplify the instructions. As said before, this is a complex
task and we can but only touch the subject. If you need more information, it
is recommended that you look at the documentation that came with the package
(see the "docs" drawer) or the original Samba distribution package, as
available from www.samba.org (and its mirror sites).

You must have chosen a proper IP address for your Amiga and all the other
machines in the network you want to exchange data with. Do not underestimate
this. The weirdest and most difficult to trace errors can result from an
improper choice of IP addresses. For example, while 1.2.3.4 and 1.2.3.5 may
have worked fine for you so far, they won't continue to work with Samba. If
you ended up with such a choice of IP addresses or want to start from scratch
with a proper setup, I would recommend that you start with addresses in the
range from 192.168.0.1 to 192.168.0.126 which make good sense with a local
network. Note that every machine on the network must have a unique address.
If you are using a different address for a good reason and are confident that
it is a valid class A, B or C address, then you're on your own. You should
know what you are doing. If you haven't got any idea what the term "class A
address" means in the first place, you should either refer to a good book on
this subject or stick with the 192.168.0.x addresses suggested before.

Now power up one of the machines on the network you want to exchange data
with. If that's a computer running one or another incarnation of Microsoft
Windows you may have to make sure that the machine is properly connected to
the network and has the necessary TCP/IP, SMB and file sharing software
installed. Exactly how this is accomplished is beyond the scope of this
document. Really a lot can go wrong here. To keep things simple, the
following document will assume that you have already configured such a system
and that it's up and running properly.

The next thing to do is to perform a simple test to find out whether all the
components of the network are working properly. This tests both the cabling,
the choice of IP addresses and whether the TCP/IP stack is working. For this
test to work out you must know at least one other IP address in your network
that corresponds to a TCP/IP stack. Yes, we are going to "ping" that address.
It's as simple as that. On the Amiga, start your TCP/IP stack and enter "ping
<address>", then press return; you must replace the <address> with the IP
address of the other machine on the network whose address you know. Note to
users of the Miami TCP/IP stack: use "MiamiPing" in place of "ping". The
"ping" command will send some data to the other machine and wait for it to
come back. After a few seconds you'll see a statistic which shows how much of
the data sent came back and how much got lost on the way. If that number
shown is "100%" then the connection is working properly. If the number is
"0%" then you have a problem. If the number is somewhere in between 0% and
100% then your networking connections are somewhat flaky. They may still
work, but it's not really a good sign to have dropouts like these. If it
doesn't work, you're on your own again.

Now we are going to install the package and add to your "S:User-Startup"
file. Let's say we are going to install the package on your "Work:"
partition. Create a drawer on that partition by the name of "Samba", such as
by entering the following:

   MakeDir Work:Samba

Next, copy the contents of this package to it. Assuming that the package is
stored in the "RAM:amiga_samba_2.0.0" drawer, you would enter the following:

   Copy RAM:amiga_samba_2.0.0/install Work:Samba all clone

Now we need to add a few lines to your "S:User-Startup" file. Open that file
with a text editor, such as Ed, and add the following lines to the end of the
file:

   Assign Samba: Work:Samba
   Path Samba:bin add

Almost finished. Now we need to make a few final changes to the Samba
configuration file. The configuration file in question is found in the drawer
"Work:Samba/lib", as created above. Again, start a text editor and open the
file "Work:Samba/lib/smb.conf". Of particular interest are the lines which
set the "workgroup" and "domain master" options. The work group option must
be set to the name of the work group you want your Amiga to be in on the
network. For the sake of simplicity, set this name to the same as on your
Windows machine. The "domain master" option can cause trouble if your network
already has a domain controller set. This is commonly the case with company
networks, in which case you should set this option to "no", or you will cause
trouble for your colleagues. If you set up a network at home for your own use
and are pretty confident that you don't have a domain controller in it yet,
leave this option set to "yes". In any case, save the "smb.conf" file back
now and reboot your machine.

NOTE: The sample "smb.conf" file included in this package was created for
      simple, local network access and therefore is not at all secure.
      It will allow any user on the network to log into your machine and
      read, write, delete, modify files. If this is just what you wanted,
      you'll be fine. If this is not all what you had in mind, you may
      want to read up on the subject of "smb.conf" in the accompanying
      documentation.


3. Configuring AmiTCP 4.x
-------------------------
A few new lines need to be added to three files of the AmiTCP package. You
should use a text editor to make the changes. The following files will need
to be updated:

   AmiTCP:db/services

      The following lines need to be added:

         netbios-ns 137/udp
         netbios-dgm 138/udp
         netbios-ssn 139/tcp
         swat 901/tcp

   AmiTCP:db/inetd.conf

      The following lines need to be added:

         netbios-ssn stream tcp nowait root Samba:bin/smbd smbd
         netbios-ns dgram udp wait root Samba:bin/nmbd nmbd
         swat stream tcp nowait root Samba:bin/swat swat -a

   AmiTCP:db/passwd

      The following line needs to be added (NOTE: the
      <ID> in the follow line must be replaced by a
      number that does not appear in the "passwd"
      file yet):

         pcguest||<ID>|100|PC Guest|SYS:|NewShell

And that's all there is to be done.


4. Configuring Miami and Miami Deluxe
-------------------------------------
We need to add a few entries to the Miami database, so click on the button
labeled "Database" to make the "database" section visible. Next, click on the
button that appears at the top of the window until it reads "services". Click
on the "Add" button and enter the following:

       Name: netbios-ns
         ID: 137
   Protocol: udp

Repeat this procedure for the following entries:

       Name: netbios-dgm
         ID: 138
   Protocol: udp

       Name: netbios-ssn
         ID: 139
   Protocol: tcp

       Name: swat
         ID: 901
   Protocol: tcp

Click on the button that read "services" until it reads "InetD", then click
on the "Add" button and enter the following:

    Service: netbios-ssn
     Socket: stream
   Protocol: tcp
       Wait: nowait
       User: root
     Server: Samba:bin/smbd
       Name: smbd
       Args: -- Leave this empty --

Repeat this procedure for the following entries:

    Service: netbios-ns
     Socket: dgram
   Protocol: udp
       Wait: wait
       User: root
     Server: Samba:bin/nmbd
       Name: nmbd
       Args: -- Leave this empty --

    Service: swat
     Socket: stream
   Protocol: tcp
       Wait: nowait
       User: root
     Server: Samba:bin/swat
       Name: swat
       Args: -a

Click on the button that read "InetD" until it reads "users", then click on
the "Add" button and enter the following:

   User name: pcguest
     User id: <ID>
    Group id: 100
   Real name: PC Guest
    Home dir: SYS:
       Shell: NewShell

In this database, enter a number instead of <ID> that is not found among the
other entries currently visible.

And that's all there is to be done. You should save your configuration now.


5. Configuring AmiTCP Genesis
-----------------------------
In theory, you could use the same steps to configure "AmiTCP Genesis" as with
"AmiTCP 4.x". But since "AmiTCP Genesis" has a graphical user interface for
the configuration section, we'll use that instead.

Begin by starting the "GenesisPrefs" program. When it has started, click on
the "Database" label in the list on the left hand side of the window. Next,
click on the button at the top of the window which appears near its the right
hand side until it reads "Services". Now click on the "Add" button and enter
the following data:

       Name: netbios-ns
       Port: 137
   Protocol: udp (i.e. in the list with the names "ip", "icmp", etc.
             in it, click on the entry by the name of "udp").

Repeat this procedure for the following entries:

       Name: netbios-dgm
       Port: 138
   Protocol: udp (i.e. in the list with the names "ip", "icmp", etc.
             in it, click on the entry by the name of "udp").

       Name: netbios-ssn
       Port: 139
   Protocol: tcp (i.e. in the list with the names "ip", "icmp", etc.
             in it, click on the entry by the name of "tcp").

       Name: swat
       Port: 901
   Protocol: tcp (i.e. in the list with the names "ip", "icmp", etc.
             in it, click on the entry by the name of "tcp").

Click on the button that read "Services" until it reads "Inetd", then click
on the "Add" button and enter the following:

    Service: netbios-ssn
    Enabled: Yes (i.e. there must be a checkmark in this field)
       User: root
     Server: Samba:bin/smbd
   CLI name: smbd
       Args: -- Leave this empty --
   Protocol: tcp (i.e. in the list with the names "ip", "icmp", etc.
             in it, click on the entry by the name of "tcp").
     Socket: stream (i.e. below the list with the names "ip", "icmp",
             etc. in it, there is a button which you should press
             until it reads "stream").
       Wait: nowait (i.e. right above the "Cancel" gadget there is a
             button which you should press until it reads "nowait").

Repeat this procedure for the following entries:

    Service: netbios-ns
    Enabled: Yes (i.e. there must be a checkmark in this field)
       User: root
     Server: Samba:bin/nmbd
   CLI name: nmbd
       Args: -- Leave this empty --
   Protocol: udp (i.e. in the list with the names "ip", "icmp", etc.
             in it, click on the entry by the name of "udp").
     Socket: dgram (i.e. below the list with the names "ip", "icmp",
             etc. in it, there is a button which you should press
             until it reads "dgram").
       Wait: wait (i.e. right above the "Cancel" gadget there is a
             button which you should press until it reads "wait").

    Service: swat
    Enabled: Yes (i.e. there must be a checkmark in this field)
       User: root
     Server: Samba:bin/swat
   CLI name: swat
       Args: -a
   Protocol: tcp (i.e. in the list with the names "ip", "icmp", etc.
             in it, click on the entry by the name of "tcp").
     Socket: stream (i.e. below the list with the names "ip", "icmp",
             etc. in it, there is a button which you should press
             until it reads "stream").
       Wait: nowait (i.e. right above the "Cancel" gadget there is a
             button which you should press until it reads "nowait").

click on the "User" label in the list on the left hand side of the window.
Next, click on the button "New", then enter the following:

      User name: pcguest
      Real Name: PC Guest
       Home Dir: SYS:
          Shell: NewShell
   Disable User: No (i.e. there must not be a checkmark in this field)
        User ID: <ID>
       Group ID: 100

In this database, enter a number instead of <ID> that is not found among the
other entries currently visible in the user list. When you have entered this
data, click on the "Ok" button.

That's all there is to be done. Don't forget to save these settings.


6. Conclusion
-------------
I hope that this brief description is helpful, but as said before, it cannot
possibly cover all the details of getting Samba up and running on your Amiga.
Feel free to comment on the text and to make additions. Here is how to reach
me:

   Postal address: Olaf Barthel
                   Brabeckstr. 35
                   30559 Hannover

                   Federal Republic of Germany

   e-mail address: olsen@sourcery.han.de

Again, don't rely upon my help to get Samba up and running on your machine. I
may be just as helpless as you are.
