215 lines
7.9 KiB
Text
215 lines
7.9 KiB
Text
|
This is release 1.2 of the SoundBlaster Pro (Matsushita, Kotobuki,
|
||
|
Panasonic, CreativeLabs, Aztech) CD-ROM driver for Linux.
|
||
|
|
||
|
The driver is able to drive the whole family of IDE-style
|
||
|
Matsushita/Kotobuki/Panasonic drives (the "double speed" versions
|
||
|
like CR-562 and CR-563, too), and it will work with the soundcard
|
||
|
interfaces (SB Pro, SB 16, Galaxy, SoundFX, ...) and/or with
|
||
|
the "no-sound" cards (Panasonic CI-101P, LaserMate, Aztech, ...).
|
||
|
The interface type has to get configured, because the behavior
|
||
|
is different.
|
||
|
|
||
|
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 0.75 or
|
||
|
1.00).
|
||
|
|
||
|
Up to 4 drives are supported. CR-52x and CR-56x drives can be mixed,
|
||
|
but the CR-521 ones are hard-wired to drive ID 0. The drives have
|
||
|
to use different drive IDs, but the same controller (it will be a
|
||
|
little bit harder to support up to four interface cards - but I plan
|
||
|
to do it the day somebody wishes to connect a fifth drive).
|
||
|
Each drive has to get a unique minor number (0...3), corresponding
|
||
|
to it's drive ID. The drive IDs may be selected freely from 0 to 3 -
|
||
|
they must not be in consecutive order.
|
||
|
|
||
|
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,
|
||
|
with the "non-X11" products CDplayer and WorkBone - tell me if
|
||
|
it is not compatible with other software.
|
||
|
|
||
|
MultiSession is supported, "ManySession" (see below) alternatively.
|
||
|
Photo CDs should work, too. At ftp.gwdg.de:/pub/linux/hpcdtoppm
|
||
|
is a package to convert photo CD image files.
|
||
|
|
||
|
I did not have a chance to play with XA or mixed mode CDs yet.
|
||
|
Send one over, if you would like sbpcd to support that.
|
||
|
|
||
|
The transfer rate will reach 150 kB/sec with standard drives and
|
||
|
the full 300 kB/sec with double-speed drives.
|
||
|
|
||
|
This release is part of the standard kernel and consists of
|
||
|
- this README file
|
||
|
- the driver file linux/drivers/block/sbpcd.c
|
||
|
- the header file linux/include/linux/sbpcd.h.
|
||
|
|
||
|
|
||
|
To install:
|
||
|
-----------
|
||
|
|
||
|
1. Setup your hardware parameters. Though the driver does "auto-probing"
|
||
|
now, this step is recommended for every-day use.
|
||
|
a. Go into /usr/src/linux/include/linux/sbpcd.h and configure
|
||
|
it for your hardware (near the beginning):
|
||
|
a1. Set it up for the appropriate type of interface board.
|
||
|
Most "compatible" sound boards (for example "Highscreen",
|
||
|
"SoundFX" and "Galaxy") need the "SBPRO 0" setup. The
|
||
|
"no-sound" board from OmniCd needs the "SBPRO 1" setup.
|
||
|
sbpcd.c holds some examples in it's auto-probe list.
|
||
|
a2. Tell the address of your CDROM_PORT.
|
||
|
b. Additionally for 2.a1 and 2.a2, the setup may be done during
|
||
|
boot time (via the "kernel command line" or "LILO option"):
|
||
|
sbpcd=0x230,SoundBlaster
|
||
|
or
|
||
|
sbpcd=0x320,LaserMate
|
||
|
(these strings are case sensitive!).
|
||
|
|
||
|
2. Do a "make config" and select "yes" for Matsushita CD-ROM
|
||
|
support and for ISO9660 FileSystem support.
|
||
|
SCSI and/or SCSI CD-ROM support is not needed.
|
||
|
|
||
|
3. Then do a "make dep", then make the kernel image ("make zlilo"
|
||
|
or else).
|
||
|
|
||
|
4. Make the device file(s). The driver uses definitely and exclusive
|
||
|
the MAJOR 25, so do
|
||
|
|
||
|
mknod /dev/sbpcd b 25 0 (if you have only drive #0)
|
||
|
and/or
|
||
|
mknod /dev/sbpcd0 b 25 0
|
||
|
mknod /dev/sbpcd1 b 25 1
|
||
|
mknod /dev/sbpcd2 b 25 2
|
||
|
mknod /dev/sbpcd3 b 25 3
|
||
|
|
||
|
to make the node(s).
|
||
|
Take care that you create a node with the same MINOR as your drive
|
||
|
id is. So, if the DOS driver tells you have drive id #3, you have to
|
||
|
mknod /dev/<any_name> b 25 3
|
||
|
|
||
|
If you further make a link like
|
||
|
ln -s sbpcd /dev/cdrom
|
||
|
you can use the name /dev/cdrom, too.
|
||
|
|
||
|
5. 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/sbpcd &".
|
||
|
|
||
|
|
||
|
Things of interest:
|
||
|
-------------------
|
||
|
|
||
|
The driver is configured to try the SoundBlaster Pro type of
|
||
|
interface at I/O port 0x0230 first. If this is not appropriate,
|
||
|
sbpcd.h should get changed (you will find the right place -
|
||
|
just at the beginning).
|
||
|
|
||
|
No DMA and no IRQ is used, so the IRQ adjusting is not necessary,
|
||
|
and the IRQ line stays free for the SB Pro sound drivers.
|
||
|
|
||
|
To reduce or increase the amount of kernel messages, edit
|
||
|
sbpcd.c and change the initialization of the variable
|
||
|
"sbpcd_debug". This is the way to get rid of the initial
|
||
|
warning message block, too.
|
||
|
|
||
|
With "#define MANY_SESSION 1" (sbpcd.c), the driver can use
|
||
|
"many-session" CDs. This will work only with "new" drives like
|
||
|
CR-562 or CR-563. That is NOT multisession - it is a CD
|
||
|
with multiple independent sessions, each containing block
|
||
|
addresses as if it were the only session. With this feature
|
||
|
enabled, the driver will read the LAST session. Without it,
|
||
|
the FIRST session gets read.
|
||
|
If you would like the support of reading "in-between" sessions,
|
||
|
drop me a mail and some food for the soul. :-)
|
||
|
Those "many-session" CDs can get made by CDROM writers like
|
||
|
Philips CDD 521.
|
||
|
With this feature enabled, it is impossible to read true
|
||
|
multisession CDs.
|
||
|
|
||
|
|
||
|
Auto-probing at boot time:
|
||
|
--------------------------
|
||
|
|
||
|
The driver does auto-probing at all well-known interface card
|
||
|
addresses now. The idea to do that came from Adam J. Richter
|
||
|
(YGGDRASIL).
|
||
|
|
||
|
This auto-probing looks first at the configured address resp.
|
||
|
the address submitted by the kernel command line. With this,
|
||
|
it is possible to use this driver within installation boot
|
||
|
floppies, and for any non-standard address, too.
|
||
|
|
||
|
Auto-probing will make an assumption about the interface type
|
||
|
("SBPRO" or not), based upon the address. That assumption may
|
||
|
be wrong (initialization will be o.k., but you will get I/O
|
||
|
errors during mount). In that case, use the "kernel command
|
||
|
line" feature and specify address & type at boot time to find
|
||
|
out the right setup.
|
||
|
|
||
|
SBPCD's auto-probing happens before the initialization of the
|
||
|
net drivers. That makes a hang possible if an ethernet card
|
||
|
gets touched.
|
||
|
|
||
|
For every-day use, address and type should get configured
|
||
|
within sbpcd.h. That will stop the auto-probing due to success
|
||
|
with the first try.
|
||
|
|
||
|
|
||
|
Setting up address and interface type:
|
||
|
--------------------------------------
|
||
|
|
||
|
If your I/O port address is not 0x0230 or if you use a "no-sound"
|
||
|
interface other than OmniCD, you have to look for the #defines
|
||
|
near the beginning of sbpcd.h and configure them: set SBPRO to
|
||
|
0 or 1, and change CDROM_PORT to the address of your CDROM I/O port.
|
||
|
|
||
|
Most of the "SoundBlaster compatible" cards behave like the
|
||
|
no-sound interfaces!
|
||
|
|
||
|
With "original" SB Pro cards, an initial setting of CD_volume
|
||
|
through the sound cards MIXER register gets done. That happens
|
||
|
at the end of "sbpcd_init". If you are using a "compatible"
|
||
|
sound card of type "LaserMate", you can change that code to get
|
||
|
it done with your card, too...
|
||
|
|
||
|
|
||
|
Using audio CDs:
|
||
|
----------------
|
||
|
|
||
|
Workman, WorkBone, xcdplayer and cdplayer should work good now,
|
||
|
even with the double-speed drives.
|
||
|
|
||
|
The program CDplayer likes to talk to "/dev/mcd" only, xcdplayer
|
||
|
wants "/dev/rsr0", workman loves "/dev/sr0" - so, do the appropriate
|
||
|
links for using them without the need of supplying parameters.
|
||
|
|
||
|
|
||
|
Known problems:
|
||
|
---------------
|
||
|
|
||
|
Currently, the detection of disk change or removal does not
|
||
|
work as good 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, donations (technical information
|
||
|
is a donation, too :-) etc. to
|
||
|
emoenke@gwdg.de
|
||
|
or to eberhard_moenkeberg@rollo.central.de
|
||
|
or to my FIDO address: Eberhard Moenkeberg, 2:2437/210.27
|
||
|
|
||
|
|
||
|
SnailMail address, preferable for CD editors if they want to submit
|
||
|
a free "cooperation" copy:
|
||
|
Eberhard Moenkeberg
|
||
|
Reinholdstr. 14
|
||
|
D-37083 Goettingen
|
||
|
Germany
|