1 This is release 1.2 of the SoundBlaster Pro (Matsushita, Kotobuki,
2 Panasonic, CreativeLabs, Aztech) CD-ROM driver for Linux.
4 The driver is able to drive the whole family of IDE-style
5 Matsushita/Kotobuki/Panasonic drives (the "double speed" versions
6 like CR-562 and CR-563, too), and it will work with the soundcard
7 interfaces (SB Pro, SB 16, Galaxy, SoundFX, ...) and/or with
8 the "no-sound" cards (Panasonic CI-101P, LaserMate, Aztech, ...).
9 The interface type has to get configured, because the behavior
12 The driver respects different drive firmware releases - my drive
13 is a 2.11, but it should work with "old" drives <2.01 ... >3.00
14 and with "new" drives (which count the releases around 0.75 or
17 Up to 4 drives are supported. CR-52x and CR-56x drives can be mixed,
18 but the CR-521 ones are hard-wired to drive ID 0. The drives have
19 to use different drive IDs, but the same controller (it will be a
20 little bit harder to support up to four interface cards - but I plan
21 to do it the day somebody wishes to connect a fifth drive).
22 Each drive has to get a unique minor number (0...3), corresponding
23 to it's drive ID. The drive IDs may be selected freely from 0 to 3 -
24 they must not be in consecutive order.
26 If this driver doesn't work with your equipment, mail me a
29 The driver supports reading of data from the CD and playing of
30 audio tracks. The audio part should run with WorkMan, xcdplayer,
31 with the "non-X11" products CDplayer and WorkBone - tell me if
32 it is not compatible with other software.
34 MultiSession is supported, "ManySession" (see below) alternatively.
35 Photo CDs should work, too. At ftp.gwdg.de:/pub/linux/hpcdtoppm
36 is a package to convert photo CD image files.
38 I did not have a chance to play with XA or mixed mode CDs yet.
39 Send one over, if you would like sbpcd to support that.
41 The transfer rate will reach 150 kB/sec with standard drives and
42 the full 300 kB/sec with double-speed drives.
44 This release is part of the standard kernel and consists of
46 - the driver file linux/drivers/block/sbpcd.c
47 - the header file linux/include/linux/sbpcd.h.
53 1. Setup your hardware parameters. Though the driver does "auto-probing"
54 now, this step is recommended for every-day use.
55 a. Go into /usr/src/linux/include/linux/sbpcd.h and configure
56 it for your hardware (near the beginning):
57 a1. Set it up for the appropriate type of interface board.
58 Most "compatible" sound boards (for example "Highscreen",
59 "SoundFX" and "Galaxy") need the "SBPRO 0" setup. The
60 "no-sound" board from OmniCd needs the "SBPRO 1" setup.
61 sbpcd.c holds some examples in it's auto-probe list.
62 a2. Tell the address of your CDROM_PORT.
63 b. Additionally for 2.a1 and 2.a2, the setup may be done during
64 boot time (via the "kernel command line" or "LILO option"):
65 sbpcd=0x230,SoundBlaster
68 (these strings are case sensitive!).
70 2. Do a "make config" and select "yes" for Matsushita CD-ROM
71 support and for ISO9660 FileSystem support.
72 SCSI and/or SCSI CD-ROM support is not needed.
74 3. Then do a "make dep", then make the kernel image ("make zlilo"
77 4. Make the device file(s). The driver uses definitely and exclusive
80 mknod /dev/sbpcd b 25 0 (if you have only drive #0)
82 mknod /dev/sbpcd0 b 25 0
83 mknod /dev/sbpcd1 b 25 1
84 mknod /dev/sbpcd2 b 25 2
85 mknod /dev/sbpcd3 b 25 3
88 Take care that you create a node with the same MINOR as your drive
89 id is. So, if the DOS driver tells you have drive id #3, you have to
90 mknod /dev/<any_name> b 25 3
92 If you further make a link like
93 ln -s sbpcd /dev/cdrom
94 you can use the name /dev/cdrom, too.
96 5. Reboot with the new kernel.
98 You should now be able to do "mount -t iso9660 /dev/sbpcd /mnt"
99 and see the contents of your CD in the /mnt directory, and/or
100 hear music with "workman -c /dev/sbpcd &".
106 The driver is configured to try the SoundBlaster Pro type of
107 interface at I/O port 0x0230 first. If this is not appropriate,
108 sbpcd.h should get changed (you will find the right place -
109 just at the beginning).
111 No DMA and no IRQ is used, so the IRQ adjusting is not necessary,
112 and the IRQ line stays free for the SB Pro sound drivers.
114 To reduce or increase the amount of kernel messages, edit
115 sbpcd.c and change the initialization of the variable
116 "sbpcd_debug". This is the way to get rid of the initial
117 warning message block, too.
119 With "#define MANY_SESSION 1" (sbpcd.c), the driver can use
120 "many-session" CDs. This will work only with "new" drives like
121 CR-562 or CR-563. That is NOT multisession - it is a CD
122 with multiple independent sessions, each containing block
123 addresses as if it were the only session. With this feature
124 enabled, the driver will read the LAST session. Without it,
125 the FIRST session gets read.
126 If you would like the support of reading "in-between" sessions,
127 drop me a mail and some food for the soul. :-)
128 Those "many-session" CDs can get made by CDROM writers like
130 With this feature enabled, it is impossible to read true
134 Auto-probing at boot time:
135 --------------------------
137 The driver does auto-probing at all well-known interface card
138 addresses now. The idea to do that came from Adam J. Richter
141 This auto-probing looks first at the configured address resp.
142 the address submitted by the kernel command line. With this,
143 it is possible to use this driver within installation boot
144 floppies, and for any non-standard address, too.
146 Auto-probing will make an assumption about the interface type
147 ("SBPRO" or not), based upon the address. That assumption may
148 be wrong (initialization will be o.k., but you will get I/O
149 errors during mount). In that case, use the "kernel command
150 line" feature and specify address & type at boot time to find
153 SBPCD's auto-probing happens before the initialization of the
154 net drivers. That makes a hang possible if an ethernet card
157 For every-day use, address and type should get configured
158 within sbpcd.h. That will stop the auto-probing due to success
162 Setting up address and interface type:
163 --------------------------------------
165 If your I/O port address is not 0x0230 or if you use a "no-sound"
166 interface other than OmniCD, you have to look for the #defines
167 near the beginning of sbpcd.h and configure them: set SBPRO to
168 0 or 1, and change CDROM_PORT to the address of your CDROM I/O port.
170 Most of the "SoundBlaster compatible" cards behave like the
173 With "original" SB Pro cards, an initial setting of CD_volume
174 through the sound cards MIXER register gets done. That happens
175 at the end of "sbpcd_init". If you are using a "compatible"
176 sound card of type "LaserMate", you can change that code to get
177 it done with your card, too...
183 Workman, WorkBone, xcdplayer and cdplayer should work good now,
184 even with the double-speed drives.
186 The program CDplayer likes to talk to "/dev/mcd" only, xcdplayer
187 wants "/dev/rsr0", workman loves "/dev/sr0" - so, do the appropriate
188 links for using them without the need of supplying parameters.
194 Currently, the detection of disk change or removal does not
195 work as good as it should.
197 Further, I do not know if this driver can live together with a
198 SCSI CD-ROM driver and/or device, but I hope so.
202 Bug reports, comments, wishes, donations (technical information
203 is a donation, too :-) etc. to
205 or to eberhard_moenkeberg@rollo.central.de
206 or to my FIDO address: Eberhard Moenkeberg, 2:2437/210.27
209 SnailMail address, preferable for CD editors if they want to submit
210 a free "cooperation" copy: