kernel-aes67/Documentation/cdrom/cm206
Linus Torvalds 1da177e4c3 Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.

Let it rip!
2005-04-16 15:20:36 -07:00

186 lines
5.8 KiB
Plaintext

This is the readme file for the driver for the Philips/LMS cdrom drive
cm206 in combination with the cm260 host adapter card.
(c) 1995 David A. van Leeuwen
Changes since version 0.99
--------------------------
- Interfacing to the kernel is routed though an extra interface layer,
cdrom.c. This allows runtime-configurable `behavior' of the cdrom-drive,
independent of the driver.
Features since version 0.33
---------------------------
- Full audio support, that is, both workman, workbone and cdp work
now reasonably. Reading TOC still takes some time. xmcd has been
reported to run successfully.
- Made auto-probe code a little better, I hope
Features since version 0.28
---------------------------
- Full speed transfer rate (300 kB/s).
- Minimum kernel memory usage for buffering (less than 3 kB).
- Multisession support.
- Tray locking.
- Statistics of driver accessible to the user.
- Module support.
- Auto-probing of adapter card's base port and irq line,
also configurable at boot time or module load time.
Decide how you are going to use the driver. There are two
options:
(a) installing the driver as a resident part of the kernel
(b) compiling the driver as a loadable module
Further, you must decide if you are going to specify the base port
address and the interrupt request line of the adapter card cm260 as
boot options for (a), module parameters for (b), use automatic
probing of these values, or hard-wire your adaptor card's settings
into the source code. If you don't care, you can choose
autoprobing, which is the default. In that case you can move on to
the next step.
Compiling the kernel
--------------------
1) move to /usr/src/linux and do a
make config
If you have chosen option (a), answer yes to CONFIG_CM206 and
CONFIG_ISO9660_FS.
If you have chosen option (b), answer yes to CONFIG_MODVERSIONS
and no (!) to CONFIG_CM206 and CONFIG_ISO9660_FS.
2) then do a
make clean; make zImage; make modules
3) do the usual things to install a new image (backup the old one, run
`rdev -R zImage 1', copy the new image in place, run lilo). Might
be `make zlilo'.
Using the driver as a module
----------------------------
If you will only occasionally use the cd-rom driver, you can choose
option (b), install as a loadable module. You may have to re-compile
the module when you upgrade the kernel to a new version.
Since version 0.96, much of the functionality has been transferred to
a generic cdrom interface in the file cdrom.c. The module cm206.o
depends on cdrom.o. If the latter is not compiled into the kernel,
you must explicitly load it before cm206.o:
insmod /usr/src/linux/modules/cdrom.o
To install the module, you use the command, as root
insmod /usr/src/linux/modules/cm206.o
You can specify the base address on the command line as well as the irq
line to be used, e.g.
insmod /usr/src/linux/modules/cm206.o cm206=0x300,11
The order of base port and irq line doesn't matter; if you specify only
one, the other will have the value of the compiled-in default. You
may also have to install the file-system module `iso9660.o', if you
didn't compile that into the kernel.
Using the driver as part of the kernel
--------------------------------------
If you have chosen option (a), you can specify the base-port
address and irq on the lilo boot command line, e.g.:
LILO: linux cm206=0x340,11
This assumes that your linux kernel image keyword is `linux'.
If you specify either IRQ (3--11) or base port (0x300--0x370),
auto probing is turned off for both settings, thus setting the
other value to the compiled-in default.
Note that you can also put these parameters in the lilo configuration file:
# linux config
image = /vmlinuz
root = /dev/hda1
label = Linux
append = "cm206=0x340,11"
read-only
If module parameters and LILO config options don't work
-------------------------------------------------------
If autoprobing does not work, you can hard-wire the default values
of the base port address (CM206_BASE) and interrupt request line
(CM206_IRQ) into the file /usr/src/linux/drivers/cdrom/cm206.h. Change
the defines of CM206_IRQ and CM206_BASE.
Mounting the cdrom
------------------
1) Make sure that the right device is installed in /dev.
mknod /dev/cm206cd b 32 0
2) Make sure there is a mount point, e.g., /cdrom
mkdir /cdrom
3) mount using a command like this (run as root):
mount -rt iso9660 /dev/cm206cd /cdrom
4) For user-mounts, add a line in /etc/fstab
/dev/cm206cd /cdrom iso9660 ro,noauto,user
This will allow users to give the commands
mount /cdrom
umount /cdrom
If things don't work
--------------------
- Try to do a `dmesg' to find out if the driver said anything about
what is going wrong during the initialization.
- Try to do a `dd if=/dev/cm206cd | od -tc | less' to read from the
CD.
- Look in the /proc directory to see if `cm206' shows up under one of
`interrupts', `ioports', `devices' or `modules' (if applicable).
DISCLAIMER
----------
I cannot guarantee that this driver works, or that the hardware will
not be harmed, although I consider it most unlikely.
I hope that you'll find this driver in some way useful.
David van Leeuwen
david@tm.tno.nl
Note for Linux CDROM vendors
-----------------------------
You are encouraged to include this driver on your Linux CDROM. If
you do, you might consider sending me a free copy of that cd-rom.
You can contact me through my e-mail address, david@tm.tno.nl.
If this driver is compiled into a kernel to boot off a cdrom,
you should actually send me a free copy of that cd-rom.
Copyright
---------
The copyright of the cm206 driver for Linux is
(c) 1995 David A. van Leeuwen
The driver is released under the conditions of the GNU general public
license, which can be found in the file COPYING in the root of this
source tree.