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