This is release 0.4 of the SoundBlaster Pro CD-ROM driver for Linux. It is NOT fully fit - so consider it as ALPHA or BETA. This driver should be able to drive the whole family of IDE-style Matsushita/Kotobuki/Panasonic drives (the "double speed" versions like CR-562, too), and it should work either with the soundcard interfaces or with the "no-sound" cards (LaserMate, Aztec, ...). It works with my SbPro and Matsushita drive CR-521, purchased Feb-92, but there should be no problems with older or newer issues. Tell me if I'm wrong... The driver respects different drive firmware releases - my drive is a 2.11, but it should work with "old" drives <2.01 ... >3.00 and with "new" drives (which count the releases around 1.00). If this driver doesn't work with your equipment, mail me a description, please. The driver supports reading of data from the CD and playing of audio tracks. The audio part should run with WorkMan, xcdplayer, and with the new "non-X11" CDplayer - tell me if it's not compatible with other software. I did not have a chance to play with XA or photo CDs yet. This release is not optimized; it can produce a heavy system load (but only during transfers), and still some CPU time is wasted within wait loops. I'm pretty sure that there is no error if no error is reported. :-) The transfer rate should reach 150 kB/sec now with standard drives. This release consists of a driver file, "sbpcd.c", a set of patches for the 0.99 pl8...pl11 kernels, "sbpcd.kern.diff.999", and this README file. The driver has to reside in /usr/src/linux/kernel/blk_drv. To install: ----------- unpack the gzipped tar file in "/usr/src/linux" or wherever you keep your kernel source. Go into /usr/src/linux/kernel/blk_drv/sbpcd.c and configure it for your hardware: 1. Tell the program if you have kernel 99pl11 or newer (is there a way to obtain that info automatically at compile time?) 2. Set it up for the appropriate type of interface board. Some "compatible" sound boards (for example "Highscreen") seem to need the LASERMATE, not the SBPRO setup! 3. Tell the base address of your interface board. Apply the diffs in file "sbpcd.kern.diff.999" to your kernel: cd /usr/src/linux patch -p0 &1 | tee sbpcd.patch.err If you already did this with alpha release 0.3, you have to do it again - there are additional and "changed" changes. The diffs should fit with kernels 0.99pl8 or newer. Possibly with kernel 0.99pl11 there are some "hand-made" changes necessary - sbpcd.patch.err will tell. Do a "make config" and select "yes" for SoundBlaster CD-ROM support and ISO9660 FileSystem support. SCSI and/or SCSI CD-ROM support is not necessary. Then do a "make dep", then make the kernel image ("make lilo" or else). Make the device file. The driver now uses definitely and exclusive the MAJOR 25, so do mknod /dev/sbpcd b 25 0 to make the node. If you further make a link like ln -fs /dev/sbpcd /dev/cdrom you can use the name /dev/cdrom, too. Reboot with the new kernel. You should now be able to do "mount -t iso9660 /dev/sbpcd /mnt" and see the contents of your CD in the /mnt directory, and/or hear music with "workman -c /dev/cdrom &". With "ln -fs /dev/sbpcd /dev/rsr0", xcdplayer can use the drive, too (but there are some malfunctions). The new program CDplayer likes to talk to "/dev/mcd" only - so, do the appropriate link or change the CDplayer source. Things you might want to change: -------------------------------- From this release on, the driver is set up to use major device 25, which is the official device number for SoundBlaster Pro CDROMs. If you already did a earlier installation with the preliminary device number 15, you have to rm /dev/sbpcd mknod /dev/sbpcd b 25 0 before first use. The driver is set up to use the SoundBlaster Pro (or compatible) interface at I/O port 0x0220. The IRQ is NOT used and so stays free for the SB Pro sound drivers. The code should work with the "no-sound" interfaces ("LaserMate" or else - what you get if you purchase those drives "standalone"), too. That has to get configured, because the behavior is different. If your I/O port address is not 0x0220 or if you use a "no-sound" interface, you have to look for the #defines near the beginning of sbpcd.c and configure them: set either SBPRO or LASERMATE to 1 (and the other to 0), and change CARD_BASE to the base address of your interface. Some of the "SoundBlaster compatible" cards behave like the no-sound interfaces! With those cards, the initial setting of CD_volume through the sound cards MIXER register (at the end of sbpcd_init) will only be done, if the conditionals around it get eliminated by hand. Currently no DMA and no IRQ is used, so the IRQ adjusting is not necessary. Known problems: --------------- The flow control and interpretation of the status bits should be almost exact now. Please, mail if unexpected things happen. :-) Currently, the detection of disk change or removal does not work as it should. Further, I do not know if this driver can live together with a SCSI CD-ROM driver and/or device, but I hope so. Bug reports, comments, wishes, etc. to emoenke@gwdg.de or to my FIDO address: Eberhard Moenkeberg, 2:241/3410.27. FIDO mail possibly currently gets "lost" by action of some "official" german Stiefel-Knechts.