Installation instructions for eftp4linux

First, you need to compile 2.2.x kernel with x25 support enabled.
You also need a recent version of the isdn4k-utils compiled against
2.2.x kernel header files and the x25 utility programmes.


Kernel
======

You need a recent kernel 2.2.x kernel that supports some special
features.  2.0.x kernels won't work. When configuring the kernel for
compilation, (i.e. by `make menuconfig') enable the following:


Code maturity level options  --->
	Enable	"Prompt for development and/or incomplete
		code/drivers" (CONFIG_EXPERIMENTAL)  [select "y"]

Networking options  --->  
	Enable  "CCITT X.25 Packet Layer" [select "m" or "y"]

	(if this menu entry is missing, you probably havn't
	enabled the experimental features above).

ISDN subsystem  ---> 
	configure this as usual and additionally enable

		"X.25 PLP on top of ISDN"      [select "y"]

	(if this menu entry is missing, you probably havn't
	enabled the X25 PLP support from the networking options).

	Further, beside your standard isdn HL drivers, also enable
	the isdnloop driver (preferably as a module). 

Set all other options as usual and then compile your kernel, i.e.

make dep
make zImage modules
make modules_install

"make modules_install" is recommended after compilation.

You can additionally do a `make install', but be aware that this might
possibly overwrite your old 2.0.36+ kernel. Without `make install' you will
need to add an additional entry to your /etc/lilo.conf file for
booting your 2.2.x kernel as an alternative to 2.0.x. 

It is possible (but not necessary) to apply additional
patches to the kernel before compilation:

ix25-2.1.128.patch	fixes a bug in the Linus X.25 PLP layer. This is
			only necessary to communicate with certain
			buggy eft clients (CSD isdn toolbox,
			maybe also some RVS clients). If you want to
			communicate with buggy clients, also
			enable the "#define X25_PEER_IS_BUGGY"
			at the very end of include/net/x25.h
			before compiling the kernel.

isdn4linux CVS snapshot has been reported to work more reliably with
			2.2.x-kernels. It also provides for a
			feature useful for eftd to reliably determine
			the peer's isdn No.
			
			Kernels 2.3.4 and newer now contain the new
			isdn4linux-code. You can try this (but be
			aware that 2.3.x are the non-stable kernels).
	

isdn4k-utils
============

  You need a recent isdnctrl utility (and maybe the loopctrl binary if
  you want to test locally with the isdnloop driver).
  You need isdn4k-utils-3.0beta2.tar.gz or newer.

  The utilities must be compiled against the (patched) 2.2.x
  kernel headers. The location of that kernel can be set from the
  isdn4k-utils configuration menu.
 
  The 3.0beta2 package is availabe from ftp.franken.de


x25_utils
=========

The x25_utils are no longer strictly necessary for basic operation of
the eftp4linux packages. But some sections in the script (those
releted to local testing with the isdnloop driver and debugging)
might require the x25_route and the x25_trace utility. Thus, it
is recommended to install the x25_utils package. Otherwise, the
corresponding features (in particular local testing with the isdnloop
driver) of the eftd.sh script cannot be used.

The package should be available from the same site as this eftp4linux
packages or from ftp.hes.iki.fi:/pub/ham/linux/ax25/    (don't confuse
the x25-utils with the ax25-utils, you only need the x25-utils).

Make sure that the compiler/preprocessor finds the include/linux/x25.h
file. Either add some flags to the makefile or make /usr/src/linux a
symbolic link pointing to your pre2.2 kernel's include/linux directory.


This eftp4linux package
=======================

Just untar the package and type 'make' in the top level makefile.

This should automatically run a configure script. If your new isdnctrl
is installed at an unsusual location, you might want to edit the
./configure script before. The locations searched for are
/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/bin:/bin.
If you have multiple isdnctrl versions installed, make sure that the 
utility found first is the one just compiled as above (against the
(patched) 2.2pre kernel header files).

The directory where the isdn configuration files are located is
assumed to be /etc/isdn. If this is not true for your installation,
either create that directory or set the environment variable
I4LCONFDIR to an alternative directory.

As I could not test with all compiler/libc/distribution combinations,
maybe I missed something. If configuration should fail or some files
are not found during compilation, please tell me.

As of eftp4linux-0.0.7, command line editing in eftp by means of
the GNU readline library is enabled on default. For command
line editing in eftp to work, you need a sufficiently recent
GNU readline library that supports the "alternative interface".
You also need the ncurses library. If the approriate libraries are
not found, readline support will be automatically disabled.

After successful compilation, you should be able to start
the eurofile client or server.

If you need to fix something that might influence the configuration
process, do a 'make distclean' before recompiling.



Starting the the Eurofile applications
======================================

General preparation
===================

If you have omitted the "make modules_install" after your kernel
compilation, the default eft scripts (and probably the init scripts
of your linux distribution as well) won't be able to load the modules
corresponding to your (patched) kernel version. In that case, either
modify all scripts to load the proper modules by absolute pathname
or set the enviromnemnt variable MODPATH to the "modules" directory
of your developer kernel's source tree.

Boot your linux 2.2.x kernel. The isdn subsystem should be
set up to a state where a HL driver capable of l2_prot x75i is
working. If your boot sequence ends up in a state where you can set up
connections on the /dev/ttyI* devices, then you are already done with this.
After that, you need to insmod the x25 module with

insmod x25
or
modprobe x25

Copy the file eft.conf present in the examples directory to the
I4LCONFDIR (probably /etc/isdn) and edit it in order to configure
the MSNs to be used by your EUROFILE client and server.


Starting the Eurofile server
============================

Start the daemon as root by the script eftd.sh as present in the
"scripts"-directory by typing

eftd.sh start

After that, you should be able to connect with an eft client to your
linux server via isdn. If your client can only access upper or only
lower case file names (or has other interworking problems), try
prepending a '+' to the user name when logging in. 

You can stop EUROFILE service again by

eftd.sh stop


Starting the Eurofile client
============================


To start the client, type

eftp -i ISDN_NO -u USER

where ISDN_NO specifies the isdn number of the remote server and USER
is the login name on the remote server.

root priviliges are needed for doing so. If this is undesireable,
there is also support for running eftp suid root now. Refer to the
eftp documentation in the doc directory for details before doing so.

It is also possible to test eftp and eftd locally with the isdnloop
driver module (no paying isdn connections involved, no root
permissions for eftp necessary). To do so, uncomment the
"EFTD_WITH_LOOP=y" in eftd.sh before you start it (or put such a
line in your /etc/isdn/eft.conf file). Then, simply type

eftp -x 1 -u USER

where USER is your unix login name on your machine and enter your login
password when prompted. For this to work, you need the x25_route
programme from the x25_utils installed and you also must have compiled and
installed the isdnloop driver kernel module.


There is also an old script "eftp.sh" (this needs to be started from the
root user, but the script does a 'cd /tmp' and changes the uid before
the client is executed)

eftp.sh ISDN_NUMBER [USER/PASSWD]

in order to start an EUROFILE client and connect to a remote eft server.
Note that typing the password on the command line is not safe if
your system is shared with other users who might spoof your password
with the ps command. It also leaves traces in your command history file.

You can also connect to your own server on top of the isdnloop driver
(no paying isdn connection involved) by

eftp.sh localhost [USER/PASSWD]




