| 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. |