| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | This is the readme file for the driver for the Philips/LMS cdrom drive | 
 | 2 | cm206 in combination with the cm260 host adapter card.  | 
 | 3 |  | 
 | 4 | 				(c) 1995 David A. van Leeuwen | 
 | 5 |     | 
 | 6 | Changes since version 0.99 | 
 | 7 | -------------------------- | 
 | 8 | - Interfacing to the kernel is routed though an extra interface layer,  | 
 | 9 |   cdrom.c. This allows runtime-configurable `behavior' of the cdrom-drive,  | 
 | 10 |   independent of the driver.  | 
 | 11 |  | 
 | 12 | Features since version 0.33 | 
 | 13 | --------------------------- | 
 | 14 | - Full audio support, that is, both  workman, workbone and cdp work | 
 | 15 |   now reasonably. Reading TOC still takes some time. xmcd has been | 
 | 16 |   reported to run successfully.  | 
 | 17 | - Made auto-probe code a little better, I hope | 
 | 18 |  | 
 | 19 | Features since version 0.28 | 
 | 20 | --------------------------- | 
 | 21 | - Full speed transfer rate (300 kB/s). | 
 | 22 | - Minimum kernel memory usage for buffering (less than 3 kB). | 
 | 23 | - Multisession support. | 
 | 24 | - Tray locking. | 
 | 25 | - Statistics of driver accessible to the user. | 
 | 26 | - Module support. | 
 | 27 | - Auto-probing of adapter card's base port and irq line, | 
 | 28 |   also configurable at boot time or module load time. | 
 | 29 |  | 
 | 30 |  | 
 | 31 | Decide how you are going to use the driver. There are two | 
 | 32 | options: | 
 | 33 |  | 
 | 34 |    (a) installing the driver as a resident part of the kernel | 
 | 35 |    (b) compiling the driver as a loadable module | 
 | 36 |  | 
 | 37 |    Further, you must decide if you are going to specify the base port | 
 | 38 |    address and the interrupt request line of the adapter card cm260 as | 
 | 39 |    boot options for (a), module parameters for (b), use automatic | 
 | 40 |    probing of these values, or hard-wire your adaptor card's settings | 
 | 41 |    into the source code. If you don't care, you can choose  | 
 | 42 |    autoprobing, which is the default. In that case you can move on to | 
 | 43 |    the next step. | 
 | 44 |  | 
 | 45 | Compiling the kernel | 
 | 46 | -------------------- | 
 | 47 | 1) move to /usr/src/linux and do a  | 
 | 48 |  | 
 | 49 | 	make config | 
 | 50 |  | 
 | 51 |    If you have chosen option (a), answer yes to CONFIG_CM206 and | 
 | 52 |    CONFIG_ISO9660_FS. | 
 | 53 |  | 
 | 54 |    If you have chosen option (b), answer yes to CONFIG_MODVERSIONS | 
 | 55 |    and no (!) to CONFIG_CM206 and CONFIG_ISO9660_FS.  | 
 | 56 |  | 
 | 57 | 2) then do a  | 
 | 58 | 	 | 
 | 59 | 	make clean; make zImage; make modules | 
 | 60 |  | 
 | 61 | 3) do the usual things to install a new image (backup the old one, run | 
 | 62 |    `rdev -R zImage 1', copy the new image in place, run lilo).  Might | 
 | 63 |    be `make zlilo'. | 
 | 64 |  | 
 | 65 | Using the driver as a module | 
 | 66 | ---------------------------- | 
 | 67 | If you will only occasionally use the cd-rom driver, you can choose | 
 | 68 | option (b), install as a loadable module. You may have to re-compile | 
 | 69 | the module when you upgrade the kernel to a new version.  | 
 | 70 |  | 
 | 71 | Since version 0.96, much of the functionality has been transferred to | 
 | 72 | a generic cdrom interface in the file cdrom.c. The module cm206.o | 
 | 73 | depends on cdrom.o. If the latter is not compiled into the kernel, | 
 | 74 | you must explicitly load it before cm206.o: | 
 | 75 |  | 
 | 76 | 	 insmod /usr/src/linux/modules/cdrom.o | 
 | 77 |  | 
 | 78 | To install the module, you use the command, as root | 
 | 79 |  | 
 | 80 | 	insmod /usr/src/linux/modules/cm206.o | 
 | 81 |  | 
 | 82 | You can specify the base address on the command line as well as the irq  | 
 | 83 | line to be used, e.g. | 
 | 84 |  | 
 | 85 | 	insmod /usr/src/linux/modules/cm206.o cm206=0x300,11 | 
 | 86 |  | 
 | 87 | The order of base port and irq line doesn't matter; if you specify only | 
 | 88 | one, the other will have the value of the compiled-in default.  You | 
 | 89 | may also have to install the file-system module `iso9660.o', if you | 
 | 90 | didn't compile that into the kernel.  | 
 | 91 |  | 
 | 92 |  | 
 | 93 | Using the driver as part of the kernel | 
 | 94 | -------------------------------------- | 
 | 95 | If you have chosen option (a), you can specify the base-port | 
 | 96 | address and irq on the lilo boot command line, e.g.: | 
 | 97 |  | 
 | 98 | 	LILO: linux cm206=0x340,11 | 
 | 99 |  | 
 | 100 | This assumes that your linux kernel image keyword is `linux'.  | 
 | 101 | If you specify either IRQ (3--11) or base port (0x300--0x370), | 
 | 102 | auto probing is turned off for both settings, thus setting the  | 
 | 103 | other value to the compiled-in default. | 
 | 104 |  | 
 | 105 | Note that you can also put these parameters in the lilo configuration file: | 
 | 106 |  | 
 | 107 | # linux config | 
 | 108 | image = /vmlinuz | 
 | 109 |    root = /dev/hda1 | 
 | 110 |    label = Linux | 
 | 111 |    append = "cm206=0x340,11" | 
 | 112 |    read-only | 
 | 113 |  | 
 | 114 |  | 
 | 115 | If module parameters and LILO config options don't work | 
 | 116 | ------------------------------------------------------- | 
 | 117 | If autoprobing does not work, you can hard-wire the default values | 
 | 118 | of the base port address (CM206_BASE) and interrupt request line | 
 | 119 | (CM206_IRQ) into the file /usr/src/linux/drivers/cdrom/cm206.h. Change | 
 | 120 | the defines of CM206_IRQ and CM206_BASE. | 
 | 121 |  | 
 | 122 |  | 
 | 123 | Mounting the cdrom | 
 | 124 | ------------------ | 
 | 125 | 1) Make sure that the right device is installed in /dev. | 
 | 126 |  | 
 | 127 |   	mknod /dev/cm206cd b 32 0 | 
 | 128 |  | 
 | 129 | 2) Make sure there is a mount point, e.g., /cdrom  | 
 | 130 |  | 
 | 131 | 	mkdir /cdrom | 
 | 132 |  | 
 | 133 | 3) mount using a command like this (run as root): | 
 | 134 |  | 
 | 135 | 	mount -rt iso9660 /dev/cm206cd /cdrom | 
 | 136 |  | 
 | 137 | 4) For user-mounts, add a line in /etc/fstab | 
 | 138 |  | 
 | 139 | 	/dev/cm206cd      /cdrom     iso9660 	ro,noauto,user | 
 | 140 |  | 
 | 141 |    This will allow users to give the commands | 
 | 142 |  | 
 | 143 | 	mount /cdrom | 
 | 144 | 	umount /cdrom | 
 | 145 |  | 
 | 146 | If things don't work | 
 | 147 | -------------------- | 
 | 148 |  | 
 | 149 | - Try to do a `dmesg' to find out if the driver said anything about | 
 | 150 |   what is going wrong during the initialization. | 
 | 151 |  | 
 | 152 | - Try to do a `dd if=/dev/cm206cd | od -tc | less' to read from the | 
 | 153 |   CD. | 
 | 154 |  | 
 | 155 | - Look in the /proc directory to see if `cm206' shows up under one of | 
 | 156 |   `interrupts', `ioports', `devices' or `modules' (if applicable). | 
 | 157 |  | 
 | 158 |  | 
 | 159 | DISCLAIMER  | 
 | 160 | ----------  | 
 | 161 | I cannot guarantee that this driver works, or that the hardware will | 
 | 162 | not be harmed, although I consider it most unlikely.  | 
 | 163 |  | 
 | 164 | I hope that you'll find this driver in some way useful.  | 
 | 165 |  | 
 | 166 | 					David van Leeuwen | 
 | 167 | 					david@tm.tno.nl | 
 | 168 |  | 
 | 169 | Note for Linux CDROM vendors | 
 | 170 | ----------------------------- | 
 | 171 | You are encouraged to include this driver on your Linux CDROM. If | 
 | 172 | you do, you might consider sending me a free copy of that cd-rom. | 
 | 173 | You can contact me through my e-mail address, david@tm.tno.nl.  | 
 | 174 | If this driver is compiled into a kernel to boot off a cdrom,  | 
 | 175 | you should actually send me a free copy of that cd-rom.  | 
 | 176 |  | 
 | 177 | Copyright | 
 | 178 | --------- | 
 | 179 | The copyright of the cm206 driver for Linux is  | 
 | 180 |  | 
 | 181 |     (c) 1995 David A. van Leeuwen | 
 | 182 |  | 
 | 183 | The driver is released under the conditions of the GNU general public | 
 | 184 | license, which can be found in the file COPYING in the root of this | 
 | 185 | source tree. |