Swap code/variable declaration to be pre-C99 compliant.
[xiph/unicode.git] / cdparanoia / README
blob954378509a1e117145872b1d37b2785ffe69f66d
1 cdparanoia release III alpha 9 README
2 [March 19, 1998, updated March 27, 2001]
4 Monty <monty@xiph.org>
6 This CDDA reader distribution ('cdparanoia') reads audio from the
7 CDROM directly as data, with no analog step between, and writes the
8 data to a file or pipe as .wav, .aifc or as raw 16 bit linear PCM.
10 These are installation notes; for lots of other cdparanoia related
11 information, see:
13 http://www.xiph.org/paranoia/
15 Requirements
16 ============
18 1. A CDDA capable CDROM drive (ATAPI, SCSI, or proprietary)
20 2. For proprietary drives:
21    2a. kernel support for the particular CDROM in use
22    
23    For ATAPI CDROM drives:
24    2b. IDE cdrom (ATAPI) support
25         (*or*)
26    2c. IDE-SCSI host adaptor emulation 
27    2d. SCSI cdrom support (optional)
28    2e. kernel support for the generic SCSI interface and proper device 
29         (/dev/sg?) files in /dev. Most distributions already have the 
30         /dev/sg? files.  devfs [supported] sets this up automagically.
32    For SCSI CDROM drives:
33    2f. SCSI cdrom support (optional)
34    2g. kernel support for the generic SCSI interface and proper device 
35         (/dev/sg?) files in /dev. Most distributions already have the 
36         /dev/sg? files.  devfs [supported] sets this up automagically.
38 3. A Linux 2.2.x, 2.3.x or 2.4.x kernel 
40 ATAPI drives may be used either with the native IDE cdrom driver, or
41 with IDE-SCSI host adaptor emulation.  Both work, but the SCSI
42 emulation mode works much better for CDDA extraction.  Cdparanoia may
43 also be able to identify and use unusual drives that report 'CDDA
44 incapable' in native ATAPI mode.
46 /proc filesystem support is no longer needed, although you'll
47 certainly want to have it for other packages.  Cdparanoia does not
48 require threading, IPC or sound card support.
50 Devfs is fully supported as of 9.8, with or without devfsd.
52 Compiling cdparanoia
53 ==================
55 To build the cdparanoia utility:
57         ./configure
58         make all
59         
60 This will compile cdparanoia and the shared paranoia libs; make
61 install (as root) will install it. Don't forget to run ldconfig;
62 unlike previous releases, this version uses shared paranoia libs; you
63 can still build the static version as follows:
65         ./configure
66         make all STATIC=TRUE
68 Unlike cdda2wav and readcdda, cdparanoia is smart enough to find CDROM
69 drives and the appropriate interfaces automatically; if you have only
70 one CDROM drive, you'll not need to worry about it.  If your machine
71 has more than one CDROM drive and cdparanoia finds the wrong one,
72 you'll need to tell it which device to use on the command line (see
73 the man page and Troubleshooting below).
75 To build the cdda_interface.a and cdda_paranoia.a libraries:
77         ./configure
78         make lib
80 The .so shared libraries can be built as follows:
82         ./configure
83         make slib
85 Other build notes (such as building and using a debugging version of
86 cdparanoia to aid me in tracking down any trouble) can be found on the
87 Cdparanoia web site at the URL given above.
89 Additional installation notes
90 =============================
92 Most Linux setups already have performed the steps described below,
93 and devfs also provides all the necessary device entries
94 automatically.  The list is useful for doublechecking on a non-devfs
95 install. (originally taken from Heiko's cdda2wav README)
97 (for SCSI devices)
99   Cdparanoia requires the generic SCSI interface; you'll need
100   a kernel with compiled-in or module-supplied sg interface.
101   In case of a module, this has to be loaded ('modprobe sg'; 
102   usually done in boot time scripts).
103   This can be verified with 'cat /proc/devices'. It should
104   have a line under Character devices:
105   21 sg
107   Cdparanoia also uses (but doesn't really require) the kernel SCSI
108   cdrom driver, ie, a kernel with compiled-in or module-supplied 
109   cdrom support. In case of a module, this has to be loaded 
110   ('modprobe sr_mod'; again, usually part of boot up scripts).
111   This can be verified with 'cat /proc/devices'. It should
112   have a line under Block devices:
113   11 sr
115   If the modules are properly configured but not currently loaded, 
116   cdparanoia will trigger loading during its autoscanning.
118   In the /dev directory there have to be these descriptors:
119   br--------   1 cduser   user      11,   0 Jan 23  1995 sr0
120   br--------   1 cduser   user      11,   1 Mar 24  1993 sr1
121   etc...
123   and
124   crw-------   1 cduser   user      21,   0 Aug 27  1995 sga
125   crw-------   1 cduser   user      21,   1 Aug 27  1995 sgb
126   crw-------   1 cduser   user      21,   2 Aug 27  1995 sgc
127   etc...
129   and a link named 'cdrom' to the cdrom drive used.  The link can be
130   to the cdrom device *or* the generic device.  The link isn't required,
131   but it will speed autodetection.
133   Permissions and ownership can be changed at will, of course.
134   Here access is permitted only to user 'cduser'.
136 (for ATAPI and proprietary cdrom devices)
138   The kernel must have compiled-in or module-supplied cdrom support.
139   In case of a module, this has to be loaded ('modprobe <modulename>';
140   this is normally included in the boot-up scripts).
141   This can be verified with 'cat /proc/devices'. It should
142   have a line under Block devices:
143   <major> <name of cdrom driver>
145   In the /dev directory there have to be these descriptors:
146   br--------   1 cduser   user <major>,   0 Jan 23  1995 <cdrom device 1>
147   br--------   1 cduser   user <major>,   1 Mar 24  1993 <cdrom device 2>
148   etc...
150   a link named 'cdrom' to the cdrom drive used will speed up the
151   process of finding the cdrom (cdparanoia checks for the link first)
153   These steps are usually performed automatically during the
154   installation of Linux.
156 (for ATAPI cdrom drives using IDE-SCSI host adaptor emulation)
158   Overall, the instructions are the same as for normal SCSI drives.
159   To cause the CDROM drive to appear as a SCSI device instead of ATAPI,
160   the kernel must be compiled *with* SCSI and generic SCSI support, and
161   *without* IDE CDROM drive (ATAPI) support.  If native ATAPI support is
162   enabled, the kernel will always choose to use the native ATAPI driver.
164 "Missing Features:
165 ==================
167 Specifically, 'cdparanoia' will not play to sound cards, do MD5
168 signatures, do rate reduction, or generally make use of the maximum
169 speed available from a CDROM drive.  If your CDROM drive is *not*
170 prone to jitter and you don't have scratched discs to worry about,
171 look into Heiko's original cdda2wav.
173 Troubleshooting
174 ===============
176 lots o' stuff on the website.
178 Contacts
179 ========
181 I can be contacted at monty@xiph.org.  The main distribution site
182 for cdparanoia (and the original Paranoia patches to cdda2wav) is
183 http://www.xiph.org/paranoia/
185 Happy hunting.  Be nice to copyrights.
187 Monty