IMPORTANT NOTE
==============

THIS DRIVER SUPPORTS NEITHER 205MS DRIVES NOR 206 DRIVES AND FINALLY NOT ANY
CONFIGURATION DIFFERING FROM CM250 HA WITH 205 DRIVE.

There's a 206-alpha driver available and maybe it'll be included in one
package in the future, but this version doesn't do this !

ABOUT THIS FILE:
================
This is a README for the file lmscd0.4.tar.gz.  This tar file
contains the files:

	lmscd0.4.diff
	README

For older versions (kernel < 1.1.92) watch out for lmscd0.3?.tar.gz. That
includes the 'pure', the a, b and c-Patches !
For the interims 1.1.77-1.1.81 no patch is available. I couldn't modify
as fast as the kernel patches came in :-)
In lmscd0.3d.tar.gz is the patch for 1.1.82 till 1.1.92.

ABOUT THE DRIVER:
=================
lmscd0.4 is an experimental driver for the LMS/Philips CD-ROM
CM 205 connected to the CM 250 adapter.  It has lots of enhancements
and speed ups versus the 0.2 version of the driver.
The 0.4 version runs stable on many machines and is for Linux 1.2. It
supports kernel mechanism for allocating I/Os and IRQs.

I have not yet come around to implement support to play audio.  I
hope, it will be in the next release.  For now, you have to stick
with what you get by pressing the volume control knob.  The double
speed version of the drive, CM 206, is not supported, too.

This driver should also work with the CM 225 external drive and
the (old) CM 202.  It does not work with the CM 206, the new
double speed version.

There is a 'Multisession'-Version of the 205-drive in the stores:
LMS205MS. This has a slightly different controller, so it can not be
used with this version of driver.

The b-Version includes major changes because of changed device-driver
handling and modified kernel-parts.
In the c-Version there's also support for the new interrupt handling.
With the d-Version no longer hacking the source is needed, because you are
asked while 'make config' for the options. It supports also the
I/O-Port registering. Just try 'cat /proc/ioports'.

The 0.4-version supports the new 1.2 kernel and all problems with colliding
major numbers should be fixed for some time.

The file lmscd0.4.diff is a patch relative to the 1.2pl0 kernel.

It's really possible, that the patches also apply on other versions. Just
try it.

MAJOR CONFLICT:
===============
Some time ago, Ken Pizzini <ken@halcyon.com> e-mailed me, that he is
using the same major number 24 for his Sony CDU-535 driver.  This is
not a problem, unless you put both drivers into the same kernel.  In
that case, you should change either Major device number in
/usr/src/linux/include/linux/major.h.

I have suggested to Ken, that we should work out a concept for all
CDROM interfaces to work on the same major device number.  I hope,
he will agree soon, so there will be no reason for me to first change
the major device number, just to change it back in my next release.

[ann: This problem will be solved in the near future due to the new
techniques in allocating major numbers. You can use some of it in the
>1.1.41 kernels by typing 'cat /proc/devices' -martin]

[ann: This problem is not yet fixed, because some things are still floating]

INCLUDING THIS DRIVER INTO YOUR KERNEL:
=======================================
Unpack the .tar.gz file, then include the changes into your kernel
using the patch command:

	cd /usr/src/linux
	make mrproper
	zcat lmscd0.4.tar.gz | gtar xfv -
	patch -p1 <lmscd0.4.diff (or the needed patch)

There should no hunks fail, but if so, look, if you can fix it by hand.
If not, send an e-mail.

CONFIGURING DEBUGGING:
======================
There is lots of debugging information, which can be compiled into
the driver.  By default, most of it is off.  To turn on some of it
(which I would ask you to do if you have problems, so you can report
me more details!), change the values of DLEVEL, CLEVEL and DFUNC.

DLEVEL defines the debugging level:
#define DLEVEL 0 	prints very few messages
#define DLEVEL 1	prints some messages whenever an error occurs
#define DLEVEL 2	protocolls most action, that is going on
#define DLEVEL 3	outputs a real lot

CLEVEL is how much double checks should be performed.
#define CLEVEL 0	turns all integrity checks off
#define CLEVEL 1	does a lot of tests, that really should not fail.
#define CLEVEL 2	Reports some more errors about conditions, which
			are strange, but did not cause errors for me so far.

If you set DFUNC to 1, additional information is printed along most
debugging data, which tells about what action the driver is performing
right now, or what the driver is expecting from the hardware.


RECOMPILING YOUR KERNEL:
========================
You have to configure your kernel again to ensure, that the CD-ROM
driver is really included.  Thus don't forget to type "make config".
Type (in directory /usr/src/linux):

	make mrproper; make config
	make depend
	make [zImage | zlilo | ...]

When asked about the configuration, ensure, that you answer yes to the
questions about the "LMS/Philips CD-ROM driver support" and the "ISO9660
cdrom filesystem support".  After "make depend" use your favourite
options to compile a kernel.  For further information, like installing
your newly compiled kernel, please refer to the FAQ.

If you have 8 MB RAM or less, please exit X windows before starting the
compile.  It will notably to drastically reduce your compile time.


CONFIGURING PATCH FOR YOUR HARDWARE:
======================================
While 'make config' and answering the LMS-question with 'y' you are asked
for your hardware-configuration. Please enter just a 3,4,5 or 6 for the
interrupt number. But all other interrupts are possible to enter (if you
have modified your card for high interrupts). For the I/O-address just
enter the index number. If you do not enter 2 (0x300), 3 (0x310) or
4 (0x330) the default 0x340 is used.
After the config you should do 'make depend'. The ISO-Filesystem is
automagically enabled if you enable any CDROM-driver.


CREATING THE DEVICE SPECIAL FILE:
=================================
After recompiling and installing your new kernel, you have to reboot.
To access the drive, you have to create an entry for it in the /dev
file.  Type:

	mknod /dev/lmscd b 24 0
	chown root:disk /dev/lmscd
	chmod 440 /dev/lmscd

If you want to give read permissions to anyone, use:

	chmod 444 /dev/lmscd

instead.


MOUNTING A DISK:
================
Type:

	mkdir /cdrom
	mount -t iso9660 -o ro /dev/lmscd /cdrom


[Note the '-o ro' ! Since CDROMs are usually read-only you will
 receive an error, if you forget it.]

UNMOUNTING/CHANGING A DISK:
===========================
Type:

	umount -t /dev/lmscd

then change the disk, then do the mount command again.  You can
safely leave unused disks mounted.


REPORTING BUGS:
===============
Please report any problems you encounter.  You can reach me by
e-mail as wpp@marie.physik.tu-berlin.de.  Please include all
information available.  This includes:

if you run in problems with this version it would be nice, if you
also send the bug-report to martin@erde.gun.de (Martin Seine).

- Which kernel were you using?
- Which other patches had you included?
- How did you access the CD-ROM, when the driver failed (eg. were
  you just mounting/unmounting it, starting an executable, copying
  a file, etc., etc.)?
- Did you just start or finish another program (for example, for a
  while, this driver kept crashing, when I left X-Windows).
- Were you accessing other devices heavily at the same time (like
  sending bitmaps to the printer, ftp'ing to another host, etc.)
- Can you reproduce the error, or does is appear unpredictable?
- Please include all the debugging output, which was printed in the
  last few seconds before a crash or other failure.  If you can
  reproduce the error, please recompile the kernel with higher
  debugging levels, and retry.

PLEASE: Check, if you _really_ have the naked 205 (no MS-type nor 206) !
This driver doesn't work with any other types than the 205.

AUTHOR:
=======
Kai Petzke, wpp@marie.physik.tu-berlin.de

MODIFICATIONS for newer kernels
===============================
Martin Seine, martin@erde.gun.de
              Martin.Seine@FernUni-Hagen.de

COPYRIGHT:
==========
This file is copyrighted by me.  You may use and distribute it under
the terms of the GNU Copyleft.


NO GUARANTEE:
=============
This is still ALPHA test software.  You may experience system hangups
or crashes, when using this driver, whether accessing the CD-ROM or
not.  I believe, that software cannot destroy your CD-ROM drive, but
I do not guarentee it either.

In other words: you may loose data, and you may even damage your
hardware.

You have been warned.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
