SeaIO for Linux 2.2.4
2026

-------------------------------------------------------------------------------
Licensing Information
-------------------------------------------------------------------------------

This package contains two components - a Linux kernel-mode device driver and 
an Application Programmer's Interface.  To provide the most flexible licensing 
scheme, the driver is released under the GNU General Public License version 2 
while the API is released under the GNU Lesser General Public License version 3.
Copies of each license are located in the dox/ directory.

Modification of the configuration scripts, makefiles, or installation tools
contained in this package to support a specific platform does not constitue
creating a modified copy or a derived work.


-------------------------------------------------------------------------------
Install
-------------------------------------------------------------------------------

This suite of software has been tested on Debian GNU/Linux; if you intend to 
compile it on other platforms, please check the Makefile parameters described
below to ensure our software is installed to the correct locations on your 
system.

In order to install the SeaIO suite, you need GNU Make (available with most
distributions) "http://www.gnu.org/software/make/".  You will also need the
GCC and G++ compilers.  The version is dependent on your kernel version.  The
README included with your kernel source should recommend a version known
to compile properly.  The SeaIO suite was developed with GCC-2.95 on the 2.4.X
kernel series and GCC-3.33 on the 2.6.X kernel series.  

It has most recently been tested against: 
	* GCC-11.4.0 on a 6.8.0-110-generic kernel
	* GCC-16.2.1 on a 7.2.7-200.fc44 kernel


You need to have compiled kernel source in /usr/src/linux, or point the KDIR
variable in the Makefile to the location of your kernel source, for the module to
compile properly.  The process varies from one distribution to another and, you
should consult your distribution's particular documentation.  All kernel source
obtained from http://kernel.org contains a README file detailing the compilation
process.

To install everything:  simply "make install" as root from the directory where
you untarred seaio.tar.gz.  

Once the kernel module is installed, running "seaioload" will create the
appropriate nodes in /dev (dio0, dio1, etc ...)  Note that you will have to 
rerun the "seaioload" script each time you reboot or you may add the 
appropriate commands to your startup scripts.  You will have to edit 
/etc/seaio.conf to make seaioload work properly in conjunction with ISA cards 
(PCI cards will automatically configure).  See the "Driver Options" section
contained in this file for further information on using ISA devices with this
driver.

   Optional make commands:
   -----------------------
	
	"make" or "make subdirs":  this option will build all binaries, but
		will not copy them to the locations described below.

	"make objs":  this option is similar to "make subdirs", but instead of
		building executables, only objects will be created.

	"make clean":  this option removes all the build/executable files in
		the working SeaIo directory.  Installed files remain on
		your system.

	"make uninstall":  this option removes files that were previously
		Installed to the locations described below.

	"make cleaninstall":  removes any previous build files then preforms
		a fresh install.  Everything is built from source again.

	"make purge":  removes installed files and build files in one command.
		(exactly like preforming "make uninstall" then "make clean")

   Optional make parameters: (you may either manually edit them in the Makefile 
   or pass them at run time like so: "make install KDIR=/<PATH_TO_SOURCE>/")
   -----------------------------------------------------------------------------

	KDIR=		/usr/src/linux
	  This is the path to configured kernel source.

	MODDIR=		/lib/modules/<KERNEL_VERSION>/kernel/drivers/misc
	  This is the path that the kernel module is installed to. If you modify
	  this, you must also modify the "seaioload" script's MODDIR variable.

	SUTILDIR= 	/usr/local/sbin
	  This is the location where the "seaioload" and "seaiounload" 
	  scripts are installed by default.  You must also modify the 
	  "seaioload" script's SUTILDIR.

	UTILDIR=	/usr/local/bin
	  This is where any standard utilities are installed.

	LIBDIR=		/usr/local/lib
	  This is where the SeaIO API library is installed.  (libseaio.a)

	INCLUDDIR=	/usr/local/include
	  This is where the seaio headerfiles will be installed.

	CONFIGDIR=	/etc
	  seaio.conf will live here.  This file is consulted by "seaioload",
	  so if you change this, modify the CONFIGDIR variable in "seaioload".


-------------------------------------------------------------------------------
Driver Options
-------------------------------------------------------------------------------

For ISA cards, you will have to pass certain parameters to the kernel module at
load time.  If you choose to use the seaioload and seaiounload scripts, these
parameters may be placed in /etc/seaio.conf.

To configure a model 3701 with base IO address of 380(hex):
  SEAIO_OPTIONS="cardtype=0x3701 io=0x380"

To configure multiple cards, input additional parameters separated by commas:
  SEAIO_OPTIONS="cardtype=0x3701,0x3820 io=0x380,0x300"

-------------------------------------------------------------------------------
Parameters REQUIRED for ISA cards are as follows:

cardtype=0x[model #]	this tells the module what model of ISA card you have
			NOTE:  cardtype is passed as hex even though the model
			number is in decimal!!  (a 3820 is passed as 0x3820)

io=0x[io port]		this tells the module what base IO address you want

-------------------------------------------------------------------------------
Parameters that may OPTIONALLY be specified for all cards (ISA or PCI)

major=[#]  	allows specification of device major number
		NOTE:  the driver will obtain a major number at insertion,
		there is no need to specify one unless you really want to
