Installation instructions for eftp4linux

Quick Install:

eftp4linux needs a 2.2.x kernel which supports some special features
and recent isdn4k-utils.

Provided that your distribution is delivered with such a 2.2.x kernel
pre-installed, you might be able to use the basic functionality of
the eftp4linux package without any further modifications to your system.
You can test this by running the shell script by changing to the
"scripts"-sub-directory and typing

sh check_system

On success, you can directly go to the "This eftp4linux package"
section and proceed. Otherwise, you need to upgrade your system.

(Presence of the x25_utils packages, the isdnloop driver and the
loopctrl binary is not checked by the script. But most features
of eftp4linux will work without them. You can upgrade later after
your first success events with eftp4linux).


Kernel
======

eftp4linux needs a 2.2.x kernel with X.25 PLP support and
"X.25 on top of isdn" support.

As early 2.2.x kernels contain outdated isdn code, it is recommended
to use kernel 2.2.12 or newer.

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 [b]zImage modules
make modules_install

"make modules_install" is recommended after compilation.

If your Linux-Distribution comes with a 2.2.x kernel pre-installed, you can
additionally do a `make install'. If not, you still could do so,
but be aware that this might possibly overwrite your old 2.0.36+
kernel which might cause some problems with other parts of your
Linux distribution. Therefor, with an old linux distribution, it
recommended to omit `make install' for the first tests. 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 Linux 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 can be used to replace your kernel's isdn
			subsystem whith a more recent versions.

			As Kernels 2.2.12 and 2.3.15 now contain
			up-to-date isdn versions, this should no longer
			be necessary.
	

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 at least isdn4k-utils-3.0beta2.tar.gz or newer.

  The utilities must be compiled against the 2.2.x
  kernel headers. The location of that kernel can be set from the
  isdn4k-utils configuration menu.
 
  The recent isdn4k-utils package is availabe from ftp.isdn4linux.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 2.2 kernel's include/linux directory.


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

Just untar the package and type 'make config; make' in the top
level directory.

It is now also possible (and probably the least troublesome method)
to compile eftp4linux as part of the isdn4k-utils package. Do a 
Do a 'make config' in the isdn4k-utils top level directors. You need
to enable CONFIG_EXPERIMENTAL in order to make the eurofile submenu
visible. (Say 'y' to 'Prompt for development and/or incomplete code'
in the 'Code maturity level options' menu). People who install
eftp4linux for the first time can safely say 'y' to all eurofile
config options. After configuration, do a 'make';

(Exceptions: people needing to be paranoid about security might
say 'n' to 'install eftp suid root'. People who already installed
a former version of eftp4linux and have installed modified versions
of eftp4linux config files might choose to disable overwriting
existing configuration files).

After that, do a 'make install'. If you have configured eftp4linux
by means of the isdn4k-utils config menu and said 'y' to all options,
eftp4linux should be ready for use now. You might skip the remaining
part of this chapter if you are not interested in details and only
come back here if problems are observed later.

If you compile eftp4linux stand-alone, and you want to use
non-standard default locations of certain files, you can edit
the configure script and change the values of the CONFIG_* variables
before.

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
CONFIG_I4LCONFDIR to an alternative directory prior to compilation.
(this is usually done automatically if you configure eftp4linuyx my
means of the isdn4k-utils config menu).

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 by 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 Eurofile applications
==================================

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

If you needed to re-compile your kernel and 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. (But be aware: MODPATH is
only acknoledged by insmod. If you insert modules on your own by modprobe,
MODPATH has no effect).

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

People who have said 'y' to the the 'install a default eft.conf file'
menu entry are done now.

People who have choosen not to install the eft.conf file should have a
look at the the eft.conf as present in the examples directory,
compare it with a their already installed version in the
I4LCONFDIR (probably /etc/isdn) and decide whether their
own eft.conf file needs to be edited.


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

There is a schell script present in the scripts directory to start
the eurofile daemon.

Start the daemon as root using the script as present in the "scripts"-
directory (or in the sysv init directory if the script is installed)
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


The eftd.sh script locates the eftd binary (as well as all other
utility programs) from the stardard PATH environment variable.
Thus, make sure that eftd's installation directory (as configured
in the isdn4k-utils config menu) is in your PATH environment variable.
If you have not done a 'make install' yet and want to test eftd
before, just prepend the source directory of eftd to the PATH
environment variable.

People who want to start eftd at boot time from sysvinit and have
installed eftd at an unusual location also need to make sure that
the PATH as seen by sysvinit contains the appropriate directory

If you have multiple utility versions installed, make sure that the 
utility found first is the one just compiled as above (against the
[patched] 2.2 kernel header files). 



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. Non-root users can also use
eftp if it is installed suid root as there is special support for
running eftp suid root now. Please refer to the eftp documentation
in the doc directory for details about some security related issues.

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 line
"EFTD_WITH_LOOP=y" in /etc/isdn/eft.conf before you start the
eftd.sh script. 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
program from the x25_utils installed and you also must have compiled and
installed the isdnloop driver kernel module and the loopctrl utility.
