diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2012-12-31 05:04:42 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2012-12-31 05:04:42 +0400 |
commit | 71dc8760ff4de5f365330d1bc571d934deb54af9 (patch) | |
tree | 7346d42a282562a3937d82307012b5857d642ce6 /doc | |
download | cdrkit-71dc8760ff4de5f365330d1bc571d934deb54af9.tar.gz |
Imported Upstream version 1.1.11upstream/1.1.11upstream
Diffstat (limited to 'doc')
66 files changed, 8842 insertions, 0 deletions
diff --git a/doc/ANNOUNCEMENTs/AN-2.0 b/doc/ANNOUNCEMENTs/AN-2.0 new file mode 100644 index 0000000..c504298 --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.0 @@ -0,0 +1,1607 @@ +NEW features of cdrtools-2.0: + +Please have a look at the German open Source Center BerliOS at www.berlios.de +BerliOS will continue to support free hosting of cryptography projects even +when US laws change and don't allow to host cryptography projects in the USA. +Also look at sourcewell.berlios.de, the first Open Source announcement service +that itself is implemented as Open Source project. + +***************** Important news **************************** + +For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM + +***************** Please Test ********************************* + +All: + +- Now using the "Slottable Source" feature of the makefile system. + This is the fist modular reusable portable makefile standard + in the open source world. + + To see a new feature call: "make tinfo" + +- config.sub now recognises "parisc-unknown-linux-gnu" + +- Circumvent some problems with GCC-3.0 on Linux + +- Removed printf() definitions from schily.h to avoid type clashes + +- Support for SCO (Caldera) OpenUNIX (aka. UnixWare 8) + +- Better support for Darwin-1.3 and 1.4 + + This is: + + - enhanced makefile system + + - type casts needed for unusual types used on Darwin + (e.g. sizeof() returns long!) + +- Schily support includefiles rearranged to make portability even + easier. + +- mconfig.h now defines IS_SCHILY to signal users of the + Schily makefilesystem, that the Schily portability environment + is being used. + +- now includes the forgotten mkdep-sco.sh that helps to better + work around the SCO C-compiler. + +- timedefs.h modified. Now the last schily portability support include + file hast been reworked to make portability even much easier. + +- schily.h & standard.h have been modified to hopefully finally solve + all type clash problems with size_t & spawn*() + +- Compile support for QNX Neutrino + +- Now we hopefully have floating point support for _all_ platforms + even those without *cvt() and without __dtoa(). Thanks to a hint + from Thomas Langer <Langer.Thomas@gmx.net> we now use strtod.c + to gert a fallback __dtoa() + +- Added an autoconf test for rcmd() so cdrtools now should compile + again on BeOS and AmigaOS where no rcmd() is present. + +- fixed fexec.c to make it compile ion QNX + +- Now the complete libschily is included although it it not needed + for cdrtools. There are two reasons for doing this: + + - Cdrtools is _the_ program that is heavily tested on + many different platforms, so I will get reports for + compile problems this way. + + - cdrtools becomes a base docking platform for the SSPM + system this way. Now any of the Schily tools may be included + and compiled inside the base portability platform 'cdrtools'. + +- New supported architctures: + s390-linux-cc.rul parisc-linux-cc.rul parisc64-linux-cc.rul + +- Large File support for IRIX-6.2 (added autoconf test for -n32 cc option) + +- Large File support for IRIX-6.5 now everything works correctly if the + OS supports Large Files by default in 32 bit mode (uses fseeko()/ftello() + if present. This could only be done by massively changing the autoconf code + stolen from GNUtar. + +- Support for SGI IRIX platform ip17-irix + +- Support for SGI IRIX-6.5 + +- Try to support recent BeOS (again) + + - Workaround in libschily/comerr.c for the nonstandard + big negative errno values on BeOS + +- libschily now includes floating point printf() for BeOS + +- fileluopen.c from libschily now compiles on BeOS (without O_NDELAY) + +- workaround for the nonstandard negative errno values on BeOS + +- Schily makefile RULES for AmigaOS added + +- getpagesize() emulation for BeOS to make cdda2wav compile on BeOS + +- New rule allows automatic fallback to GCC if the configured + default compiler could not be found. + +- statdefs.h enhanced + +- Many corrections to give less warnings on SCO Openserver + +- Support for NT-5.1 (WIN XP) added os-cygwin_nt-5.1.id + +- VMS script build_all.com now includes astoll.c so compilation + on VMS should work again. + +- New macros for max/min values of int*_t in utypes.h + +- Limit the different handling of packed bitfields for AIX to AIX CC. + +- Unfortunately fragementation of cdrecord has begun. + I noticed this fact recently when people started to ask me + senseless things which turned out to be a result of + a modified cdrtools source that I have not ben aware of. + + One main goal of cdrtools is to provide a platform indepenant + user interface which cannot be achieved if people change important + parts os the user interface. + For this reason, I changed the license in hope that this will + help at least to keep the user interface the same on all + platforms and on all distributions. + + Please keep in mind that fragmentation in many cases increases + my workload. There is no real reason for a modification, + and (even worse) the people who create modifications do not help + to keep my workload low in order to help me (and Heiko and James) + with the cdrtools project. People should rather contribute to + the project. Cdrtools should be free and actively mantained + in future. With increasing workload, I don't know how to do this. + + +- Add hints that compiling on unknown platforms wil only work if + "smake" is used. + +- Autoconf code for Large file support now handles Linux system include + file bugs that prevented correct behavior on 64 Bit Linux systems. + + +- Better autoconf code for the problems with mlock() & HP-UX-10.20 + +- Better autocheck code for available C-compilers on HP-UX + Now even a fallback from GCC to CC works. + +- Some changes to make compilation on 64 bit systems more correct + +- Added support for GNU Hurd to the Schily Makefilesystem + +- Cast pointerdiffs to int for printf() %.*s format and/or include + workarounds for 64 bit problems in this area. + +- Several modifications to make OS/2 work again + (e.g. -lsocket added) + +- fexec.c now uses a configurable PATH environment separator + to allow PATH lookup on OS/2 + +- A 20 year old extension has been removed from format.c + This caused printf() to interpret %X as %lX. This caused noticable + problems on IA-64. It should have created problems on True64 + and on 64 bit Sparc programs too but was not directly visible + due to a different stack content. + +- remove #elif to avoid a GCC-3.x warning + +- config.sub now knows about IA64 architecture + +- Makefilesystem now spports compiler specific optimization flags + +- Align_test.c now creates a better include file (using more () to + make sure the compiler created correct code). + +- Makefilesystem changed $(MAKE) to "$(MAKE)" to allow spaces + in pathnames + +- Correct autoconf test for broken OS like MAC OS X that do not + allow local malloc() implementations due to linker bugs. + +- Add autoconf test for strange clock_t definition method on Linux + +- README.ATAPI enhanced for all platforms + +- README.ATAPI now contains a hint on how to use ATAPI drives on HP-UX-11.x + +- Support for FreeBSD on Ultrasparc added to the makefile system + +- *roff'd man pages in .../doc dir re-created + +- Try to work around a bug in OpenBSD. + OpenBSD defines EOF in ctype.h but POSIX only mentions an EOF definition + for stdio.h. If we include ctype.h bfore schily.h on OpenBSD while + stdio.h has not been included, this will fail. + +/*--------------------------------------------------------------------------*/ + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +- The paranoia code from cdparanoia (written by Monty xiphmont@mit.edu) + has been converted into a portable library. + +/*--------------------------------------------------------------------------*/ + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +- Changed to allow compilation on K&R compilers too + +- Speedup by 300% + The speedup is nearly processor independant. + + Pentium-233 2443 sectors/s 32x + 333Mhz-UltraSparc-IIi 6402 sectors/s 85x + 900Mhz-UltraSparc-III+ 22813 sectors/s 304x + Athlon-1000 24378 sectors/s 325x + Athlon-1700 40168 sectors/s 535x + + Depending on the speed of gettimeofday(), these numbers may be up to 5% + too low. + +- Code is now put under GPL. + +/*--------------------------------------------------------------------------*/ + +Libscg: + +- Trying to add a workaround for just another bug in the + sg driver in the Linux kernel. If a TIMEOUT occurs, + the error code does not indicate a TIMEOUT. + +- Better scg_open() error messages when trying to do scanbus on Linux + and no /dev/sg* or /dev/pg* could be opened. + +- Output Request Sense buffer with -debug when the USCSI interface is + used on Solaris. + +- First attempt for support for the new IOKit SCSI interface on MaxOS X + Darwin-1.4 and newer with much much help from + Constantine Sapuntzakis <csapuntz@Stanford.EDU> + + Unfortunately there is not yet support for SCSI devices nor + is there support for standard Bus,Target,Lun device namings. + I hope that bot may be added in the future. + + Volunteers who like to help with the libscg interface stuff + for Darwin-1.4 are welcome. + +- Try to make scsi-beos.c compile on new BeOS version 5 + +- First attempt to integrate the AmigaOS SCSI transport interface code + from Thomas Langer <Langer.Thomas@gmx.net> + +- Massive modicifation of the support code for SCO OpenServer 5.x + + As the kernel implementation contains several bugs, + the new code will by default not check for hard disks in scan mode. + + The code checks the following environment variables: + + "LIBSCG_SCAN_ALL" To force scanning for all SCSI targets. + "LIBSCG_SCSIUSERCMD" use old SCSIUSERCMD ioctl() + "LIBSCG_MAX_DMA" override MAX_DMA value, value must be number in kB + "LIBSCG_ENABLE_USB" enable access of USB devices + +- Version -> 0.6 + +- Adding support for the CDROM_SEND_PACKET ioctl() from cdrom.c + + Thanks to Alexander Kern <alex.kern@gmx.de> for the idea and first + code fragments for supporting the CDROM_SEND_PACKET ioctl() from + the cdrom.c kernel driver. Please note that this interface in principle + is completely unneeded but the Linux kernel is just a cluster of + code and does not support planned orthogonal interface systems. + For this reason we need CDROM_SEND_PACKET in order to work around a + bug in the linux kernel that prevents to use PCATA drives because + the kernel panics if you try to put ide-scsi on top of the PCATA + driver. + + The code is currently in "status nascendi" but usable with some trade offs. + + To use: call e.g. + + cdrecord -scanbus dev=ATAPI: + + cdrecord -dao -v speed=24 dev=ATAPI:0,0 .... + + Be careful! This code is only needed in order to be able to use + PCATA CD-writers on notebooks because there is a severe kernel bug. + Unfortunately, this bug causes the kernel to hang (and force you + to reboot) if you try to call: + + cdrecord -scanbus + + without the dev=ATAPI: option. + + In this case cdrecord will hang infintely and unkillable + in open("/dev/sg1", 2) => you need to reboot :-( + + Repeat by: Insert a PCATA CD-Writer in a Sony VAIO notebook and run + cdrecord -scanbus. + +- Enhanced list of SCSI Error texts from SCSI standard from 29.5.2001 + +- New callback function to allow execption handling to be done after + the current SCSI command did finish. + +- scsi-aix.c now uses UIntptr_t in alignement macro. + +- Some 64 bit casts in the USCSI code from scsi-sun.c + + For hints on the Linux Packet code in ide-cdrom.c read README.ATAPI + +- Introduce a workaround for a conceptional Bug in the Linux kernel + SCSI implementation. + + Linux is unable to distinct between a target selection timeut (e.g. switched + off target) and a command timeout (e.g. command needs more time than expected). + + If the detected command time is < 1 second, libscg will now assume a dead target. + +- Fix a bug with ATAPI in scsi-vms.c - now the SCSI status byte is OK + Thanks To Eberhard Heuser + +- Allow up to 26 IDE controlers in scsi-vms.c - Thanks to Chip Dancy + +- Do not open all /dev/scg* devices on Solaris if not in Scanbus mode + +- Handle ENXIO in Solaris USCSI interface code as indicator for a + switched off device. + +- Max DMA size for Linux ATAPI Packet interface code corrected. + Max DMA is 128k-1 and not 128k. + +- Support for recently defined new SCSI target types found in SCSI + standard. + +- New help system that lists all SCSI low level transports for a specific + platform together with their properties. + +- Allow consistent usage of alternate SCSI transport layers. + + Now the Solaris USCSI implementation and the (SuSE) Linux ATA implementation + behave similar and both allow dev=<Transport> as well as dev=<Transport>: + for -scanbus, e.g. + + cdrecord dev=USCSI -scanbus + cdrecord dev=USCSI: -scanbus + cdrecord dev=ATAPI -scanbus + cdrecord dev=ATAPI: -scanbus + + all work the same way. + +- Small change for Linux device initialization by request of Linus Torvalds + + The purpose of this change is to support a new SCSI transport interface + for ATAPI in Linux that came up with the latest developer Linux kernels + (e.g. Linux-2.5.43). This interface allows to send SCSI commands directly + to ATAPI drives without using ide-scsi and sg, but it has several pitfalls. + + While Linux allows to use DMA when using ide-scsi and sg if the + sector size is 2048 and the transfer buffer starts page aligned, the new + direct interface never uses DMA (acording to Linus Torvalds). So if you + write audio CDs or data CDs in RAW mode, there is no difference. If you + write data CDs in TAO or DAO mode, using ide-scsi and sg allows much + higher write speed. Note that this may change in future.... + + Notes for use: + + - You need to specify something like dev=/dev/hdc + Note that this is unsupported by libscg. + + - As long as there is no safe way for libscg to find out early that + this new interface is used, libscg may hang a bit on open. + This is caused by the fact that libscg is forced to read + from the open filedscriptor to clean up old Linux sg driver + interfaces. This was never a problem with /dev/sg*, but + when doing the same thing, this causes libscg to read content + from /dev/hd* + + - There is (currently) no way for cdrecord to scan for ATAPI + devices when using this interface. + + As long as this is true, you may want to prefer to use + + cdrecord dev=ATAPI: -scanbus + and + cdrecord dev=ATAPI:0,0 ... + instead. + +- Fix scsi-unixware.c to allow multiple opens. + +- Fixed several typo's. + +- Avoid to read from the media (when using the new experimental + Linux ATAPI transport) while trying to clear old sg driver status. + +- Woraround for Linux kernel design bug: CDROM_SEND_PACKET sets errno + to EINVAL in case SCSI sense key is "Invalid command". + +/*--------------------------------------------------------------------------*/ + +Rscsi: + +- RSCSI now works if the target is a Win32 system. + This is not done by changing rscsi.c but by fixing a bug + in Cygwin! + + The fix to Cygwin's rshd is posted in + + http://sources.redhat.com/ml/cygwin-apps/2001-05/msg00000.html + + Thanks to egor duda <deo@logos-m.ru> + + NOTE that in a few weeks this patch will be integrated into Cygwin + and cdrecord/RSCSI will work out of the box on a recent Cygwin release. + +- Now prints user ID & user Name into DEBUG file + +- Now using signal safe read/write functions. + +- Code now checks for HAVE_NETDB_H (added by request of + "Thomas" <Langer.Thomas@gmx.de> to help with AmigaOS port) + This should indicate whether there is support for rcmd() + in the OS. + +- Make it compile on BeOS + +- changed because GNU Hurd has no MAXHOSTNAMELEN + +- Return "PIPE" for hostname comparison if called from e.g. 'sshd'. + +/*--------------------------------------------------------------------------*/ + +Cdrecord: + +- New option -overburn + + This option has been added as many people seem to be unabe to understand + that they are going to write more than the official disk capacity from + reading cdrecord's output. Oveburnung now is no more done by default! + + NOTE that there even are some drives that prevent you from writing + exactly the official size and stop several hundreds of sectors before. + +- Do not print a warning for writing more than 90 minutes if the media is + a DVD + +- Fix for a problem with setting high priority on Win32 systems. + Thanks to egor duda <deo@logos-m.ru> + +- Sony MMC drives now work in -multi session mode. + There was a bug in cdrecord that was accepted by all other drives. + The bug did cause a temporary bad setup to the drive. + +- I hope that the 90 minute CD capacity warning now will finally + disappear for DVD writers. + +- Old test code removed that prevented cdrecord from being able + to write manually configured indices. Note that the index lists + from the *.inf files with using the -useinfo option alway worked. + +- -force will force cdrecord to ingnore any failed forced OPC. + currently this is only done if the drive does not support + forced OPC. + +- Do forced OPC before blanking a CD-RW + +- Driveropts "burnproof" renamed to "burnfree". + This has been done as this technology now appears in the MMC standard. + +- Cdrecord now shows whether BURN-Free is active. This makes + sense as Ricoh's "Just-Link" is enabled by default. + Unfortunately, the way "Just-link" is implemented is not compliant + with the MMC standard. We will have to wait until I get the needed + information from Ricoh. + +- Support for MMC RAW mode writing. + + This allows to do disk at once recording on Philips drives that + do not support SAO. + + You may write audio tracks in RAW mode. There are some new + and most likely transient options: + + -raw16 Write 2352 Bytes sectors + P+Q Subchannel + + -raw96r Write 2352 Bytes sectors + P+W Subchannel (R-W in raw mode) + + -raw96p Write 2352 Bytes sectors + P+W Subchannel (R-W in packed mode) + + Indices are fully supported in RAW mode. + + MCN & ISRC are not yet suported in RAW mode, they are silently discarded. + + I know that cdrecord currently does not work in RAW/R96P mode. + It is not clear whether this is a bug in cdrecord or in the Plextor + firmware as I did not yet found another drive that claimes to support + RAW7R96P. + + If you find other problems in RAW mode or if you find + new bugs introduced in old write modes, please send a bug report. + +- Cdrecord now checks the properties of the writer. If a specific write + mode is not supported by the writer, cdrecord warns you and makes + a suggestion for a similar alternate write mode. + + With the curent structure of cdrecord, it is not possible to silently + e.g. change the write mode from -dao to -raw96r + +- MMC compliant drives are automatically scanned for supported write modes. + This should help to make cdrecord work without manual static configuration. + My hope is still to have no need to know all drive properties in + advance, so new drives will continue to work as long as they + are standard comliant enough for cdrecord. + + NOTE for GUI implementors: + + the line starting with the text: + + "Checking possible write modes:" + + will go away in the near future. + + The line starting with: + + "Supported modes:" + + will remain and should be checked for possible write modes. + +- Fixed a bug in the option checking that prevented to write + data CD's at all. + + Now only "RAW data" CD's are flagged as expected. + +- Fixed a bug in the Firmware bug recognition system. + This bug did prevent cdrecord to work with Philips drives + when writing in RAW mode. + +- New options -copy & -nocopy to allow to modify the 'copy' bit + in audio subchannel data. + +- -scms option added to the man page and online help. + +- New model to compute SCSI transfersizes + +- -xa1 -xa2 sector typedefinitions changed. + +- Debug messages while checking possible write modes of MMC + compliant made optional. + +- RAW writing scatter sector function made more general + +- New functions to convert between 2448 and 2368 byte sectors + + NOTE: Read README.raw + +- add a forgotten if (xdebug) in drv_mmc.c. + This caused a superfluous write mode debug message to be printed + +- do installation of exit handlers (to reset SCSI state) earlier + +- Cdrecord now does not exit with 0 anymore when interrupted with ^C + during the waittime before starting to write. + +- First CD-Text support (can only copy CD-Text information from master + disk) + + Writing of CD-Text is supported for all drives that support + CD-Text in SAO write mode and for all drives that support + to write in RAW/RAW96R mode (use -raw96r in this case). + + NOTE: Read README.cdtext + +- Circumvent a bug in the system include files from Linux that + makes printf() a macro and prevented compilation with GCC-3.0 + +- Added some #include <stdio.h> to substitute missing printf() definitions + +- SAO/R16 mode removed from tests, it may never occur. + +- Changed some .min defines in structs to .pmin to avoid K&R complier + problems + +- better FIFO debug messages + +- New driver config table for Taiyo Yuden EW-50. + This dive is like a Philips CDD-521 but has been reported to + swab audio data. + +- rscsi client code now uses buffered read to speed up on Cygwin + +- rscsi client code now uses signal safe read/write functions + +- Cdrecod now does not open/close the tray anymore if the disk + is going to be erased. + +- modify -version output if Clone writing support is present + +- A new driver has been added that first checks the media if the drive + supports to write CD & DVD. + +- Behaviour of the function that reads fs= tsize= and similar + corrected. + +- Modified driver interface for better DVD support + +- FIFO Code now checks for HAVE_FORK (added by request of + "Thomas" <Langer.Thomas@gmx.de> to help with AmigaOS port) + +- Better messages when trying to write more than the amount of data + that fits on a DVD. + +- The DVD driver now reports a DVD media back to the high level code. + +- correctly use the buffer capacity code from the driver instead + of the MMC-2 read buffer cap code directly + +- Support for the unusual not ready error code of the CyberDrive CW038D + +- CD-Text Code now also accepts Text File without 4 byte Size header + +- CD-Text file read code now is able to do CRC error correction + Note that only songle bit errors per 18 byte pack. + +- CD-text Autoring support: + + CD-text may now be based on fields found in the *.inf files + created by cdda2wav. + + To create a CD with CD-Text based on information from freedb.org + call: + + 1) cdda2wav -B -v255 -L + 2) cdrecord {-dao!-raw96r} -v -useinfo -text *.wav + + CD-text TODO: + + - Check whether the *.inf files are all from the same CD + and clear some CD-text fields that are only valid if + they relate to one CD only. + + - Add some more fields (mainly a dficiency of cdda2wav) + + - Support multi language text + + - Support character coding other than ISO-9959-1 + + CD-text may be based on fields found in the *.inf files + created by cdda2wav. + + NOTE: Read README.cdtext + +- better messages for CD manufacturer codes that are not in the + latest free Orange forum table. + +- Default usage code is now only 6 lines so the error message + does no longer scroll out the screen. If yu like to get the old + long usage information, call cdrecord -help + +- move 'dd' like number conversion stuff into getnum.c + +- Allow the /etc/default/cdrecord parsing code to be used by + readcd too (as documented in the man page) + +- First support for Plextor's VariRec feature in the PX-W4012 + I am not sure about the final user interface. + For now, call e.g. cdrecord speed=4 driveropts=varirec=-1 + for all audio CDs. Allowed varirec parameters are -2, -1, 0, 1, 2 + VariRec only works at write speed 4. + +- Print the actual current write speed in verbose mode. + +- DVD-R code (undisclosed) now supports: + Vendor_info : 'MATSHITA' + Identifikation : 'DVD-RAM LF-D310 ' + Revision : 'A116' + +- Support for SCMS from *.inf files + Note that you need to use cdda2wav/cdrecord that have fitting versions + because of this change. Otherwise cdrecord may add SCMS copy + protection. + +- RAW mode now honors COPY bit and SCMS coding. + +- Avoid coredump with "cdrecord textfile= non/existant ..." + +- Corrected printf() formats for verbose printing to hold enough + space for media > 1 GB (DVD) + +- Corrected printf() formats to make the write speed non-jumping. + +- If called from a GUI, cdrecord now reads from "stderr" if + the CD-input-data is from "stdin". + If it turns out that stderr is not open for reading, cdrecord + waits to receive a SIGUSR1 + +- Better printouts for the DISC-ids covered by the orange forum embargo. + +- DVD structure structure definition enhanced to reflect + current standard. + +- new option gracetime= + +- Try to abort DAO recording with a flush_buffer() if ^C is hit. + +- Try to make cdrecord behave more polite for platforms (like Cygwin) + that don't support large files when the DVD data to be written + is read from stdin. + + mkisofs ... | cdrecord ... - + + will now work for DVDs on non large file OS + +- Call flush buffer in silent mode to avoid error messages with + cdrecord -toc called on a CD-ROM drive. + +- Avoid core dump is a single .inf file is missing and -text + option is used. + +- Data structures modified to allow new features in the future. + +- Fixed a bug that caused cdrecord to ignore escaped file type + args if they looked like a valid option (e.g.): + + cdrecord dev=0,0 -dao -v -- speed=8 + + "speed=8" should be handled as if it was a filename but was + skipped. + +- Print write mode when starting to write. + I hope that this helps me to understand incorrect "bug reports" + from lazy people who do not include their cdrecord command line. + +- Printing ATIP information is now caused by a separate (internal) flag + and not ny a hack. + +- Do not allow to write to ultra low speed RW media if the drive + is not able to write at 2x or 1x. This may be circumvented + with -force. + +- Do not allow to write to high speed RW media if the drive is not + a high speed RW drive. This may be circumvented with -force. + +- Data structures modified to allow new features in the future. + + Trying to make driver interface simpler and cleaner. This resulted + in a major rewrite of the driver interface. + + - please test if multi session with TEAC CDR-50/CDR-55 + still works. + + As a lot has been changed in the driver interface, please test + if bugs have been introduced! + +- New test that prevents to write CD-RW media too slow + +- Display of current DVD write speed now correct and no more based on + single speed CD but on single speed DVD. + +- Moving SAO/RAW start code from cdrecord.c into drv_mmc.c + allows clean DVD-R/RW driver interface code. + Now cdrecord -dao will work correctly (as expected) even for DVDs + +- speed= option no longer defaults to speed=1 + Each driver now includes a default speed and a maximum speed. + If the maximum speed in the driver is wrong, use -force to overwrite. + + Please send feedback if my assumptions on write speed are wrong: + + - No drive using the Philips CDD-521 command set is faster + or slower than 2x + + - No drive using the Yamaha CDR-100 driver is faster than 4x + No drive using the Yamaha CDR-100 driver is slower than 2x + + - The Tayo Yuden CW-50 is 2x + + - The Kodak PCD-600 is 6x + +- Abort when the last track # of a multi session disk would be > 99 + +- Data structures modified to allow new features in the future. + +- Better bessages for CD-RW where the speed ofthe media does not match + the properties of the writer. + +- Avoid to reload media in -dummy RAW mode. + +- Correctly abort if there was a problem when writing CD-Text in the LEAD-IN. + +- Again: Data structures modified to allow new features in the future. + + This release uses the new data structurec to allow to write ISRC/MCN + in RAW mode. + +- Fixed a bug that caused cdrecord to write a wrong relative time + into the subchannel data when writing audio CDs in RAW mode. + This affected the pregap sectors if pregap size was != 0. + +- Allow cdrecord to write ISRC & MCN even in RAW mode. + +- Allow Simulation driver cdr_simul and dvd_simul to simulate any write + mode. + +- Simulation driver cdr_simul and dvd_simul changed so no reload on the + real background drive occurs. + +- Since last release , the new data structures allow to write + ISRC/MCN in RAW mode. This now makes RAW mode fully usable for + audio CDs. NOTE: if you find any problems with CDs written in SAO + mode, first try to write the same CD in RAW mode if your + drive supports to write in RAW mode. Tere are a lot of drives + that have rotten firmware and create broken CDs in DAO mode. + +- Support for Yahama Audio Master Quality Recording. + + This support is switched on via driveropts=audiomaster + + I am sorry, but I had to do major changes in the MMC + driver in order to be able to support Audio Master. + This may have affected all other driveropts= + too. Please test and keep in mind that I like to have + the mext major release in a few weeks. + + When audiomaster has been specified, BURN-Free recording + is disabled and - as the visible size of the medium + decreases - a second disk size check is done after + Audio Master has been turned on. + +- man page enhanced according to new features + +- Short Usage funtion now includes a hint on how to + obtain the list of possible driveropts= parameters + +- Include the tags + + "VARIREC ", "AUDIOMASTER ", "FORCESPEED " + + In the "Driver flags" line that is visible with + + cdrecord -checkdrive. + +- cdrecord driveropts=help now includes + + "varirec=" and "audiomaster" + + +- Support for writing data sectors in RAW mode has been added + to the GPL#ed version of cdrecord. + Note that writing data sectors in RAW mode is a highly CPU + intense task. For this reason, cdrecord first checks whether + it would be possible to do the requested job reliably. + If it is questionable whether the job could be done in the + desired speed, cdrecord aborts with a related message. + + The max theoretical speed (not including the writing load) + is printed in a new line starting with: "Encoding speed :". + Cdrecord allows half of this speed. + +- Allow RAW writing of data sectors to work correctly without + the need of specifying -data + +- Allow spaces as delimiters between different tags in a single + line in the file /etc/default/cdrecord + +- Support for Ricoh (and others) Just Link + + This support is switched on via driveropts=burnfree + + Note that Just Link is by default swichted on in the drive + but as Just Link may create CDs that are no 100% OK, + cdrecord now by default switches it off. Now you definitely + need to specify driveropts=burnfree to switch Just Link on + again. + + If you call cdrecord dev=... -checkdrive you will see + the TAG "BURNFREE" as a hint that either Burn-Proof or + Just Link is supported. + +- "Turning .... " messages for drive special functiions are + now printed to stdout + +- Limited display (once every 1 MB) of the drives internal buffer + RAM fill ratio. + +- Display the minimal drive buffer fill ratio a the end of the write + process. + +- Display number of predicted drive buffer underruns based on the + fill ratio of the drive buffer (incremented if fill ratio is < 5%). + +- Display average write speed at the end of the write process. + In dao mode, this includes the time needed to write the lead in and + thus is not 100& correct (value is too low). + +- Display of the number of times the Buffer underrun protection + has been active for drives where the manufacturer send me the needed + information (Ricoh, Yamaha, Aopen). It may work for other drives too + but there is no guarantee. + +- Fixed a bug in the driveropts= parsing routine. + +- New driveropts= option "forcespeed". Use with extreme care as this + will force several drives ((Ricoh, Yamaha, Aopen, ...) to write with + the selected high speed although the mediaum is too bad for this + operation. + +- New driveropts= option "tattooinfo". Use together with -checkrive + to retrieve the information about the picture size that will fit. + + The result will be someting like: + + DiskT@2 inner r: 265 + DiskT@2 outer r: 583 + DiskT@2 image size: 3744 x 318 pixel. + +- New driveropts= option "tattoofile=". Use together with -checkrive + to write an image of the right size to disk. + + Read README.DiskT@2 + +- Rearrange the order of the new statistics printing + +- Allow several of the new statistics to be printed even if cdrecord + aborts due to an error. + +- Let the old Philips drive use the common CD media 'reload' function. + +- Try to find out if a drive is MMC, MMC-2 or MMC-3 compliant. + - see cdrecord -checkdrive + +- Suppress printing oof the average write speed if the size of the + tracks is not known prior to start CD writing + +- ATIP printing (cdrecord -atip) enhanced to support Ultra high speed + CD-RW media. + +- Check whether somebody likes to write a Ultra high speed CD-RW on + an improper writer + +- Print MMC conformance level of the drive based on content of + SCSI mode page 2A. + +- Print more information for MMC-2 & MMC-3 drives with cdrecord -prcap + +- The new true CAV Plexwriter 482448 is now supported. + + Please note that it is not easy to write at 48x. You definitely need + a correct DMA setup to optimal values. + + Also note switching on Burn-Proof will reduce the max speed to 40x + so it may be that you don't need Burn-Proof if you simply reduce speed + to 40x manually + +- make sure that using both -copy and -useinfo will not result in unclear state + Instead the content of the *.inf files will be used + +- Simulation driver (cdr_simul / dvd_simul) now uses correct speed ratio + for DVDs + +- Simulation driver now supports fake "Next writable address" function. + +- On Linux usleep() is very unacurate, meter the real sleep time + and cumulate a correction value. This allows the simulation driver + to simulate the correct write speed. + +- Added a note to Heiko Eißfeldt's libedc when printing RAW encoding speed + +- Limit gracetime to 999 seconds and make output correct even for + times > 9 seconds. + +- Corrected a bug in the MMC driver that caused cdrecord to use the + wrong place for current speed when doing MMC/MMC-3 dependant stuff + +- cdrecord -prcap will now use the same format for MMC & MMC-3 drives + rsulting in a better readability. + +- Don't print write time statistics if writing did not yet start + +- Try to handle drives that don't support to write at speed 1 but + will fail if you try to call cdrecord speed=1 ... + +- New option -immed tells cdrecord to set the SCSI "IMMED" flag in certain + commands. + + This option is not needed if your PC has been configured correctly. + However, ATAPI drives usually cannnot do disconnect/reconnect. + As a result, the PC may hang with long lasting commands if the CD-writer + has been connected to the same IDE cable as the harddisk. A correct + solution would be to set up a correct cabling but there seem to be + notebooks around that have been set up the wrong way by the manufacturer. + As it is impossible to fix this problem in notebooks, -immed has been + added. Use this option with care and do not expect cdrecord to work + correctly if it has been called with -immed. + +- -force will not completely removeany speed restrictions for writing in RAW + mode. Instead, only the speed that a single CPU allows will be permitted + by cdrecord. This still has a high potential for a buffer underrun. + By default cdrecord still is limited to half the encoding speed that + a single CPU allows. Even this may result in a buffer underrun on Linux + as Linux does not use DMA for IDE when the sector size is != 2048 bytes + which is true in RAW write mode. + +- If the environment variable "CDR_FORCERAWSPEED" is set, this will have + the same results for RAW speed as using -force. However, -force has more + general effects and should be avoided. + +- Fixed a bug in fifo.c introduced with the driver interface change. + Now cdrecord compiles again on VMS (without FIFO). + Thanks to Eberhard Heuser. + +- Allow cdrecord to compile without libedc + Thanks to Eberhard Heuser. + +- Run read buffer capacity in silent mode. + This is needed because drives with buggy firmware like the CW-7585 + did cause hundreds of "command sequence erorrs" to be emmited when + trying to read the current drive buffer fill ratio. + +- Fixed man page to correctly call SAO mode SAO and not DAO. + +- Encoding speed is contend dependant. Initalize test buffer + before doing a libedc speed test to make the result independant + from grabage on the stack. + +- Support for libscg help system + +- Warn to use cdrecord blank=all if a drive rejects cdrecord blank=fast + +- Fixed a bug that became obvious with Yamaha AudioMaster mode and CD-Text + The problem was caused by the fact that cdrecord did not allow to overwrite + the lead in start time in cdrecord's internal data structures. + +- Fixed a bug with recognition of complete disks that came up after cdrecord + did allow to deal with >= 90 minute CD's. + +- Changed Text "BURN-Free was not used" to "BURN-Free was never needed" because + people did believe that the old text means that Burn-Proof has been disabled. + +- Man page now includes a hint that padsize is always using 2048 as sector size. + +- Fixed a bug with padsize=xxx if sector size was not 2048 bytes. + Cdrecord in this case did just divide the number of pad bytes by the + number of bytes in an output sized sector (e.g. 2448 or 2352 bytes). + This did result in a too low number of padding sectors. + The fix caused a complete rewrite of the pad size handling. + +- Treat packet mode similar to normal writing: Print Drive buffer fill ratio + and current write speed. + +- Treat padding similar to normal writing: Print Drive buffer fill ratio and + current write speed. + +- Make verbose printing consistent and non-jumping + +- A new experimental feature of the -immed flag is to + tell cdrecord to try to wait short times wile writing + to the media. This is expected to free the IDE bus if + the CD/DVD writer and the data source are connected to + the same IDE cable. In this case, the CD/DVD writer + would otherwise usually block the IDE bus for nearly + all the time making it impossible to fetch data from + the source drive. + + As this is an experimental feature, I would like to get feedback. + + +- #ifdef _POSIX_MEMLOCK/_POSIX_PRIORITY_SCHEDULING Tests now + POSIX 2001 compliant + +- Do not try to close fd if running on an OS that does not use an fd + to mmap() chared memory from anonymous pages. + +- Print Orange Forum embargo warning only if ATIP minutes == 97 + because some DVD writer return junk with read ATIP + +- New option minbuf= to choose the mininum drive buffer fill ratio + for the ATAPI wait option that is intended to forcibly free the + IDE bus to avoid buffer underruns with bad HW configurations. + The permitted range is 25..95 for 25%..95% buffer fill ratio. + +- minbuf= may switch on the ATAPI wait option without enabling + the SCSI Immed option. + +- Forcibly switch on -v for now if the ATAPI wait option has been + selected. This is needed because due to a bug, this option will + not work without -v + +- Make FIFO code work on AmigaOS + + +For Yamaha Disk Tatoo features read README.DiskT@2 + +/*--------------------------------------------------------------------------*/ + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +- Changes to make cdda2wav compile better on Alpha/True64 + +- Restructured to better use the schily makefile portability structures. + +- Changed handling of Table of contents. Now the more informative + methods of Read full toc are being used in favor to the old SCSI readtoc + command. For Sony methods, the fallback is the old method. + The new methods are available on MMC drives and modern drives with + Sony command sets. It should enhance access to very weird multi session + cds. + + ************** + NOTE: If your drive still has problems to copy such non-CD's, there + is a simple hack to allow the disk to be copied on all drives: + + Use a (black) whiteboard pen (non-permanent) and paint on the + space directly outside the visible ring that is in the middle + of the non-CD. This is the space where the broken TOC from the + second session is located. + + After doing the copy please return the disk to the dealer and + tell the dealer that this is broken goods. This is the only way + to stop the big groups to defraud the customers. + ************* + +- Temporary hack to fix a bug in the ISRC code that caused the ISRC + string to be shortened by one character. + +- fixed ioctl handling of toc entries + +- checked ISRC retrieval (MMC + Plextor) + +- more checking for weird CDs with wrong track types + +- bugfix in setuid.c + +- read full toc method extended to a data track in the second + session for cd-extra/enhanced cd recognition + +- if the tracks in the TOC are labelled as data, this is checked + and corrected if untrue + +- show cd text disc identification, if one exist + +- a new perl script to generate a binary cdtext file for use with + cdrecord. This is currently very simple, but it enables you to + create cd-text enriched copies from non cd-text originals. + For a hint how to use the new perl script see the CD-text usage + notes above. + + +- New option -L to ask freedb.freedb.org for CDDB information. + This alllows to automatically create CD-Text CDs. + +- correct TOC endianess for FreeBSD ioctl interface. + +- Fixed a bug that caused cdda2wav to dump core with certain + CD-Text data. + +- new option -L changed. Now a numerical parameter (0 or 1) + defines the handling of multiple cddbp entries. + 0 enters user interactive mode. + 1 take the first entry unconditionally. + I still need a reasonable way for gui interaction in this case! + Proposals are welcome. + +- made cddbp handling for mixed mode cds more robust. + It is unclear yet, if data tracks have to be included in the + query. Anybody knows the definitive answer? + +- Better TOC ADDR/CRTL (red book) handling + +- Better method to scan for indices. + +- Support for SCMS in *.inf files + +- Better SUID/SGID handling + +- new script cddda2ogg + +- bugfix deemphasizing (thanks to Klaus Wolterec) + +- bugfix rounding error (creation of info files) + +- added AlbumPerformer entry in info files + +- integration of Monty's libparanoia + +- switch to Jörgs getargs option handling + +- Fix some bugs with option parsing introduced with the new option + parsing using getargs() + +- New option -version to make cdrtools behave similar + +- New option paraopts=opts for paranoia options. + +- Print Paranoia statistics result at end of every track. + +- prepare for better recording of discs with illegal TOCs + +- prepare for non-english cd_text languages + +- rewrite of the TOC handling code (now multisession capable + and much more robust) + +- add a fallback method (shmat()) for failed mmap() + +- linux bug workaround: open() sound device does block when device is busy. + +- several code cleanups, some 64-bit portability bugfixes + +- Fixed shell script 'cdda2mp3.new' to correctly use "#!/bin/sh" + +- Fixed a bug (introduced while converting to getargs()) that caused + cdda2wav to dump core on OS that implement read only text + correctly like Solaris does) if compled with gcc or Sun CC COPTX=-xstrconst + +- Remove old unused getopt() code. + +- Check DMA residual count + +- FreeBSD cooked ioctl() Byte swapping now finally OK? + +- Fixed a bug that caused cdda2wav to return wrong byteorder + on Big endian machines if -paranoia has been specified + +- fix several CDDB query bugs +- support CDDBP protocol 5 + +- customizable CDDBP server and port settings. + +- Fixed a bug in the paranoia calling code that caused + cdda2wav to try to access one sector too far on the media + if in paranoia mode. + +- Allow again compilation on FreeBSD + +- bugfix for CD Extra, when copyright messages were present + +- patch from Kyle to make CD extra handling more robust + +- bugfix for wrong warning message 'no generation of info files' + due to incomplete length + +- new verbose suboptions. Strings will finally replace the + tedious binary masks. For script compatibility the special + form of -v255 will be recognized for some releases. + -vhelp will show the new strings. +- reworked the toc display code to make it more orthogonal. + +- changed option 'speed-select' to 'speed' for better interoperability + +- Temporary added -v<number> for compatibility with old GUI programs. + Note: -v<number> is outdated and will be removed soon. + +- Implement a temporary compatibility bug for the -v option. + +- Support for libscg help system + +- Man page fixed + +- Fix for an uninitialized variable + +- New exit codes for xcdroast + +- Fix for a CDDB bug: need to use lead out start for play time + +- Fix for a CDDB bug: Allow whitepsace in Genre + +- Fix for a CDDB bug: need to count data tracks too + +/*--------------------------------------------------------------------------*/ + +Readcd: + +- better error recovery with -noerror + +- error handling increased + +- Handle signals and other aborts by restoring old drive state + +- Set PF bit with mode select. + +- New option -quiet to suppress primary SCSI error messages + in read CD error handling + This are the messages that are printed before entering the + retry mode. + +- Secondary SCSI error messages are now suppressed by default, + they may be turned on again with -verbose + This are the messages that are printed in -noerror + retry mode. + +- Better handling of C2 scans on unreadable data disks. + +- use comerrno() instead of comerr() if the drive is not ready + as errno is not valid after that test. + +- Enhanced output for C2 error scan. + +- Now use /etc/default/cdrecord as documented in the man page. + +- Better behavior with extreme badly readable media. + +- List number of completely unreadable sectors in addition to + the C2 error count. + +- Man page updated to contain all options + +- New option speed= to allow reading at slower speed and avoid read error + caused by vibrations of the media. + +- added new option -overhead to meter SCSI command execution overhead. + +/*--------------------------------------------------------------------------*/ + +Scgcheck: + +- Fixed Makefile so scgcheck now compiles on FreeBSD + +/*--------------------------------------------------------------------------*/ + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +- Man page updated and corrected. + +- Try to avoid the C-compiler warnings for getopt.c that are caused + by the non-confirming way of hacking used by FSF people + +- isoinfo now corectly displays file with filesize > 1 GB + +- isoinfo now implements a new option -s that displays the size + of the files in multiples of the sector size (2048 Bytes) + +- libhfs_iso reworked to use timedefs.h from schily portability support. + +- Better error messages for ISO and Rock Ridge directory sort problems + +- Preserves HFS file dates for AppleDouble, AppleSingle and NetaTalk files + +- Fixed a problem from an uninitialized variable in desktop.c + that caused random effects in Apple CD's + +- better documentation for README.sort/README.hide from James Pearson + +- Fixed a bug in sort code that caused the compare function to behave + symmetric when called c(a,b) vs. c(b,a) + +- First UDF support via -udf option - thanks to Ben Rudiak-Gould. + + Note that the UDF support is not what you might indend. It is currently + wired to the Joliet tree which is a bad idea. It also does not yet + support Symbolic Links, user ID's and similar. + +- Write messages with more correct size names for the floppy eltorito + boot images + +- Added a missing prototype in getopt.c + +- isodump.c isoinfo.c isovfy.c: + Correctly handle symlinks + use offsetof(struct iso_directory_record, name[0]) instead of + sizeof(struct iso_directory_record) - sizeof(idr->name) + +- Fixed a check in the Apple HFS code that used strcmp for + data that could contain null bytes. + +- Introduced many casts to enhance portability. + This was needed for GNU fnmatch.c and the HFS support lib libhfs_iso + +- Use Protoyped function definitions for hash.c to allow old UNIX variants + where sizeof(dev_t) is < sizeof(int) + +- Fixed a check in the Apple HFS code that used strcmp for + data that could contain null bytes. + +- Introduced many casts to enhance portability. + This was needed for GNU fnmatch.c and the HFS support lib libhfs_iso + +- Use Protoyped function definitions for hash.c to allow old UNIX variants + where sizeof(dev_t) is < sizeof(int) + +- Support generic boot code if session does not start at sector 0. + +- Fixed a minor bug with HFS labels & multi-session + Thanks to James Pearson + +- Only print a short Usage if mkisofs detected a usage error. + +- -z option now working to create CDs in a format with Linux proprietary + Rock Ridge extensions for transparent compression. + + This is a patch from H.P. Anvin. It makes only sense with Linux-2.4.14 + or later. + +- New option -debug + +- Correctly use stat()/lstat() with graft points + +- Fixed a bug with escape character handling in graft point handling. + +- Make the graft point a directory if the file it should point to + is a directory. + +- Correctly handle non-canonical filenames with graft points. + + .////././///test=OBJ/sparc-sunos5-cc/ will now work correctly + and not result in a corrupted ISO-Filesystem. + +- Canonicalize graft points so commands like: + + mkisofs -graft-points /a/b/././//=some_dir + and + mkisofs -graft-points /a/b/../c/=some_dir + + will not cause broken ISO images anymore. + +- Avoid unwanted information in debug information on disk. + +- Allow the -sort option to work with the Eltorito Boot Catalogue + +- Allow '-' to be part of the ISO-9660 filename if -no-iso-translate + has been specified. + Thanks for this hint from Georgy Salnikov (sge@nmr.nioch.nsc.ru) + from Novosibirsk, Russia. + +- Try to avoid an integer overflow with the -C option and DVDs + +- Try to fix (very old) rotten code in various files that did cause + integer overflows for files > 2 GB - 2kB. + + Inconsistent use of (always diferent) hand crufted code using + 2048, 2047, ... instead of SECTOR_SIZE, ISO_ROUND_UP(), ... + + Note that this is not only of interest for DVDs as mkisofs could + believe that > 2 GB of data would fit on a CD. + +- New code to print file type names. + +- Some more changes to reduce the probability of integer overflows + in size computations. + +- Fixed a bug in the code that removes sensitive information from + the command line. + +- Add text strings with descritpive text to the output_fragment structures + +- verbose > 1 (use -v) writes debug info for output fragments. + This uses the new strings introduced with the last version. + +- isoinfo now uses getargs() and includes -version and -help + options. + +- isoinfo now is able to find out that Joliet information is + present if the disk contains illegal Joliet UNICODE escape code. + This seem to happen with disks written with Adaptecs programs. + +- isoinfo has new option -debug that prints more information + from the Primary volume descriptor. + +- Support for Apple HFS on Mac OS X Thanks to James Pearson. + +- Support for more then 65535 directories as only the parent entries + need to fit into the path tables. + +- Full DVD-Video support thanks to Olaf Beck - olaf_sc@yahoo.com + +- Avoid a C-compler warning caused by mkisofs.h + +- Fixed a bug in the DEBUG code from the DVD-Video enhancements + +- Allow symlink targets to be up to 1024 bytes + +- devdump/isodump/isovfy now use getallargs() and implement -help/-version + +- If UDF but no Joliet is used, UDF filenames may be 255 chars long. + Note that this is still hack. + +- From James: New option -joliet-long to allow 103 UNICODE characters with + Joliet. This is not Joliet compliant but several other programs + also create long Joliet names. + +- Fixed a minor C non-compliance in ifo_read.c + +- Allow symlink targets to be up to 1024 bytes + +- devdump/isodump/isovfy now use getallargs() and implement -help/-version + +- If UDF but no Joliet is used, UDF filenames may be 255 chars long. + Note that this is still hack. + +- From James: New option -joliet-long to allow 103 UNICODE characters with + Joliet. This is not Joliet compliant but several other programs + also create long Joliet names. + +- Correct a minor problem with K&R compilers for the programs + in mkisofs/diag/ + +- Make fire PATH_MAX is defined in isoinfo.c too. + +- Make sure UDF directory permissions include 'execute permission'. + +- A patch from James that make mkisofs able to create a HFS volume < 4 GB. + +- Support for MS code page 1250 (Slavic/Central Europe) added. + Thanks to Petr Balas petr@balas.cz + +- A patch from James that make mkisofs able to create a HFS volume > 4 GB. + +- A new option -hfs-parms for better HFS support for HFS volumes > 4 GB + from James Pearson + +- Fixed several typos in the man page and the source + +- Belly based speudo fix for a problem with mkisofs -f (follow) + and symlinks to directories where directory content was + missing with the old version. The new version is most likely better + and we (James and I) could not find problems with the new version. + +- Make "HFS_TYPE" and "HFS_CREATOR" work as documented in ~/.mkisofsrc + +- Fixed a small typo in isofinfo.c + +- As mkisofs -f has bugs that cannot be fixed for this release, I decided + to mark the '-f' Option as non-functional. People who use it will be warned + that it does not work correctly. + +- Sort VIDEO_TS.IFO to be the first entry in VIDEO_TS/ woth -dvd-video + +- Disable Joliet if -dvd-video has been specified. This needs to be done to + allow the change above. + +- Correctly handle files > 1GB on the UDF filesystem. + Thanks to Wei DING <ding@memory-tech.co.jp> for the patch. + +- Add support for Code Page 1251 + +- Koi8-u added to libunls + +- Fix a nasty bug in the UDF handling part that caused mkisofs to + create completely broken filesystem images if directories have been + nested deeper than 8 and -D has not been specified. + +- Include a new piece of code that causes mkisofs to abort with an + error message if it turns out that the block numbers estimated + during the sizing phase do not match the block numbers in the + write phase. + +- Enabled a piece of code that has been introduced 2 years ago and that + causes mkisofs to prevent deep directory relocation if Rock Ridge + has not been spacified. + + If you like mkisofs not to omit the part of the directory tree that + is nested too deep, specify either -R, -r or -D. + + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer for this task: + Peter Berendi <berendi2@webdesign.hu> announced that he likes + to be the volounteer for this task. + + Unfortunately, I did no hear again from him, but I got + a proposal from + "Krisztian Gede" <nameless@mail.datanet.hu> + who also likes to do the job. + + Note that this can never be 100% correct as there is no relation + between the names on the master (UNIX) filesystem, the ISO-9660 + names and the Joliet names. Only the Rock Ridge names are + untranslated with respect to the original files on the + master (UNIX) filesystem. + + - implement Yellow book compliant XA extended dir attributes + + - add libecc/edc for CDI and similar. + This may not be needed if we ise VCDimager and recent + cdrecord versions. + + +CYGWIN NT-4.0 NOTES: + +To compile on Cygwin32, get Cygwin and install it. +For more information read README.win32 + +The files are located on: + +ftp://ftp.berlios.de/pub/cdrecord/alpha ... + +NOTE: These tar archives are 100% ansi compatible. Solaris 2.x tar and GNU + tar may get some minor trouble. + +WARNING: Do not use 'mc' to extract the tar file! + All mc versions before 4.0.14 cannot extract symbolic links correctly. + +WARNING: Do not use 'winzip' to extract the tar file! + Winzip cannot extract symbolic links correctly. + +Joerg diff --git a/doc/ANNOUNCEMENTs/AN-2.01 b/doc/ANNOUNCEMENTs/AN-2.01 new file mode 100644 index 0000000..3268bbb --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01 @@ -0,0 +1,1496 @@ +Please have a look at the German open Source Center BerliOS at www.berlios.de +BerliOS will continue to support free hosting of cryptography projects even +when US laws change and don't allow to host cryptography projects in the USA. +Also look at sourcewell.berlios.de, the first Open Source announcement service +that itself is implemented as Open Source project. + +***************** Important news **************************** + +For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM + +***************** Please Test ********************************* + +NEW features of cdrtools-2.01: + + +All: + +- Support for the ELF format in BSDi 4.x + +- Allow floating point printing on OS/2. This has been possible + since 11/2001 but OS/2 has been forgotten. + +- Correct OS/2 ranlib handling + +- New architecture 9000-831-hp + +- Include +DAportable in HP-UX cc options + +- README.hpux enhanced to include hints on how to compile 64 bit + binaries. + +- Support for NetBSD on PPC (macppc-netbsd-cc) + +- portable getdomainname() replacement now supports to get the domainname + from /etc/resolv.conf. This allows usage even on OS/2 + +- Typo in DEFAULTS files fixed + +- New generic target for symlinks + +- New file rename.c for portability part of libschily + +- Better Next STep support: + + - Some workarounds for broken unistd.h + + - -lkvm removed from Next Step config. + + - waitdefs.h fixed for very old BSD based systems (~ 1980) + like Next STep + + - strdup() moved into portability part of libschily + + - fixed typo in fctldefs.h R_RDONLY -> O_RDONLY + + - New file ttydefs.h includes portability phrases from ved and bsh. + + - Added an autoconf test for buggy termios.h in Next Step. + Next STep provides fully functional termios.h but tcgetattt(), ... + is missing in libc. + + - Test for clock_t changed to deal with a bug in Next STep. + Next Step illegally needs sys/time.h for clock_t + + +- Make recently introduced symlink install use relative symlinks instead + of absolute symlinks. + +- Change autoconf/statdefs.h to support nanosecond support for SCO + UnixWare and FreeBSD + +- Call conf/mkdep-sco.sh via sh to be independent from 'x' bit. + +- libschily/rename.c fixed for SCO Openserver fo avoid warning + for redefinition of MAXPATHNAME + +- libschily/usleep.c fixed to avoid SCO Openserver warning about + non matchin prototype in system include files + +- Better Portability for SCO UnixWare + + - New platforms i486, i586, Pentium III, Pentium Pro + + - Let strdefs.h also include strings.h for strcasecmp() + + - Support for missing struct sockaddr_storage + + - Support for broken wait3() (returns wrong timings) + + - Changed broken portability Prototype support in libfile + to use 'makefiles / prototype.h' based system + + - Changed fileopen() and filereopen() to avoid fdopen() + provlems (does not accept mode string that does not + match fd flags) + +- Catch the case where somebody tries to compile on Solaris with + /usr/ucb in PATH before /opt/SUNWspro/bin and when calling 'cc' + results in: + /usr/ucb/cc: language optional software package not installed + +- Trying to make the source get accepted by 'cstyle'. + +- Changes in the general topic 'Stack Scanning' and the software signal + system handlecond()/raisecond() that make the software signal system + now usable on all platforms. + +- Trying to support DOS with the DJGPP compilation environment + Thanks to Alex Kopylov <reanimatolog@yandex.ru> for the first version + of the port and further helping. + + Note that in order to compile cdrtools on DOS/DJGPP you need smake-1.2a20 or newer. + GNU make does not seem to work for a DOS compilation. + +- New File README.msdos + +- New RULES for DOS/DJGPP + +- Make some vars in align_test.c static because Mac OS X creates unneeded + name space pollution. + +- DJGPP has no SIGBUS, use #ifdef in avoffset.c and align_test.c + +- Several changes with casting Null pointer constants to Null Pointers + if they are used as parameters in var arg lists (see below). + +- New gethostname() fallback emulation using uname(2). + +- Better rename(2) emulation for Platforms that don't have rename(). + +- niread()/niwrite()/nixread()/nixwrite() in libschily now resets errno + to the old value in case EINTR did occur. + +- README.msdos has been corrected according to a hint from Alex Kopylov + +- New macros to platform independently set up integers in little endian + format. This is needed to e.g. write PC disk labels from big endian + platforms. + +- Rules extended to support volume management libs + +- The install-sh script not takes care about UNIX variants like SCO UnixWare + and SCO OpenServer that allow to give away files via chown. + + If this works and /tmp has the sticky bit set, the root test was unable + to remove the test files later. For this reason, now a subdirectory + in /tmp is used. + + +- Support for the special .PHONY: target ---> needs smake-1.2a21 or newer + + This helps to deal with files like INSTALL operating systems + like Win32 and Mac OS that don't honor file name case and prevents + the file named INSTALL to get into trouble with 'make install' + + +- 'make install' now works on operating systems that require a '.exe' + suffix for executable binaries + +- Updated the file README.ATAPI + + Updated information for Linux, SCO-OpenServer, SCO-UnixWare, Win32 + and DOS + +- mconfig.h now supports make COPTX=-DNO_FORK & COPTX=-DNO_VFORK + +- snprintf() from libschily now correctly follows POSIX.1-2001 for maxlength == 0 + +- Workaround for a bug in the C-compiler from SCO-OpenServer. It + is not very probable that this causes problems with cdrecord. The + function getfp() did not return the correct Frame Pointer when called + as first function in another function as the compiler sdoes set up the + new stack frame after getfp() has been called. + +- New function filemopen(char *name, char *omode, mode_t mode) with additional + mode_t parameter. + +- update recent getargs() version from repository. This has been forgotten. + +- Add a workaround for a SCO OpenServer C-compiler bug. + The bug causes the first function in a function to be called + before the new stack frame has been established and did cause + scanning the stack frame to fail. + +- Make snprintf() POSIX compliant. + +- Many typos in the READMEs fixed, thanks to a hint from Stefano Allrath + +- New global method to handle PATH environment delimiters (":" on + POSIX systems and ";" on DOS). + +- New README.msdos reflecting new features of smake-1.2a23 on DOS/DJGPP + +- Some minor enhancements to the makefilesystem + +- Some minor changes for better compilation in SGI IRIX + +- Trying to start adding support for Win32/Mingw32 + +- New global #define NEED_O_BINARY to make using setmode() easier + +- New autoconf test for struct stat.st_fstype + +- New autoconf test for fnmatch() + +- New autoconf test for blksize_t/blkcnt_t + +- libscgily/stdio/io.h renamed to schilyio.h to avoid conflicts with + DOS. + +- Added a Note to README.linux: + + NOTE for all Linux 2.5.x versions and all Linux versions before 2.6.8: + + Linux did ship with defective kernel include files starting + with 2.5.x. These defective kernel include files did prevent + compilation. If you have problems compiling software and see + error messages related to include/scsi/scsi.h & include/scsi/sg.h + either upgrade to Linux-2.6.8 or newer or remove /usr/src/linux + +- Support added to the makefile system that allows compilation on + AMD x86_64 using non automake aware make programs like GNU make. + Note that smake ftp://ftp.berlios.de/pub/smake/alpha/ is able to compile + things even on unknown platforms as it includes auto make features. + + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +- Included a bug fix from the libparanoia Author. + Correctly allocate some arrays. Note: on 32 Bit machines, this patch does + not result in a different binary but the code is now really correct. + +- New indentation is better conforming to 'cstyle' + +- Fixed a bug in libparanoia that prevented the statistics to show up + the number of 'skips' (the number of exhausted read retries) when + SKIP verification has been turned off. + +- modified to avoid GCCs shadowed variable warnings. + +- Try to use page aligned transfer buffers if possible. + +- Avoid buffer size problems wit non page aligned transfers on FreeBSD. + +- Avoid freeing pointers that are not from malloc() by copying the data + to a second allocated chunk of free()able space. This has been a bug + introduced while trying to handle buffer size problems with non page aligned + transfers on FreeBSD. + + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + + +Libscg: + +- Reordered and restructured scsi-remote.c code to allow compilation on OS/2 + and hopefully other OS like BeOS + +- First attempt to support QNX. + Note that the sourcecode comes from QNX and it looks as if it + is buggy for commands that cause SCSI commands that result in + a Check Condition status. From looking at the source, the stack + gets overwritten in this case. + +- SCSI adaptation layer for SCO UnixWare rewritten to support + multiple opens and to better follow the libscg interface standard. + +- Second attempt to support QNX. + Make it compile + +- Check kernel level error return codes on SCO-UnixWare + +- Starting to support SCSI reset on SCO-UnixWare + +- Extensions to libscg related include files to support DVD+RW formatting + +- Make libscg work on SCO UnixWare if an application like cdrecord + has been installed suid root. + + Before, the called administration programs did not work if euid!=uid + +- Fixed a problem with possible garbage in the SCSI error string. + Thanks to Stefano Di Paola <stefano.dipaola1@tin.it> for reporting. + +- Fixed another printf buffer vulnerability in scsi-remote.c + +- New version of scsi-amigaos.c from Thomas Langer + +- Added a work around for a Solaris 9 x86 bug: + DKIOCINFO returns a max DMA size of 256 kB but only 68 kB will work. + Check max DMA size for a IDE disk to get a correct value.... + + For more information read the updated file README.solaris and the + new files README.solaris-x86-ata-DMA and README.solaris-x86-ATAPI-DMA + +- Changed scsi-os2.c to allow 'cdrecord -scanbus' to find targets with + target ids > 7. + +- Librscg now uses correct casting to a Null Pointer for execlp() as + NULL is a Null Pointer Constant but no Null Pointer. This could + make problems with some 64 bit architectures. + +- New driver scsi-dos.c acting as 16 bit DOS ASPI interface + Thanks to Alex Kopylov <reanimatolog@yandex.ru> for the first version + of the driver. + + Check his Web Page: http://bootcd.narod.ru/index_e.htm + it contains precompiled DOS binaries. + +- The driver scsi-dos.c has already been verified with 'scgcheck'. + +- scsi-os2.c and scsi-wnt.c now correctly return 0 from scg_send() if + the target is not valid. + +- scsi-wnt.c does now support multiple SCSI opens. + +- scsi-wnt.c does now correctly return SCG_NO_ERROR in case a SCSI command + returned CHECK CONDITION. + +- scg__open() now prints a warning if it has not compiled with the results + from a certified autoconf environment. + +- Introduced a fix to avoid the need for a #define ident prod_ident + for SCSI Inquiry data. This #define did cause problems with the + latest Sun Studio 8, C compilers + +- First attempt to support running cdrecord while the volume management is + active. + +- Increased version number to 0.8 + +- First attempt to work around the problems for suid programs introduced by + Sun with Solaris 9. Programs that like to issue a USCSI ioctl() need to be + root or get EPERM. Cdrecord did does up root privilleges eraly to avoid + security problems. + + libscg now selectively runs the USCSI ioctl() as root if the program is installed + suid root. + +- Fixed a bug in scsi-mac-iokit.c in scgo_havebus() that caused pxupgrade not + to work on MacOS X. + +- First attempt to support the SPTI Ioctl interface on Windows NT. + see also http://www.ste-home.de/cdrtools-spti/ + Thanks to Richard Stemmer, Jay A. Key and thomas podkanski + + This allows to use cdrtools on NT without the need to install ASPI in case + you are administrator when yu run a program. + + Please note that the use of SPTI is default. If you like to force using + ASPI, use dev=ASPI:b,t,l or dev=ASPI (in the -scanbus case). + If you like to force STPI, use dev=SPTI:b,t,l or dev=SPTI. + + Currently, the interface does not yet fully matches the scg interface standard. + +- Try to support the half hearted and badly designed /dev/hd* interface + from Linux-2.6 in a more usable way. + + The only reason for adding this kind of support is that the Linux kernel + hackers reject to fix the known DMA bugs in the already existing SCSI + transport interfaces in the Linux kernel. Using /dev/hd* is unfortunately + the only way to get DMA with sector size being 2352, 2448 or similar. + + Use cdrecord -scanbus dev=ATA and + cdrecord dev=ATA:1,0,0 + + Note: The Bus mapping function inside the kernel for this interface is + a dummy. For this reason, we need to do the mapping ourselves. + Busnumber is ("/dev/hd*"[7] - 'a') / 2 + Target is ("/dev/hd*"[7] - 'a') % 2 + + Also note that creating this interface in the Linux kernel was a waste of + time. It did need a lot of effort to be created. Instead of first adding + a new interface with a new broken DMA implementation and later fixing + the DMA bugs, it would have been better to just fix the DMA bugs + in ide-scsi.c + + Adding SCSI transport to something like /dev/hd* on an OS that includes + a generic SCSI transport driver is disregarding SCSI protocol layering. + A clean way to implement ATAPI on Linux would be to rather introduce a + SCSI hostadaptor driver that sends the SCSI commands via the + ATA hardware. + + Linux users should think about buying a CD writer for Linus Torvalds. + Maybe this could help to get better SCSI support in the Linux. Currently + Linus doesn't know anything about the CD-writing problems on Linux and + his contributions to CD-writing related issues in discussions are just + guesses that are not related to own experiences and understanding for + the matter :-( + + It seems that the Linux way of dealing with bugs is to implement a new + incompatible interface instead of fixing the known bugs from + old interfaces :-( + +- Allow cdrecord -scanbus dev=ASPI and cdrecord -scanbus dev=SPTI to work + on win32. + +- Correct a bug in the Win32 version analyze function that is needed to + use the correct SPTI interface. Unfortunately, the interface did + change with a NT-4.0 service pack. It is unclear whether the currently + used interface type is correct for all possible NT-4.0 variants. + +- For Win32, default to STPI only if on NT-5.x as there is a bug in some + UDMA implementations that causes blue screens. + +- The Mac OS X SCSI low level transport now roughly meets the interface standard. + For this reason, the file scsi-mac-iokit.c now is marked with Author "schily" + +- Indented according to the cstyle standard. + +- For win32, dev=ASPI:1,0 and dev=SPTI:1,0 work again + +- Trying to add a workaround for the Linux problem with USB where the + kernel issues a request sense even when there was only a DMA underrun + and the drive replies as expected with no-sense. Our problem in this + case is that we needed to ad another workaround because sometimes + Linux clears the status byte and we did assume a CHECK CONDITION in case + sense[0] was != 0. + +- Enhanced max # of SCSI busses to 256 for the Linux sg driver. + This was needed because of the (compared to Solaris) suboptimal + way of dealing with instance numbers on Linuux. + + While Solaris keeps a data base with instance numbers, disconnecting and + reconnecting a USB drive results in the USB device getting the same + SCSI address as before. + + As Linux does not have such a data base, disconnecting/reconnecting + a USB device has the unfortunate side effect of assigning a new and + different SCSI address with every USB connect. This also creates problems + when software likes to manage access rights to devices for non-root + users. + +- Win32 SPTI interface now also supports controllers with more than one + SCSI Bus. Thanks to Richard Stemmer + +- Fixed a bug in the Win32 SPTI/ASPI interface introduced with 2.01a28 + that caused core dumps because it did try to access data behind the end of the + sense data array in the ASPI cmd structure. + +- Scan /dev/hda../dev/hdz instead of /dev/hda../dev/hdt for dev=ATAPI on Linux. + +- Trying to write a better warning message for the dev=ATAPI: interface + on Linux (the related kernel interface is unmaintained and does + not support DMA at all). + +- Fixed a bug in Win-NT Version string handling in scsi-wnt.c + Thanks to Alex Kopylov <reanimatolog@yandex.ru> + This caused that libscg did not properly recognize NT-4.x with service pack 4 + to be equivalent to NT-5.0 (Win2k). + +- Trying to avoid using the WinNT-SPTI interface for NT-4.0 + +- Fixed a security bug in scsi-remote.c (the RSCSI client). + + +Rscsi: + +- Support for IPv6 + +- Workaround for missing struct sockaddr_storage on SCO UnixWare + +- Security update. Forbid to write arbitrary debug files, only allow + a debug file name that has been configured in /etc/rscsi.conf. + Writing arbitrary files with a siud root program could be used to become + root on a local machine if you are already logged into that local machine. + +- README.rscsi typo's corrected. + + +Cdrecord: + +- Use correct set_mode_params() return value in deflt_writemodes_mmc() + +- Correct a debug printing to go to stderr instead of stdout. + +- Workaround for broken Firmware for LG (Lucky Goldstar) drives. + These drives have been unable to write Audio in TAO mode because + they have an illegal audio pause length default. + + Thanks to a hint from: Mark Vytlacil <markvyt@comcast.net> + +- Man page now correctly describes the data formats used with -xa1 & -xa2 + +- Use Prototypes for functions with enum parameter in fifo.c to avoid + warnings on SCO UnixWare + +- Trying to catch SIGHUP to avoid hung recorders after people + close X windows by accident (This in most cases happens because + some newer GUIs try try copy bad ideas from Microsoft like the 'x' + button on the top bar in the window. + +- Trying to print hints if the SCSI error core looks like a buffer + underrun occurred. + +- First (still mostly empty) driver for the Matsushita CW-7501 + +- First TAO writing support for the Matsushita CW-7501 + +- New option -setdropts to allow cdrecord to set driver specific + parameters and exit. + +- Added support to disable/enable the Plextor PowerRec feature. + Use driveropts=forcespeed + Be very careful as this will cause in badly readable disks. + The only senseful reason to use this feature is to run tests in + -dummy mode to check whether the system would be able to record + fast enough and to later buy High-Speed Media. + Note that documentation for the related SCSI command is not + oficially available and thus the information has been "guessed". + +- Added support to enable/disable the Plextor SpeedRead feature. + Use driveropts=speedread + to allow the drive to read CDs faster than 40x. + Be very careful as this may cause the media to break in the drive + while reading, resulting in a destroyed media and drive! + Note that documentation for the related SCSI command is not + oficially available and thus the information has been "guessed". + +- Added support to enable/disable the Plextor SingleSession feature. + Use driveropts=singlesession + This allows to read defective (illegal) media with extremely + non-standard additional TOC entries. You need to enable Single Session + mode before you insert the defective disk! + Note that documentation for the related SCSI command is not + oficially available and thus the information has been "guessed". + +- Added support to enable/disable the Plextor Hide CD-R feature. + Use driveropts=hidecdr + This allows to make CD-Rs look like CD-ROMs and applications believe + that the media in the drive is not a CD-R. + Note that documentation for the related SCSI command is not + oficially available and thus the information has been "guessed". + +- Added reading out "real" Burn-Proof counter for Plextor drives. + Note that documentation for the related SCSI command is not + oficially available and thus the information has been "guessed". + +- Try to do a more correct job when doing Buffer Underrun estimation + counts. + +- Make the explicit Buffer underrun error checking work for + Plextor drives too. + +- Fixed the command line parser for driveropts= parameters. + Before the fix, driveropts=noburnfree,hidecdr would result + in assuming: driveropts=noburnfree,nohidecdr + +- Now also supporting SAO/DAO write mode for the CW-7501 + +- New option -lock (similar to -load) that loads the media but leaves + the drive in locked status. + +- New driver interface to allow SAO recording for the CW-7501 + Simplified: "dummy" and "multi" Parameter information has been + moved into the track structure. + +- Removed the internal implication that -packet is a TAO write mode. + Please test! It may be that this did introduce bugs. + +- Try to avoid ANSI C arithmetic conformance change warnings from + SCO C-compiler by introducing proper casting. + +- Driver interface restructured to support aborting SAO recording + with the Sony CDU-948 + +- "Driver flags" printing corrected + +- Better behavior with CADDY drives and -load option + +- Fixed a bug that caused cdrecord not to abort if Tracks with unknown + length are present in RAW write mode. + +- Print extended Power Rec Speed information for Plextor drives. + +- CUE Sheet handling generalized to allow to implement SAO writing + for more drives. + +- Start supporting the Sony CDU-948 in SAO mode. Currently not yet working: + + - Multi-session + + - MCN/ISRC + +- Grace time handling restructured. The grate time waiting is now done + even before the forced blanking and it is made sure that the waiting + is done only once. + +- Several changes in the open source part are visible as a result of the + new DVD+RW / DVD+R support. + +- cdrecord-ProDVD now includes first DVD+RW and DVD+R support. + Check ftp://ftp.berlios.de/pub/cdrecord/ProDVD/ + on Thursday 24.4.2002 for the first binaries + +- Do not try to lower the possible number of open files in raise_fdlim() + anymore. + +- Check return code of driver's init function. + +- Better error messages from main write loop. + +- Write a hint that a user may have used a "preformatted" CD-RW if + read_next_writable_address fails for the "invisible" track + and tell him to run cdrecord blank=.... + +- Fixed a bug that caused cdrecord to prevent a 3rd session on a + multi session disk. This bug was introduced with the driver + restructuring a few releases before. + +- Better driver text strings for the driver IDs in the CD MMC drivers. + +- Move Plextor PowerRec speed info completely to the statistics _past_ + the recording activities. + +- Allow more nonstandard Cue sheets to be accepted by the Sony CDU-924 + and CDU-948. + +- Implement MMC-3 DVD+ Drive/Media recognition to avoid that cdrecord starts + to treat a DVD+ as a CD-R because the DVD+ drive identifies as CD-R/RW + DVD-ROM + with "no DVD media installed" from a MMC-2 viewpoint. + +- Added a note to the cdrecord man page how to use mkisofs + to allow cdrecord to knoe about track sizes in SAO or RAW mode. + +- Fixed a multi session bug that has been introduced with the DVD+R/RW + restructuring with cdrecord-2.01a11. This bug caused cdrecord to be unable + to start a track from a sector number != 0 in TAO mode. + +- Fixed a problem with cdrecord -msinfo introduced with the the DVD+R/RW + restructuring with cdrecord-2.01a11. The unwanted verbose printing has been + removed with this version. + +- New option -xa to create CD-ROM XA mode 2 form 1 sectors with 2048 bytes + of user data + +- New option -xamix to create mixed CD-ROM XA mode 2 form 1/2 sectors + with 2332 bytes of user supplied data. + +- Restructured sector types to make them usable: + + -mode2 CD-ROM data mode 2 - 2336 bytes + -xa CD-ROM XA mode 2 form 1 - 2048 bytes + -xa1 CD-ROM XA mode 2 form 1 - 2056 bytes + -xa2 CD-ROM XA mode 2 form 2 - 2324 bytes + -xamix CD-ROM XA mode 2 form 1/2 - 2332 bytes + + To write conforming CD-ROM XA multisession disks use cdrecord -multi -xa1 + together with mkisofs -XA -sectype xa1 + +- -cdi is now implemented how it should be: as a flat to change + the TOC type of a CD and not as a sector mode. + +- Track parsing completely restructured to allow new features. + One of the features is to write audio CDs from a pipe, + other features will follow. + +- Cdrecord now resets euid to the uid of the caller (if called suid root) + before it opens data files. + +- Fixed a bug that caused cdrecord to insert two grace wait periods + if a disk was blanked and rewritten in one call. + +- Allow cdrecord to copy audio CDs from a pipe from cdda2wav + without using an intermediate file on disk. + + To copy an audio CD from a pipe (without intermediate + files), first run + + cdda2wav dev=1,0 -vall cddb=0 -info-only + + and then run + + cdda2wav dev=1,0 -no-infofile -B -Oraw - | \ + cdrecord dev=2,0 -v -dao -audio -useinfo -text *.inf + + This will get all information (including track size info) + from the *.inf files and then read the audio data from + stdin. + + If you like to write from stdin, make sure that cdrecord + is called with a large enough fifo size (e.g. fs=128m), + reduce the write speed to a value below the read speed of + the source drive (e.g. speed=12), and switch the burn- + free option for the recording drive on by adding + driveropts=burnfree. + +- New option -abort allows you to send a write abort sequence to a drive. + This may help if other software did leave the drive in an unusable + condition. + +- New 'xio' module allows to open a file virtually more than once to + support CDRWIN CUE sheets in cdrecord. + +- Run Plextor Speedinfo SCSI command in silent mode as old Plextor drives + do not support this command. + +- Workaround for a Plextor (Premium only???) firmware bug that may result + in a B0 pointer A5:A5:A5 instead of FF:FF:FF. + + This made it impossible to blank a freshly written CD-RW witout reloading + the media. Now cdrecord does not check the disk size anymore if the number + of tracks to be written is 0. + +- First CDRWIN CUE sheet support. + + Cdrecord currently supports what is in the CUE sheet description in + the CDRWIN documentation (with a few exceptions). Note that the + examples in the rest of the CDRWIN man page are mostly illegal + if you compare them against the CDRWIN CUE sheet syntax documentation. + + These exceptions are currently in effect: + + - Only one FILE Line per CUE sheet file (This is compliant to the + CUE shet format documentation although the examples show CUE + files with more than one FILE line). NOTE that the CUE syntax has + been ill defined so that it would not make sense to e.g. use + more than one FILE line for audio CDs. + + - The AIFF File type is not implemented (because I have no documentation + for this audio file format). + + - The MP3 File type is not yet implemented. + + - The CDG data type keyword will not yet work + + - The CDI data type keyword will not yet work + + - Only a sector size of 2048 will work with MODE1 + + - Sectors with sector size 2336 will not yet work + + - POSTGAP will not yet work. + + Note that the CDRWIN CUE documentation is bad and it is unclear how + formless (non XA) MODE 2 sectors should be made. + + CDI is not a sector/track property but a disk property. + + The File type BINARY vs. MOTOROLA is unclear. + + To use the cue sheet feature call: + + cdrecord dev=.... -v -dao cuefile=xx.cue + + The main reason for implementing CUE sheet support was to allow to + write VCD/SVCD with cdrecord. It has currently tested with the + test SVCD from ftp://ftp.vcdimager.org/pub/vcdimager/examples/test_svcd/ + + Cdrecord should allow to write audio type CUE sheet based CDs also. + + +- Modified the notes close to the Copyright printing code in cdrecord.c + to make clear that this note is not a deviation from the GPL but just + a memorandum on how to understand the GPL. + +- Fixed a bug in file descriptor handling that caused cdrecord not + to continue at offset xxx in the file after a new track did start. + +- Added a forgotten feature in the CUE Sheet parser so it will now know that + WAVE files use swapped (intel) byte order. + +- Restructured the main program of cdrecord so that cdrecord overall + behaves similar to before when cue sheets are used. + e.g. cdrecord -eject cuefile=xxx did only eject the disk instead of + first writing and then ejecting. + +- Added some hints to the man page to make speed= handling clearer + +- Fixed some typos in the man page + +- Added the -format option to the man page + +- CD-Text handling reworked: + + CD-Text from textfile= or from CUE CDTEXTFILE wins over CD-Text + from *.inf files and over CUE SONGRITER. + +- CD-Text from CUE file (either CDTEXTFILE or SONGRITER) now needs + -text in addition in order to be not ignored. + +- Fixed a bug in the recognition for cdda2wav | cdrecord *.inf + that caused a message + WARNING: Stdin is connected to a terminal. + if not writing from a pipe. + +- Small fix in auinfo.c to again allow compilation on K&R systems + +- Typo fixes for the cdrecord man page + +- The clone write code is now part of the GPL'd source + Note that this part of the code is now more than 2 years old but previously + has been excluded from the publically visible part of the source. + + To understand how to use the clone mode read README.clone + +- New option ts= to set the SCSI transfer buffer size + +- Man page corrected to correctly mention current format for /etc/default/cdrecord + +- call setmode(fileno, O_BINARY) for DOS/DJGPP also + +- Better check if we use the FIFO to avoid core dumps with too small FIFO sizes. + +- Switch off FIFO of fifo size is < 2 * SCSI transferbuffer + +- Fixed a small bug in the man page (..sp instead of .sp). Thanks to Eric Raymond + for reporting! + +- Work around for a problem in the Plextor 708 firmware (at least 1.01..1.02) + that caused cdrecord to be unable to recognize that a DVD medium is present instead + of a CD medium. + +- Changed the GPL clarifications text in a way so Debian people still + agree with me that cdrecord is free software. The clarifications are + needed in order to tell people/companies (like Mr. Rosenkranzer, + RedHat & SuSE) who create broken branches from cdrecord that they are + not legally publishing their branches because they violate the + GPL § 2 Paragraph c) and GPL Preamble Section 6). + + If would be better if the named persons/companies would rather stay + in contact to the Authors, discuss things and contribute to the + community instead of creating useless/broken changes and in case + of SuSE Linux even creating hacks that introduce security risks. + + Note that now, RedHat Linux (enterprise server) or the SuSE Linux + are even more expensive than e.g. Solaris x86, see: + + http://www.osnews.com/story.php?news_id=5416&page=5 + Small Correction to this web page: Solaris x86 is free again for + personal use. + +- Extended the man page to make it more clear that all CD/DVD-writers + ever made use only SCSI commands. + +- Another change to the man page according to a hint from + Eric Raimond in order to get better compliance for troff -> "*ml" + converters. + +- Allow people who cannot provide an e-mail address or who + don't like to support their modifications to modify cdrecord + +- Some CUE sheet modifications in drv_mmc.c now made it into + the official SCCS history file. + +- Several fixes to avoid the need for a #define ident prod_ident + for SCSI Inquiry data. This #define did cause problems with the + latest Sun Studio 8, C compilers + +- Hack to work around a POSIX real time priotity design bug that + causes us to become root again on e.g. Linux in order to be able + to lower the priority of the FIFO background process. + +- Better documentation and EXAMPLE for -setdropts driveropts= + in the man page. + +- print a help message to direct the user to use -raw96r in case + the drive does not accept the cue sheet with -dao. + +- Mark all drives that cannot be accessed because the volume management is + running and no media is in the drive with '?' instead of '*', so they + may be distinct from non existing drives. + + Read README.volmgt for more information + +- Now works again suid root on Solaris 9 + +- Fixed a bug introduced in 2.01alpha by a source consolidation. + cdrecord -toc did not work anymore for CD-ROM readers + +- Updated README.audio + +- Make the CUE Sheet handling search for a file name from a FILE statement + also in the directory where the CUE sheet is found (in case there is no + slash (/) in the file name from 'FILE'). + +- Avoid coredumps when cdrecord is called with -xd and there is no known + driver for the current drive. + +- New option -tao is now needed if you like to write in TAO mode. + Cdrecord now does no longer writes if no write mode has been specified. + +- New option -sao as alias for -dao. As the official name for the write mode + is SAO, -sao is more correct than -dao. + +- Fixes for minor typos in cdrecord.1 + +- Fixed a bug with pad=xxx and pad sizes > 2 GB. + +- Trying to fix a bug introduced lately with the check for specified + write mode options. As a result, only TAO mode writing did work. + +- Better man page & online help for the ts= option. + +- Fixed a typo in the man page. + +- Better error messages when audio size is < 300 Sectors or needs padding. + Thanks to a hint from Stefano Allrath + +- cdrecord -scanbus now checks for 256 SCSI busses + +- cdrecord -scanbus now checks for 256 SCSI busses + This has already been announced for 2.01a28 but forgotten to include + +- Some Man Page Fixes trying to avoid coding problems for non 7-bit ACSII + +- Several typos in the man page fixed + +- Man page enhanced to include a better documentation for the driver= + option. + +- Several other enhancements to the man page + +- modified to avoid GCCs shadowed variable warnings. + +- Cdrecord now tolerates the OPC "error code" "Power calibration area almost full" + to not a real error. + +- Fix for a bug that caused cdrecord to be unable + to reload the media for some drives. + The fix helps with the following problem: + + Trying to clear drive status. + cdrecord: Drive needs to reload the media to return to proper status. + cdrecord: Cannot load media with this drive! + cdrecord: Try to load media by hand. + cdrecord: Cannot load media. + +- man page enhanced + +- Print the "Make sure you are root" only if root privilleges are missing. + +- Avoid warning for not working nice() on DOS + Thanks to Alex Kopylov <reanimatolog@yandex.ru> + +- -clone option documented in the man page. This has been forgotten before. + +- Several typos in the man page fixed + +- Do not try to call nice() on DOS/DJGPP + +- cdrecord now tries to check the DMA speed if the drive supports to read the + drive buffer. If the DMA speed is not sufficient, then cdrecord requires + that burnfree is activated. If the environment variable "CDR_FORCESPEED" + is set or -force has been specified, then cdrecord does not try to enforce + that the available DMA speed is 2x the expected write speed. + +- Make some symbols static to avoid problem with a badly designed libc on + OpenBSD that violates POSIX by pulluting the namespace with symbols + like 'pl'. + + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +- fixed typo in cdda2ogg.1 + +- Do not use uname() but gethostname() for portability. + +- include unistd.h for abs() + +- old Toshiba's usable again + +- Multisession Non-CD-Extra disks now work again + Now also a lot more broken disks are readable again. + +- not using ioctl in signalhandler any more + +- trying to support sound on Win32 + +- Several changes (mostly OS/2 related) for more ask Heiko + +- bugfix add cdda2ogg manpage,and script and makefile install target + +- support BeOS shared memory and FIFO + +- support soundcard output under QNX + +- windows-users! Cygwin has fixed the bug introduced with 1.3.18. Please + upgrade to the new 1.5.3-1 release. + +- call setmode(fileno, O_BINARY) for DOS/DJGPP also + +- Now using the major() macro for some Linux duties. + + WARNING to creators of Linux distributions: + + It has _always_ been wrong to compile software only once for different + kernel versions (e.g. for compile Linux-2.4 and later install a + 2.2 kernel on the so created system). + + Now that Linux-2.6 introduces incompatible changes to kernel/user + interfaces, the resulting binaries will not work correctly anymore. + +- Made CD-Text handling reentrant to overcome a problem triggered by XCDRoast + +- Now works again suid root on Solaris 9 + +- Fix for a Bug that prevents paranoia statistics from being printed + because the paranoia statistics for the forked version has not been + inside the shared memory. + +- New paranoia sub option paraopts=overlap=xx + + This is mainly a bug fix for cdda2wav. Cdda2wav previously _always_ did + completely deactivate the dynamic overlapping from libparanoia. Instead, + it did set the overlapping to the statical value 0. + + If you omit paraopts=overlap=xx, cdda2wav will now use dynamic overlapping + with -paranoia. + + If you like the old behavior, use: paraopts=overlap=0 + +- New paranoia sub option paraopts=minoverlap=xx + This sets the minimum dynamic overlap + +- New paranoia sub option paraopts=maxoverlap=xx + This sets the maximum dynamic overlap + +- Better paranoia statistics output + +- Fixed a Problem with some Linux sound card drivers that caused cdda2wav to be + unable to output to the soundcard. + +- cdda2wav now checks /etc/default/cdrecord and accepts dev=plextor as + cdrecord does. + +- Trying to add verbose output that estimates the read quality with -paranoia + +- Trying to convert non-ascii characters in user & host names into '_' + for better cddb compatibility. + +- Some Man Page Fixes trying to avoid coding problems for non 7-bit ACSII + +- New option -scanbus + +- Removed some "historical junk" that caused cdda2wav to define a + compile time default input device. This conflicts with cdda2wav -scanbus + and is superfluous and contra productive since cdda2wav reads + /etc/default/cdrecord + +- cdda2wav has signed bitfields of size 1 :-( + +- Fixed a typo in cdda2ogg.1 + +- Bug fix from Heiko for index lists that contain offset values of -1 in the middle + +- Trying to handle interface setup more carefully if SCSI Generic is not + used. + +- Better Debug Code in setuid.c + +- Trying to fix a bug in UID handling on FreeBSD + Thanks to the bugs reports and help from Fabian Keil <fk@fabiankeil.de> + +- Try to workaround a bug in GCC that caused incorrect warnings + for "strict-aliasing rules" + + +Readcd: + +- First (hacky) implementation of a way to meter the read speed + as a function of the disk location modeled after a idea from + Markus Plail <cdrecord@gitteundmarkus.de> + + Call: + readcd dev=b,t,l meshpoints=1000 > outfile + then + gnuplot + gnuplot> plot "outfile" w l + + or + + gnuplot> replot "outfile" w l + + if you like to overlay graphs. + +- New option fs=# (same syntax as with cdrecord fs=#) to allow the + user to set the maximum transfer size even in non-interactive mode. + This may help is the OS (as it has been the case for Solaris 9 x86) + reports a wrong maximum DMA size or there is a bug in libscg. + +- Speed printing with meshpoints=# now is based on 1000 bytes == 1 kb + as documented in the SCSI standard. + +- Stop reading if the OS replies with a DMA residual count != 0 + +- New option -factor will cause the read speed values to be printed + be based on the single speed of the current medium. This is only + possible if readcd is able to find out the current medium type. + +- The clone read code is now part of the GPL'd source + Note that this part of the code is now more than 2 years old but previously + has been excluded from the publically visible part of the source. + + Clone writing has been designed to allow to copy complex structured media + like e.g. SVCDs without the need to first do a sector by sector analysis + on the source media. + + To understand how to use the clone mode read README.clone + +- New option ts= to set the SCSI transfer buffer size + +- call setmode(fileno, O_BINARY) for DOS/DJGPP also + +- Now works again suid root on Solaris 9 + +- Better man page & online help for the ts= option. + +- New option -scanbus + +- Fixed a bug with -scanbus (did not work correctly if /etc/default/cdrecord + exists). + +- Added an allocated list of defective sectors, that is printed to the end of + a read operation. + + +Scgcheck: + +- Trying to check if multiple scg_open() requests result in + usable interfaces. + +- Send more outout to stdout instead of stderr. + +- More correct test for max sense count. + +- Eject CD _after_ asking for it. + +- Abor further DMA residual tests if a basic DMA residual test fails. + +- Second open test enhanced. + +- A small fix to prevent a core dump caused by a problem on Mac OS X. + + +Scgskeleton: + +- New Skeleton program as sample and template for programs that like to + use libscg. + + This template has been included to help people like the Author of the + BTC firmware flash program to write simple portable applications that + send arbitrary SCSI commands to arbitrary drives. + + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +- First attempt to support ISO-9660:1999 (Version 2) via -iso-level 4 + This allows 207 chars in filenames if Rock Ridge is not used + ans 197 207 chars in filenames if Rock Ridge is used. + + Note that this as an absolutely nontrivial change. Problems may + even occur when not using -iso-level 4. Please test and report + problems. + + It is not clear whether mkisofs should characters in the range + outside 7-Bit ASCII. Currently, mkisofs allows any 7-Bit ASCII + character except '\0' and '/'. + +- Second attempt to support ISO-9660:1999 (Version 2) via -iso-level 4 + This allows 207 chars in filenames if Rock Ridge is not used + and 197 207 chars in filenames if Rock Ridge is used. + + In version 2.01a01 the extended VD used the wrong signature 1. + This has been corrected. + +- isoinfo is now able to recognize ISO-9660:1999 + +- Enhanced the filename length for graft points to 2x PATH_MAX + +- Abort with a warning message if the total size of the image data + created by mkisofs would differ from the size printed by -print-size + +- udf.c indented according to hints from the program 'cstyle' + +- UDF now uses the same 'now' timestamp as the ISO-9660 part of the FS. + +- New Stream File feature and new options: + + -stream-file-name + -stream-media-size + + This feature has been implemented after an idea from M.H. Voase. + Mkisofs had to be heavily modified to allow this feature. + + A typical usage would look like this: + + star -c . | mkisofs -stream-media-size 333000 | cdrecord dev=b,t,l -dao tsize=333000s - + + The maximum size of the tar archive is 332800 sectors. + Note that only plain vanilla ISO-9660 is possible in this mode. + + +- The final padding that is added by default is now 150 sectors + which is the required size of the track post gap on a CD. + +- Inter partition padding is now only chosen to make the next partition + start on a sector number that is a multiple of 16. + +- isoinfo now also prints root directory extent # in debug mode + +- First step to allow mkisofs to support Kodak Photo CD and + Kodak Picture CD format: + + Try to correctly support associated files in multi-session mode. + + +- Diagnostic programs modified to use ttydefs.h and to have better + portability for the built in "stty" features. + +- isoinfo now prints the ISO-9660 directory flags. + +- Make mkhybrid a symlink to mkisofs instead of a hardlink + + +- getopt.h/fnmatch.h changed to use 'makefiles / prototype.h' based + system instead FSD junk system + +- Removed FSF junk from getopt.c that either created problems + with SCO Unixware or did not compile on AIX + +- Prototype for DVDOpenFile() to avoid warning on SCO UnixWare + related to enum function parameter + +- Fixed a bug with split symbolic links found by Klaus Kopper + with the new debug messages introduced with mkisofs-2.01a04 + +- Changed #if __STDC__ to #ifdef PROTOTYPES for better portability + +- Now using character code translation for 8 Bit characters that + are used with -iso-level 4 (ISO-9660-1999). + +- Fixed a typo in the on-line Usage information for isoinfo + +- New options -XA & -xa + + -XA Generate XA iso-directory attributes with original owner + and mode information. + + -xa Generate XA iso-directory attributes with rationalized owner + and mode information (user/group == 0). + + In the first phase of the implementation you need to specify -R in + addition. + +- Try to support files >= 2 GB. + Note that mkisofs is not yet written cleanly so there may be problems + if files >= are used. In such a case, please report. + +- Create XA "CD-XA001" signature in PVD with -XA or -xa + + In the first phase of the implementation you need to specify -R in + addition to -XA or -xa or no XA signatures will be written. + +- Removed a debug statement that has been introduced to implement + support for filees >= 2GB. + +- This version of mkisofs allows to create sectors with 2056 bytes if the + option -XA or -xa has been used together with -sectype xa1. + This is 2048 bytes + sub-header. + +- -apple does no longer include -R or -r. + If you like to use -apple, you need to use -R/-r or -XA/-xa in addition. + +- New option -sectype SECTYPE / -s SECTYPE + + Possible parameters are: + + data 2048 bytes per sector - the old and current default + + xa1 2056 bytes per sector - this is what you need for a conforming + CD-ROM XA multi session CD. Use -sectype xa1 together with -XA + +- Fixed a bug in the Rock Ridge symlink handling with Continuation records + triggered by '/../' filename components. + Thanks to jmmikkel@bbn.com (Joanne M Mikkelson) + for the fix. + +- man page corrected + +- Moved Eltorito PVD before ISO-9660:1999 enhanced PCD to allow + bootable CD with ISO-9660:1999 + +- -sort file handling fixed: mkisofs now looks for SPACE/TAB whatever + comes last (as documented in the man page). + +- Better error message in case of a stat(2) buffer overflow (too long + filename). This release now prints the file name that caused the problem. + +- call setmode(fileno, O_BINARY) for DOS/DJGPP also + +- Added a NOTE regarding the SILO boot program for Linux sparc to the + man page. + +- Added support for Solaris x86 boot CDs. + This includes the following new options: + + - -sunx86-boot to create a fdisk & SVr4 partition table + + - -sunx86-label to set the "disk label" name for the + SVr4 partition table. + +- New file README.sunx86boot + +- The file README.sunx86boot has been reworked to make it more correct + and contain less typos. + +- Fixed a Rock-Ridge length handling bug in update_nlink()/increment_nlink() (tree.c) + that may have caused an endless loop. + +- "Total extents including sparc boot" Message is now correctly + "Total extents including %s boot" sparc/sunx86 + +- mkisofs now checks /etc/default/cdrecord and allows e.g. + "mkisofs -C 0,1234 dev=plextor ...." as cdrecord does + +- Unclean message ....extents written (%d Mb) changed to + ....extents written (%d MB) to avoid "MegaBit" confusion. + +- Minor change for old UNIX versions like SCO OpenServer to get + smooth compilation on system where mode_t is a short. + +- Fix for a bug in RockRidge name handling for long file names + that need to be split into more than one sector. + Thanks to Patrick Ohly <Patrick.Ohly@gmx.de> + +- Trying to fix a bug in the multi session time stamp comparing + functions. CE records have not been handled correctly here. + +- Support for PowerPC CHRP Boot added, thanks to + "Leigh Brown" <leigh@solinno.co.uk> + +- Support for -uid/-gid for UDF Filesystems added + +- isoinfo now is able to list ElTorito Boot information with -d + +- isoinfo now correctly shows long RR filenames from CE Extension records. + +- Fixed a bug in the PowerPC CHRP Boot, thanks to + "Leigh Brown" <leigh@solinno.co.uk> + +- New options -root & -old-root from Patrick Ohly + This allows mkisofs to be used for "incremental backups" where + each backup is put into a separate directory tree on the CD. + +- Default to System ID "UNIX" for unknown platforms instead of + uning LINUX. + +- Support System ID "SCO-OPENSERVER" and "SCO-UNIXWARE" + +- Better error message when a user tries to create a multi session image + out of a multi-volume image. + +- When doing malloc(), include Null Byte at end of TRANS_TBL data to + avoid memory size conflicts. + +- Fix for a core dump caused by a double free() when doing: + echo bar >/tmp/bar + echo foo/bar=/tmp/bar > /tmp/pathlist + env LD_PRELOAD=libumem.so.1 UMEM_DEBUG=default UMEM_LOGGING=transaction \ + mkisofs -hfs -graft-points -o /tmp/foo.raw -path-list=/tmp/pathlist + + Thanks to Jürgen Keil jk@tools.de + +- Fixed a typo in write.c "Padbock" -> "Padblock" + Thanks to Richard Dawe <rich@phekda.gotadsl.co.uk> + +- Trying to fix a problem with comparing relaxed ISO-9660 file names + that contain a ';' which normally is a separator for the ISO-9660 + version number. The fix is in hash.c, please test! + +- Avoid GCCs shadowed variable warnings. + +- Added a comment is in hope to prevent silly people from + e.g. SuSE (who did not yet learn C but believe that + they need to patch other peoples code) from changing a + valid cast into an illegal lhs cast expression. + The cast in the unodified version of write.c is the correct way to + handle the problem. + + It would save a lot of time if people from companies like SuSE + would remember the Open Source software development model and + contact the Author for help rather than introducing proprietary + changes that result in worse and incompatible software variants. + + The way, companies like SuSE deal with Open Source software just + proves that Jonathan Schwartz from Sun is not wrong when he calls + SuSE and RedHat proprietary software companies. Users from Open Source + software expect that companies like SuSE and RedHat are in close + contact with the software developers but they unfortunately are not. + They prefer to create proprietary variants that are usually much + worse than the original software. The only explanation I have for this + behaviour is that SuSE likes to deviate from RedHat and RedHat likes + to deviate from SuSE in hope to get customer retention this way. + While the last 150 years did prove that this proprietary method to + tie up customers works for a limited time, it did always fail after + some time. + +- Removed verbose output for Eltorito boot method when called with -quiet + +- The Eltorito boot catalog and the Eltorito boot files are now by default + sorted to the beginning of the filesystem image as sime BIOS versions don't + boot from locations beyond 512 MB. + +- All programs from mkisofs/diag now support libscg so you may now + use e.g. isoinfo to list end extract from CDs directly on platforms + that do not support a usual driver interface (like on Win32). + +- Set default SYSID to "DOS" for DJGPP + Thanks to Alex Kopylov <reanimatolog@yandex.ru> + +- devdump isodebug isodump isoinfo isovfy + now include libscg and allow to use SCSI devices as input + +- devdump isodebug isodump isoinfo isovfy + now implement a new option dev= to force to use the SCSI + interface from libscg. + +- isoinfo now correctly sets the filemode of stdout to O_BINARY + on DOS alike Platforms like Win32 & DJGPP + This affects the '-x pathname' option + Thanks to Alex Kopylov <reanimatolog@yandex.ru> + +- The options -H/-L/-P from mkisofs have been marked "outdated" + as they are reserved by POSIX.1-2001 for other purposes. + + Mkisofs-2.02 will start to implement the POSIX.1-2001 semantics for + these options. + +- The max. length for the strings in the Primary volume descriptor + is now also documented in the options section of the man page. + +- Speed up by 30% in the case that a directory contains many (> 5000) + pathological file name entries (that _all_ do not differ in 8.3). + +- A minor speed up in devdump & isodump was made by no longer calling + strlen() in the end condition of a for loop (this still was old + code from Eric). + +- fixed a bug with -dvd-video + The bug caused mkisofs not to find the IFO file when VIDEO_TS was not + the first entry in the unsorted source directory. + Thanks to a hint from Johan Borg borg@morth.org + +- The option -volset-size does no longer accept numbers > 1 + + This change was needed because Eric Youngdale did completely + missunderstand the ISO-9660 standard with respect to Volume Set + Sizes. + + A Volume Set is not a numbered set of CDs but a set of CDs that + contains a coherent directory tree that would not fit on a single + volume. + +- Fixed a typo in the mkisofs man page + +- man page enhanced to make clear that the options + -no-split-symlink-fields & -no-split-symlink-components + are most likely not needed as they have been introduced by Eric Youngdale + when serious bugs have been in mkisofs. + +- Changelog updated + +- Try to workaround a bug in GCC that caused incorrect warnings + for "strict-aliasing rules" + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volunteer for this task! + + Note that this can never be 100% correct as there is no relation + between the names on the master (UNIX) filesystem, the ISO-9660 + names and the Joliet names. Only the Rock Ridge names are + untranslated with respect to the original files on the + master (UNIX) filesystem. + + - add libecc/edc for CDI and similar. + + +CYGWIN NT-4.0 NOTES: + +To compile on Cygwin32, get Cygwin and install it. +For more information read README.win32 + +The files are located on: + +ftp://ftp.berlios.de/pub/cdrecord/alpha ... + +NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some + minor trouble. If you like a 100% POSIX compliant tar, get star from + ftp://ftp.berlios.de/pub/star/ + +WARNING: Do not use 'winzip' to extract the tar file! + Winzip cannot extract symbolic links correctly. + +Joerg diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a01 b/doc/ANNOUNCEMENTs/AN-2.01.01a01 new file mode 100644 index 0000000..2d3a1eb --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a01 @@ -0,0 +1,91 @@ +Please have a look at the German open Source Center BerliOS at www.berlios.de +BerliOS will continue to support free hosting of cryptography projects even +when US laws change and don't allow to host cryptography projects in the USA. +Also look at sourcewell.berlios.de, the first Open Source announcement service +that itself is implemented as Open Source project. + +***************** Important news **************************** + +For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM + +***************** Please Test ********************************* + +NEW features of cdrtools-2.01.01a01: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +- Better lint make rules + +- Better autoconf rrules for ACLs + +- Better support for Linux on IBM-390 + +- Better support for Linux on AMD x86-64 + +- Better conforming to lint warnings. + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +- Modified the remote SCSI library stuff that has been changed due + to a security problem on order to make it compile again on HP-UX. + +Rscsi: + +Cdrecord: + +- Support for the Plextor GigaRec feature. + Use driveropts=gigarec=1.2 to increase CD capacity by 20%. + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +Readcd: + +Scgcheck: + +Scgskeleton: + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer for this task! + + Note that this can never be 100% correct as there is no relation + between the names on the master (UNIX) filesystem, the ISO-9660 + names and the Joliet names. Only the Rock Ridge names are + untranslated with respect to the original files on the + master (UNIX) filesystem. + + - add libecc/edc for CDI and similar. + + +CYGWIN NT-4.0 NOTES: + +To compile on Cygwin32, get Cygwin and install it. +For more information read README.win32 + +The files are located on: + +ftp://ftp.berlios.de/pub/cdrecord/alpha ... + +NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some + minor trouble. If you like a 100% POSIX compliant tar, get star from + ftp://ftp.berlios.de/pub/star/ + +WARNING: Do not use 'winzip' to extract the tar file! + Winzip cannot extract symbolic links correctly. + +Joerg diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a03 b/doc/ANNOUNCEMENTs/AN-2.01.01a03 new file mode 100644 index 0000000..e7819a2 --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a03 @@ -0,0 +1,150 @@ +Please have a look at the German open Source Center BerliOS at www.berlios.de +BerliOS will continue to support free hosting of cryptography projects even +when US laws change and don't allow to host cryptography projects in the USA. +Also look at sourcewell.berlios.de, the first Open Source announcement service +that itself is implemented as Open Source project. + +***************** Important news **************************** + +For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM + +***************** Please Test ********************************* + +NEW features of cdrtools-2.01.01a02: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +- Now using "makefiles-1.5" + +- Compilation on OS/ should work again (-Zexe -> -o xxx.$(EXEEXT) + +- Sleeptime to allow reading Gmake warning reduced to 2 seconds. + I am still waiting for GNU make to fix the bugs I did report in 1999. + +- Support for 'make DESTDIR=xxx install' added + +- Workaround for a Shell Bug on BSDi + +- Install workaround for the fact that BSDI has chown(1) in /usr/sbin/ + +- cc-config shell script reworked + +- Better configure tests for procfs include files + +- Configure tests for fchown, chmod, fchmod, lchmod, futimes, lutimes + +- Configure tests for fdopendir + +- Configure tests for broken ext2fs includes files in Linux kernel + +- Better SRCROOT search function in makefiles shell scripts + +- libunls reworked + +- New autoconf tests for broken <linux/ext2_fs.h>, <scsi/scsi.h> & <scsi/sg.h> + on various Linux systems + + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +- Trying to introduce a workaround for broken <scsi/scsi.h> & <scsi/sg.h> + on various Linux systems. + +- Trying to introduce a workaround for the changed SCSI generic Linux + Kernel interface from Linux-2.6.8.1 and newer. + + Be very careful with testing. The Linux adption layer for libscg + is already full of workarounds for bugs, unstable interfaces and + unwillingness of the Linux Kernel maintainers to give access to the + needed information for libscg. I am not sure whether this workaround + will not have problems. It has been tested on a Pegasus PPC running + Linux-2.6.8.1 + +Rscsi: + +Cdrecord: + +- Allow the -shorttrack option for RAW mode, thanks to a report + from Sebastian Trueg + +- Enhance the minimal grace time from 2 to 3 seconds to make sure + that cdrecord will not get out of sync with locks from the + Volume management system. + +- Better checks and better error messages for /etc/default/cdrecord + +- Correct verbose print mode for old pre-MMC TEAC drives. + +- Added support for Ultra speed+ CD-RW media recognition and a check + whether the drive supports Ultra speed+ CD-RW media. + (Thanks to Alexander Noé). + + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +Readcd: + +Scgcheck: + +Scgskeleton: + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +- Better error messages with wrong Eltorito boot options + +- Man page is now more explicit about requirements for DVD-video + directory trees. + +- Better warning text for missing Rock Ridge in multi.c + +- Bugs in README.sunx86boot corrected + +- Multi Volume code for reading old image now gives different + error messages on read errors and short reads. + +- Diagnostic programs isodump, isoinfo, ... no longer dump core + when called with dev=<SCSI addr> parameters. + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer for this task! + + Note that this can never be 100% correct as there is no relation + between the names on the master (UNIX) filesystem, the ISO-9660 + names and the Joliet names. Only the Rock Ridge names are + untranslated with respect to the original files on the + master (UNIX) filesystem. + + - add libecc/edc for CDI and similar. + + +CYGWIN NT-4.0 NOTES: + +To compile on Cygwin32, get Cygwin and install it. +For more information read README.win32 + +The files are located on: + +ftp://ftp.berlios.de/pub/cdrecord/alpha ... + +NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some + minor trouble. If you like a 100% POSIX compliant tar, get star from + ftp://ftp.berlios.de/pub/star/ + +WARNING: Do not use 'winzip' to extract the tar file! + Winzip cannot extract symbolic links correctly. + +Joerg diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a04 b/doc/ANNOUNCEMENTs/AN-2.01.01a04 new file mode 100644 index 0000000..7acaf29 --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a04 @@ -0,0 +1,164 @@ +Please have a look at the German open Source Center BerliOS at www.berlios.de +BerliOS will continue to support free hosting of cryptography projects even +when US laws change and don't allow to host cryptography projects in the USA. +Also look at sourcewell.berlios.de, the first Open Source announcement service +that itself is implemented as Open Source project. + +***************** Important news **************************** + +For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM + +***************** Please Test ********************************* + +NEW features of cdrtools-2.01.01a04: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +- astoull*() new in schily.h + +- utypes.h now has MAX_ and MIN_ value definitions for all basic + system types. + +- Using Makefiles-1.5a02 + +- Support added to compile in 64 bit mode on Solaris Sparc. + Use: smake CCOM=cc64 + +- Support added to compile shared libraries with version + numbers for interface levels and make inofficial "interfaces" + static + +- Prevent gmake to go into an enless loop on Solaris + in case that /usr/ucb/tr is before /usr/bin/tr in PATH + +- Better autoconf error message ion case that the expected + C-compiler could not be found. + +- Mac OS X now installs files as root:wheel + +- Supply linker mapfiles for all libraries. This allows cdrtools + to be compiles using shared libraries only and to properly + hide inofficial interfaces on Solaris (using ls) + Note that this feature is not available with GNU ld + + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +- Autoconf test for broken Linux sg.h headers added + +- if libscg is compiles on newer Solaris systems, the warning: + + "Warning: Volume management is running, medialess managed drives are invisible.\n" + + is no longer printed. + + Since Solaris 11 Build 21, vold no longer hides empty drives + that are under volume management. This now allows cdrecord to be even + used to close the tray while vold is running. + + The criteria used to decide whether Solaris is "recent enough" is + #ifndef SEEK_HOLE + The definition SEEK_HOLE has been added with Solaris 11 Build 14 + while the fixed vold appears in Solaris 11 Build 21. + +- Support for root-less cdrecord using fine-grained privileges. + Remote SCSI not tests for PRIV_NET_PRIVADDR instead of (geteuid() == 0) + + If you like all users to be able to call cdrecord root-less, you need + Solaris 10 or newer. + + Edit the file /etc/security/exec_attr and add: + + All:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr + All:solaris:cmd:::/opt/schily/bin/readcd: privs=file_dac_read,sys_devices,net_privaddr + All:solaris:cmd:::/opt/schily/bin/cdda2wav: privs=file_dac_read,sys_devices,net_privaddr + + If you like to allow only specific user to use cdrecord, + use something like: + + CD RW:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr + + instead and make the users members of the profile "CD RW" + by adding a line like: + + joerg::::profiles=CD RW + + into /etc/user_attr + + Note that you either need to call cdrecord via "pfexec cdrecord ....." + or by using a profile aware shell (e.g. /usr/bin/pfksh) + +Rscsi: + +Cdrecord: + +- Correctly evaluate the write speeds for Ultra speed+ CD-RW media. + This prevents wrong warnings that the "drive does not support Ultra speed+" + +- Fixed a typo in the driveropts=help messages + + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +- Added a workaround for the _POSIX_PRIORITY_SCHEDULING behavior + on MacosX: defined but not supported# + Thanks to: Emanuele Giaquinta <e.giaquinta@glauco.it> + +- Bugfix: cdda2wav did previously chose to ignore the result of realloc(3) + This prevents core-dumps. + +Readcd: + +Scgcheck: + +Scgskeleton: + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +- mkisofs now detects if a file grows or shrinks while being + read by mkisofs. + + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer for this task! + + Note that this can never be 100% correct as there is no relation + between the names on the master (UNIX) filesystem, the ISO-9660 + names and the Joliet names. Only the Rock Ridge names are + untranslated with respect to the original files on the + master (UNIX) filesystem. + + - add libecc/edc for CDI and similar. + + +CYGWIN NT-4.0 NOTES: + +To compile on Cygwin32, get Cygwin and install it. +For more information read README.win32 + +The files are located on: + +ftp://ftp.berlios.de/pub/cdrecord/alpha ... + +NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some + minor trouble. If you like a 100% POSIX compliant tar, get star from + ftp://ftp.berlios.de/pub/star/ + +WARNING: Do not use 'winzip' to extract the tar file! + Winzip cannot extract symbolic links correctly. + +Joerg diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a05 b/doc/ANNOUNCEMENTs/AN-2.01.01a05 new file mode 100644 index 0000000..f52ab26 --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a05 @@ -0,0 +1,143 @@ +Please have a look at the German open Source Center BerliOS at www.berlios.de +BerliOS will continue to support free hosting of cryptography projects even +when US laws change and don't allow to host cryptography projects in the USA. +Also look at sourcewell.berlios.de, the first Open Source announcement service +that itself is implemented as Open Source project. + +***************** Important news **************************** + +For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM + +***************** Please Test ********************************* + +NEW features of cdrtools-2.01.01a05: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +- Support for DragonFly BSD added, thanks to joerg@britannica.bec.de + +- Default Cygwin install uid/group adapted to use available ids. + +- Updated the (forgotten) autoconf to include the tests needed for Solaris + fine grained privileges. + +- New program btcflash added. Thanks to David Huang <khym@azeotrope.org> + +- + If you like all users to be able to call cdrecord root-less, you need + Solaris 10 or newer. + + Edit the file /etc/security/exec_attr and add: + + All:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr + All:solaris:cmd:::/opt/schily/bin/readcd: privs=file_dac_read,sys_devices,net_privaddr + All:solaris:cmd:::/opt/schily/bin/cdda2wav: privs=file_dac_read,sys_devices,proc_priocntl,net_privaddr + + If you like to allow only specific user to use cdrecord, + use something like: + + CD RW:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr + + instead and make the users members of the profile "CD RW" + by adding a line like: + + joerg::::profiles=CD RW + + into /etc/user_attr + + Note that you either need to call cdrecord via "pfexec cdrecord ....." + or by using a profile aware shell (e.g. /usr/bin/pfksh) + + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +- Support for root-less cdrecord using fine-grained privileges. + Remote SCSI not tests for PRIV_NET_PRIVADDR instead of (geteuid() == 0) + This is now active since the needed autoconf code is out. + +Rscsi: + +Cdrecord: + +- Trying to work around a noncompliance (modified interface) present on newer + Linux kernels that causes cdrecord to be unable to allocate a SCSI transfer + buffer. + + Newer Linux kernels do not honor a contract from mlockall(MCL_FUTURE) + after cdrecord turned off euid == 0 from a suid root installation. + Instead of honoring mlockall(MCL_FUTURE), Linux checks each mmap() + and compares against getrlimit(RLIMIT_MEMLOCK + +- Explicit fine grained privileges support for Solaris. + Cdrecord now switches off all privs that are no longer needed. + + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +- Explicit fine grained privileges support for Solaris. + Cdda2wav now switches off all privs that are no longer needed. + +Readcd: + +- Allow readcd to work correctly in -scanbus mode + Thanks to Fabian Keil <fk@fabiankeil.de> for reporting. + +- Explicit fine grained privileges support for Solaris. + readcd now switches off all privs that are no longer needed. + +Scgcheck: + +Scgskeleton: + +- Allow readcd to work correctly in -scanbus mode + Thanks to Fabian Keil <fk@fabiankeil.de> for reporting. + +- Explicit fine grained privileges support for Solaris. + Scgskeleton now switches off all privs that are no longer needed. + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer for this task! + + Note that this can never be 100% correct as there is no relation + between the names on the master (UNIX) filesystem, the ISO-9660 + names and the Joliet names. Only the Rock Ridge names are + untranslated with respect to the original files on the + master (UNIX) filesystem. + + - add libecc/edc for CDI and similar. + + +CYGWIN NT-4.0 NOTES: + +To compile on Cygwin32, get Cygwin and install it. +For more information read README.win32 + +The files are located on: + +ftp://ftp.berlios.de/pub/cdrecord/alpha ... + +NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some + minor trouble. If you like a 100% POSIX compliant tar, get star from + ftp://ftp.berlios.de/pub/star/ + +WARNING: Do not use 'winzip' to extract the tar file! + Winzip cannot extract symbolic links correctly. + +Joerg diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a06 b/doc/ANNOUNCEMENTs/AN-2.01.01a06 new file mode 100644 index 0000000..8a4f3e6 --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a06 @@ -0,0 +1,141 @@ +Please have a look at the German open Source Center BerliOS at www.berlios.de +BerliOS will continue to support free hosting of cryptography projects even +when US laws change and don't allow to host cryptography projects in the USA. +Also look at sourcewell.berlios.de, the first Open Source announcement service +that itself is implemented as Open Source project. + +***************** Important news **************************** + +For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM + +***************** Please Test ********************************* + +NEW features of cdrtools-2.01.01a06: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +- Better support for BeOS/Zeta in the makefile system + +- Support for armv5teb-linux-cc was added to the makefile system + +- + If you like all users to be able to call cdrecord root-less, you need + Solaris 10 or newer. + + Edit the file /etc/security/exec_attr and add: + + All:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr + All:solaris:cmd:::/opt/schily/bin/readcd: privs=file_dac_read,sys_devices,net_privaddr + All:solaris:cmd:::/opt/schily/bin/cdda2wav: privs=file_dac_read,sys_devices,proc_priocntl,net_privaddr + + If you like to allow only specific user to use cdrecord, + use something like: + + CD RW:solaris:cmd:::/opt/schily/bin/cdrecord: privs=file_dac_read,sys_devices,proc_lock_memory,proc_priocntl,net_privaddr + + Also edit /etc/security/prof_attr + + CD RW:::CD-R/RW Recording Authorizations:auths=solaris.device.cdrw + + instead and make the users members of the profile "CD RW" + by adding a line like: + + joerg::::profiles=CD RW + + into /etc/user_attr + + Note that you either need to call cdrecord via "pfexec cdrecord ....." + or by using a profile aware shell (e.g. /usr/bin/pfksh) + + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +- BeOS/Zeta libscg low level adoption code fixed. + The code now is passing a "scgcheck" test. + +Rscsi: + +Cdrecord: + +- Adjust some timeouts to prevent that the drive buffer of + newer Pioneer DVD writers empties when writing high speed DVD + media. + +- Support for BeOS/Zeta shared memory was added + +- New tag CDR_MAXFIFOSIZE= in /etc/default/cdrecord allows to + limit the size of the FIFO cdrecord is using. This helps the + sysadmin to prevent other people from locking up the system. + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +Readcd: + +- Support for BeOS/Zeta shared memory was added + +- -scanbus behavior corrected + +Scgcheck: + +- Fixed DMA overrun test. BeOS/Zeta did pass the test but + scgcheck did complain before. + +Scgskeleton: + +- -scanbus behavior corrected + +Btcflash: + +- -scanbus behavior corrected + +- man page added + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +- try to work around a GCC trigraph problem + +- man pages for diag commands added + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer for this task! + + Note that this can never be 100% correct as there is no relation + between the names on the master (UNIX) filesystem, the ISO-9660 + names and the Joliet names. Only the Rock Ridge names are + untranslated with respect to the original files on the + master (UNIX) filesystem. + + - add libecc/edc for CDI and similar. + + +CYGWIN NT-4.0 NOTES: + +To compile on Cygwin32, get Cygwin and install it. +For more information read README.win32 + +The files are located on: + +ftp://ftp.berlios.de/pub/cdrecord/alpha ... + +NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some + minor trouble. If you like a 100% POSIX compliant tar, get star from + ftp://ftp.berlios.de/pub/star/ + +WARNING: Do not use 'winzip' to extract the tar file! + Winzip cannot extract symbolic links correctly. + +Joerg diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a07 b/doc/ANNOUNCEMENTs/AN-2.01.01a07 new file mode 100644 index 0000000..2bac2f6 --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a07 @@ -0,0 +1,96 @@ +Please have a look at the German open Source Center BerliOS at www.berlios.de +BerliOS will continue to support free hosting of cryptography projects even +when US laws change and don't allow to host cryptography projects in the USA. +Also look at sourcewell.berlios.de, the first Open Source announcement service +that itself is implemented as Open Source project. + +***************** Important news **************************** + +For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM + +***************** Please Test ********************************* + +NEW features of cdrtools-2.01.01a07: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +- Autoconf script added to 'conf' directory + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +Rscsi: + +Cdrecord: + +- Fixed a bug caused by an uninitalized variable when handling + CDR_MAXFIFOSIZE= and no file /etc/default/cdrecord exists + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +- Write correct error info in case that BeOS/Zeta *_area() calls + fail. + +- As Heiko did not work on cdda2wav during the past 2.5 years, + Heiko did hand over the SCCS history for cdda2wav. + +- Autoconf test for <sys/cdio.h> added (FreeBSD) + +- Some FreeBSD related changes from Heiko done in 2004 + + IMPORTANT: I need testers for FreeBSD and DragonFly BSD as + a result of the merge with the complex changes + from Heiko. + +Readcd: + +Scgcheck: + +Scgskeleton: + +Btcflash: + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer for this task! + + Note that this can never be 100% correct as there is no relation + between the names on the master (UNIX) filesystem, the ISO-9660 + names and the Joliet names. Only the Rock Ridge names are + untranslated with respect to the original files on the + master (UNIX) filesystem. + + - add libecc/edc for CDI and similar. + + +CYGWIN NT-4.0 NOTES: + +To compile on Cygwin32, get Cygwin and install it. +For more information read README.win32 + +The files are located on: + +ftp://ftp.berlios.de/pub/cdrecord/alpha ... + +NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some + minor trouble. If you like a 100% POSIX compliant tar, get star from + ftp://ftp.berlios.de/pub/star/ + +WARNING: Do not use 'winzip' to extract the tar file! + Winzip cannot extract symbolic links correctly. + +Joerg diff --git a/doc/ANNOUNCEMENTs/AN-2.01.01a08 b/doc/ANNOUNCEMENTs/AN-2.01.01a08 new file mode 100644 index 0000000..b45988c --- /dev/null +++ b/doc/ANNOUNCEMENTs/AN-2.01.01a08 @@ -0,0 +1,96 @@ +Please have a look at the German open Source Center BerliOS at www.berlios.de +BerliOS will continue to support free hosting of cryptography projects even +when US laws change and don't allow to host cryptography projects in the USA. +Also look at sourcewell.berlios.de, the first Open Source announcement service +that itself is implemented as Open Source project. + +***************** Important news **************************** + +For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM + +***************** Please Test ********************************* + +NEW features of cdrtools-2.01.01a08: + +******* +NOTE: this is _not_ a release that starts a new aplha/beta series of dirtibutions. + The only reason is to add certain new CD/DVD features that are important. + + So _please_ do not send any patches except when you like to fix extreme bugs. + I am currently mainly working on stable incremental restore featurs for star-1.5-final. + Once star-1.5-final is out, cdrtools will start a new developent cycle. +******* + +All: + +Libparanoia (Ported by Jörg Schilling, originated by Monty xiphmont@mit.edu): + +Libedc (Optimized by Jörg Schilling, originated by Heiko Eißfeldt heiko@hexco.de): + +Libscg: + +Rscsi: + +Cdrecord: + +Cdda2wav (By Heiko Eißfeldt heiko@hexco.de): + +- Started to make cdda2wav Cstyle compliant. + +- Avoid to shutdown the whole system when kill(getppid(), SKGINT) + would result in kill -INT 1 because the parent cdda2wav is + dead and the child is orphaned and cdda2wav has been called by root. + +- __FreeBSD_version >= 600021 have devmajor == 0 for all devices. + Thanks to Marius Strobl <marius@alchemy.franken.de> for reporting. + +- General #ifdef structure related to FreeBSD in mycdrom.h now + corrected, thanks to Marius Strobl. + +- Try to fix some FreeBSD/DragonFly related problems that have been + introduced with a06 when Heiko's changes from 2004 have been integrated + + IMPORTANT: I need testers for FreeBSD and DragonFly BSD as + a result of the merge with the complex changes + from Heiko. + +Readcd: + +Scgcheck: + +Scgskeleton: + +Btcflash: + +Mkisofs (By Jörg Schilling and James Pearson j.pearson@ge.ucl.ac.uk): + +TODO: + - read Joliet filenames with multi-session if no TRANS.TBL + or RR is present. I am looking for a volouteer for this task! + + Note that this can never be 100% correct as there is no relation + between the names on the master (UNIX) filesystem, the ISO-9660 + names and the Joliet names. Only the Rock Ridge names are + untranslated with respect to the original files on the + master (UNIX) filesystem. + + - add libecc/edc for CDI and similar. + + +CYGWIN NT-4.0 NOTES: + +To compile on Cygwin32, get Cygwin and install it. +For more information read README.win32 + +The files are located on: + +ftp://ftp.berlios.de/pub/cdrecord/alpha ... + +NOTE: These tar archives are 100% POSIX compatible. GNU tar may get some + minor trouble. If you like a 100% POSIX compliant tar, get star from + ftp://ftp.berlios.de/pub/star/ + +WARNING: Do not use 'winzip' to extract the tar file! + Winzip cannot extract symbolic links correctly. + +Joerg diff --git a/doc/DOC-OVERVIEW b/doc/DOC-OVERVIEW new file mode 100644 index 0000000..d40ff6c --- /dev/null +++ b/doc/DOC-OVERVIEW @@ -0,0 +1,35 @@ +This is the documentation collection of the cdrkit package + +It has been derived from the cdrtools package maintained by +Joerg Schilling. However, other maintainers work on this +spinoff of the documentation. + +Keep in mind that cdrkit is not cdrtools when you read the +documentation. Some details may be void in context of +cdrkit. + +Contents: + +ANNOUNCEMENTs : directory containing AN* files with release + notes from old cdrtools releases + +READMEs : contains HOWTOs and instructions relevant to + various tasks, especially such where multiple + programs are involved + +wodim : contains README files relevant for the work with the + wodim application (writing data) and details specific + to its usage + +genisoimage : documentation for work with genisoimage program, a + ISO9660 filesystem creator. See genisoimage/README for + details. + +icedax : contains documentation for the CD audio + extraction utility icedax. See icedax/README for + details. + +platforms : contains notes about portability to different + platforms + + diff --git a/doc/PORTABILITY b/doc/PORTABILITY new file mode 100644 index 0000000..c694a22 --- /dev/null +++ b/doc/PORTABILITY @@ -0,0 +1,34 @@ +You may have heard from a certain person that cdrkit is not portable and you +may need some help to decide whether you shall believe him/her or not. It is, +as usual, recommended to make your own opinion before adopting someone elses +which may be biased. + +What is portability? Portability is the ability for being compiled and +deployed on a platform that an application supports. It is obvious that nobody +can promise the unlimited portability especially not to operating systems to do +not exist yet or that are long dead (dead like in: unsupported, unmaintained for +many years, needing hardware which is not available in stores for many years). +And there could always undocumented bugs which means that real life tests +should be done on the target platform(s) again and again. + +Therefore, unlimited portability is pure utopia. It is required to define a +certain degree of portability to meet the needs of the target user base. + +How does that work in scope of cdrkit? Main target are mainstream platforms. +Currently, it supports Linux, FreeBSD, Cygwin (Win32), SunOS and AIX5l. This +set should cover the majority of general purpose computer systems in the wild. + +Cdrkit sets some requirements on the targeted operating systems. However, most +modern unix-like OS should be able to fullfill them. Those requirements +include: + + - an ANSI-C compiler, or a GCC port + - GNU make port + - Large File Support + - sane libc library + - some prerequisites to bootstrap CMake + +This cuts off support for really old operating systems, but... do you care? Do +you need it? Or do you want to believe the tales of superiority through (just +claimed) portability? + diff --git a/doc/READMEs/README.ATAPI b/doc/READMEs/README.ATAPI new file mode 100644 index 0000000..8b2e601 --- /dev/null +++ b/doc/READMEs/README.ATAPI @@ -0,0 +1,589 @@ + +The file attached below provides a short explanation about the nature of ATAPI +and the support for it on various platforms. However, it was written for an +old version of cdrtools by Joerg Schilling and completed with even older guides +supplied by other authors, therefore parts of the content are no longer true or +are not applicable anymore. Read and interpret with care! + +See README.ATAPI.setup for a quick setup guide for Linux. + +Eduard Bloch, 2006 + +# @(#)README.ATAPI 1.3 04/05/20 Copyright 1997-2004 J. Schilling + +People (with a Linux only background) often ask me why do you depend on +"ATAPI-SCSI emulation", why don't you support generic IDE? + + Well first a statement: There is no single IDE burner out! + Even a CD-ROM cannot be used decently if you use only IDE commands. + Opening/closing the door, playing audio and similar things + cannot be done using vanilla IDE commands - you will need SCSI commands + to do this. But how do we do this with a drive that uses an IDE + interface? + + ATAPI stands for ATA Packet Interface + + The ATAPI standard describes method of sending SCSI commands over IDE + transport with some small limitations to the "real" SCSI standard. + SCSI commands are send via IDE transport using the 'ATA packet' + command. There is no SCSI emulation - ATAPI drives include native + SCSI command support. For this reason, sending SCSI commands to ATAPI + drives is the native method of supporting ATAPI devices. Just imagine + that IDE is one of many SCSI low level transport mechanisms. + + This is a list of some known SCSI transports: + + - Good old Parallel SCSI 50/68 pin (what most people call SCSI) + - SCSI over fiber optics (e.g. FACL - there are others too) + - SCSI over a copper variant of FCAL (used in modern servers) + - SCSI over IEEE 1394 (Fire Wire) + - SCSI over USB + - SCSI over IDE (ATAPI) + + As you now see, the use of the naming convention "ATAPI-SCSI emulation" + is a little bit misleading. It should rather be called: + "IDE-SCSI host adapter emulation" + +Some naming explanations: + + ATA Attachment Adapter + IDE Integrated Drive Electronics (A Drive that includes ATA) + ATAPI ATA Packet Interface + +When wodim has problems with ATAPI drives on Linux this usually is a Linux +kernel problem. The Linux kernel maintainers unfortunately refuse to correct +their current IDE driver system setup which does not support ATAPI by default. +ATAPI _is_ SCSI over IDE transport. It is hard to understand why Linux still +uses a default driver setup that is designed for IDE CD-ROM drives made +before 1994 (using a IDE compat mode that only allows to use the drive +read-only) and does not handle to send SCSI commands to ATAPI drives by +default. This makes it hard for people who just started with Linux to do +CD-writing on Linux if they own an ATAPI drive. Both Linus Torvalds and +Alan Cox admit that they don't own a CD/DVD writer, how should they know about +the problems? + +There are bugs with the DMA implementation that are known for many years +but they don't get fixed. + +/*--------------------------------------------------------------------------*/ +Which Operating systems support ATAPI + +- AIX: Status unknown! Please report your experience... + +- Apple Mac OS X (Darwin): Supported + +- BeOS (libscg maps ATAPI to SCSI bus # >= 8 + +- BSD/OS: Status unknown! Please report your experience... + +- FreeBSD: + - YES for the latest default kernel. + It includes finally ATAPI-Cam + + - NO for the older kernels. + Yes, if you install a kernel patch from + Thomas Quinot <thomas@cuivre.fr.eu.org> + See http://www.cuivre.fr.eu.org/~thomas/atapicam/ + and README.FreeBSD + +- HP-UX: It looks like ATAPI does not work correctly due to kernel bugs. + + New information: + HP supports a HP A7853A B/C class machine (s700_800) with HP-UX-11.x + You need to install a patch: + + Patch Name: PHKL_27224 Patch Description: s700_800 11.00 IDE/ATAPI + cumulative patch + + +- Linux (unfortunately not in the default configuration) + + - It works more or less if you include ide-scsi + + - Linux-2.4.xx includes a CDROM Packet interface in the + IDE CD driver. For this driver libscg now includes + support in pre-alpha status. Use wodim dev=ATAPI -scanbus + to check for drives and e.g. wodim dev=ATAPI:0,0 .... + for writing. Note that this interface is not integrated into + the standard libscg device naming scheme. Support for + this interface has been included because it is the only + way to use a PCCARD/PCMCIA writer - trying to use ide-scsi + on a PCATA interface will cause a Linux kernel panic + or will block all ATAPI drives. + + - Starting with Linux-2.5.45, there is a new experimental + ATAPI interface initiated by Linus Torvalds. Unfortunately, + this interface does not fit well into the rest of the Linux + SCSI kernel transport naming scheme. Wodim allows to + use this interface by calling e.g. wodim dev=ATA:1,0,0 ... + + All Linux ATAPI transport implementations do not support DMA. + Current exceptions are: + + - ide-scsi with block size 2048 and if DMA has been enabled + + - The new experimental ATAPI interface starting with Linux-2.5.45 + allows DMA if DMA has been enabled and the sector size is a + multiple of 4. This allows to use DMA for audio CDs and + when writing any type of CD in RAW mode. + + Note that is a bad idea to first implement a new kernel + interface that also implements the named DMA implementation + bugs and later fix the DMA bug _only_ for this new + interface. It looks like the Linux kernel folks are not + very cooperative :-( + + RAW mode is needed for many new and cheap drives that have bugs when + writing in cooked mode. If there is no DMA, you cannot write faster + than approx 16x. + + +- NetBSD (releases 1.3 and newer) + +- NeXT: Status unknown! Please report your experience... + +- OpenBSD: (release 2.6 and newer) + +- OS/2 (you need to fetch and install ATAPI support first) + see: http://www.leo.org/pub/comp/os/os2/leo/drivers/dasd/daniatapi.zip/ + +- OSF-1 / True64 Status unknown! Please report your experience... + +- SCO-OpenServer: Supported with 5.0.6 and non-public patch or with + 5.0.7. I don't know whether you need a patch for 5.0.7 + +- SCO-UnixWare: partial support with UnixWare 7.1.3 - some SCSI commands + that are needed for cdda2wav and DVD writing are blocked. + 7.1.4 will have full ATAPI support. + +- SGI/IRIX: Status unknown! Please report your experience... + +- Solaris (you may need to use the USCSI transport interface to address + ATAPI if the IDE hostadapter idriver implementation does not follow + Sun's internal standards). + + ATAPI works fine on Solaris 7 sparc and on Solaris 7/8 intel. + + On Solaris 8 (intel) and newer, the ATAPI/SCSI subsystem is integrated + correctly according to Sun's SCSA white paper, so the 'scg' driver works. + This is not true for Solaris on sparc where the ATAPI driver do not conform + to Sun's internal structuring rules. You need to use the USCSI interface + on for ATAPI drives on Solaris sparc for this reason. + + Solaris 8 sparc has a ATA DMA bug that prevents wodim from working at all. + There is a fix from Sun available: the patch 108974-16 + Solaris 9 sparc works again, it has the fix for the ATA DMA bug included. + + Newer versions of Solaris 9 disable DMA for CD-ROM drives on IDE. + Read README.solaris-x86-ATAPI-DMA to learn how this may be circumvented. + +- VMS: works on recent versions! + +- Win32 using a recent ASPI Layer supports ATAPI + You nay need to exclude mini port drivers (see README.win32). + + Newer wodim versions also support the SPTI (SCSI Pass through ioctl). + Libscg uses SPTI by default if you are running NT-5.x or newer and are + administrator. With NT-4.x it may be possible to run wodim dev=SPTI:1,0.0 ... + But there are reports for blue screens (kernel crashes). + +- DOS DOS-7 from win98 includes a ATAPI aware aspi + For other versions have a look at README.msdos and use e.g. "oakaspi". + +/*--------------------------------------------------------------------------*/ +General hints: + +*********************** +NOTE: IDE/ATAPI doesn't have disconnect/reconnect! you cannot expect the needed + performance for CD-writing if you connect source and destination drive + to the same IDE cable. +*********************** + +If you never like to directly write a CD from CD-ROM source, this configuration +seems to be the best: + +IDE 0 MSTR -> HD1 +IDE 0 SLAV -> HD2 + +IDE 1 MSTR -> CD-writer +IDE 1 SLAV -> CD-ROM + +If you like to write from both HD source and CD-ROM source, you should have +the following configuration: + +IDE 0 MSTR -> HD1 (does _not_ hold CD mastering data) +IDE 0 SLAV -> CD-Writer + +IDE 1 MSTR -> HD2 (holds CD mastering data) +IDE 1 SLAV -> CD-ROM + +If cou cannot set up a decent cabling (e.g. because you use a notebook) +you may try to use wodim -immed ... +It runs slow commands in quick (immediate) return background mode and +tries to wait between the write commands to allow to free the IDE cable +so the wodim read process may fill the FIFO from the other drive +on the same IDE cable. + +/*--------------------------------------------------------------------------*/ +The rest of this file is only valid for Linux! + +This was taken out of mails from From: Dave Cohen <dcohen@richmond.infi.net> +and From: Gadi Oxman <gadio@netvision.net.il> +(slightly modified marked ***JS *** except typo corrects) + +As all current Linux versions have ATAPI support for wodim, +I removed the patch section. If you are running a Linux version +that does not support ATAPI<->SCSI command transport, please upgrade. + +The basic driver design in Solaris would also allow to use ATAPI +drives but unfortunately, Sun made a mistake in the mid-level design. +If you want to use ATAPI drives with Solaris, ask Sun why they don't +support SCSI passthrough to IDE although they are using a common driver +concept. + +Please use cdrecord-1.6 final or later (if available), it includes the +modifications needed for ATAPI drives and is still working with other +SCSI drives. Older revisions of cdrecord do not support ATAPI drives. + +If you are using Linux Kernel version prior to 2.1.73 or prior to +2.0.35, please upgrade before you try to compile and use wodim. + +In any case, you need to configure a kernel with ATAPI/SCSI hostadapter +emulation. Read carefully the following instructions: + +In any case, you need to disable generic IDE/ATAPI CDROM support in +order to make ATAPI SCSI emulation working. + +Many people ask why I use ATAPI-SCSI emulation. + + The use of the naming convention "ATAPI-SCSI emulation" is a + little bit misleading. It should rather be called: + "SCSI host adapter emulation" + + The ATAPI standard describes method of sending SCSI commands over IDE + with some small limitations to the "real" SCSI standard. + For this reason ATAPI-SCSI emulation is the native method of + supporting ATAPI devices. + +If you have problems to talk to the device when it is jumpered as "slave" +try to use it as "master". If you connect a hard disk to the same IDE +cable as the CD writer or if you try to read/write data from another drive +that is connected to the same IDE cable as the CD writer you may get +problems too. + +NOTICE: + +With the newer 2.1.x or 2.2.x kernels it seems to be possible to run +SCSI/ATAPI hostadapter emulation and generic IDE at the same time by +selectively telling the kernel what to use for which drive. However, +this would not be needed if the Linux SCSI CD-ROM driver would be more +up to date and supports standard conforming drives. + +Jörg Schilling <schilling@fokus.fhg.de> + +-------------------------------------------------- +Here is a hint from Alan Brown <alanb@manawatu.gen.nz>: + +To allow ATAPI cd and ide-scsi support on the same machine, add +`hd<x>=ide-scsi` to the lilo.conf append entry, or use +`hd<x>=ide-scsi` at the bootup lilo prompt. + +I have my HP-7200 RW drive as the primary drive on the second IDE +bus, so the statement used is "hdc=ide-scsi" + +-------------------------------------------------- + +Hope that the following is helpful to you. + +I recently purchased a HP-7110i CD-RW, which is the U.S. only version of +what you have. The HP 7100 and 7110 CD rewritables use the ATAPI +standard. Originally, the drives were not supported under Linux (due to +some inconsistencies with SCSI translations between the kernel and the +CD), but that problem has just recently been fixed. There are some kernel +and wodim patches that have been made to support this device that have +yet to be officially incorporated into cdwrite and the kernel. In order to +get your drive supported under Linux, you will have to do the following: + +1. Get the proper version of cdrecord. + +As of this writing, I am just getting ready to test Joerg's new cdrecord. +I am currently operational on cdrecord-1.5, so I know that works, and I +have attached patches for that version. + +If you are in a hurry, you can download ver. 1.5, apply patches, and +rock-n-roll. You may want to wait, though. Up to you ;). The version with +ATAPI support is cdrecord-1.6alpha5. I'm not sure if the current kernel +patches are valid for this version, but i'll know soon enough. +**** They are valid **** JS + +BTW, the new version of xcdroast now supports cdrecord - this version +is in beta testing, too (currently uses cdrecord-1.5 but cdrecord-1.6a5 +should work with the current xcdroast too). + +2. Upgrade to kernel version 2.0.31 + +IDE/SCSI translation was first added in this kernel. Because your CD-RW is +an ATAPI device, it will support SCSI command sets. The translation +allows you to map the device as a SCSI generic device. This will allow +cdrecord to recognize it as a SCSI device. +**** 2.0.31 still needs patches, get 2.0.35 or later **** JS + +3. Get the patches and apply them + +Attached find kernel patches for kernel sources ide.h and ide-scsi.c, and +cdrecord source scsi_cdr.c (version 1.5 only). +**** Get cdrecord-1.6 or later **** JS + +3. Recompile kernel with SCSI emulation support + +If you do a "make menuconfig" or "make xconfig", select SCSI emulation +under the category "Floppy, IDE, and other block devices". + +WARNING: +Do not install SCSI support as a module - there is a bug in the makefile +structure that will cause the compile to fail. Compile directly into the +kernel. + +4. WARNING: Disable generic IDE/ATAPI CDROM support *** JS *** + +If you don't do this, the SCSI emulation will not work *** JS *** + +5. This is important too: +You also need to enable SCSI and SCSI generic support *** JS *** + +6. Make sure that /dev/sg* exists. +If they are missing, create them. + +Dave Cohen +dcohen@richmond.infi.net +(Patch instructions below) + +----------------------------------------------------------------- +From: Danilo Fiorenzano <shade@juliet.gppsd.ab.ca> + +Anyway, here's what I did, using kernel version 2.0.33 I believe this +is the proper way to get an HP-7100i to work (and as far as I can tell, +any other IDE CD-writer unit): + +1) patch the kernel as described by README.ATAPI + +2) save your current kernel config to an alternate file, then run + "make mrproper" + +3) run 'make menuconfig' or 'make xconfig', then choose "load config + from alternate file" to restore the original configuration + +4) In "Floppy, IDE and other block devices", disable "IDE/ATAPI CD-ROM + support" and enable instead "scsi emulation" + +5) in "SCSI support" enable "SCSI support", "SCSI CD-ROM support" and + "SCSI generic support", everything directly in the kernel. + +6) compile, install kernel/modules, reboot. Now, if everything went + fine, your CDROM units should show up with a message like: + "hdb: HP CD-Writer+ 7100, ATAPI CDROM drive - enabling SCSI emulation" + +7) run "wodim -scanbus" to make sure wodim can see the unit and + talk to it. The end. + +Don't forget that now -all- of your CD drives are seen as -SCSI- units +by all programs (/dev/scd0 etc.), so you might want to relink +/dev/cdrom to the proper scd<n> in order to get xcdplay or whatever to +work again. + + +------------------------------------------------------------------------------- +NOTE: + +1) Current wodim releases support ATAPI + +2) Linux 2.0.35 or Linux 2.1.73 or later include ATAPI support +------------------------------------------------------------------------------- +From whampton@staffnet.com Fri Jan 14 05:21:34 2000 +From: "W. Wade, Hampton IV" <whampton@staffnet.com> + +You may wish to include/append these notes to your ATAPI notes.... + +I have my 4X Acer CD-R/RW ATAPI drive working with Linux. My platform +is +RedHat 6.1 with kernel 2.2.14. My first ATAPI CD device is a DVD with +the second +the CD-R. I made the following changes: + +Steps: + +1. Identify which device is the CD-R -- in my case the fourth ATAPI +device, /dev/hdd. + +2. Compile the kernel to include ATAPI CDROM and SCSI emulation: + + Under the block devices menu: + Y or M Include IDE/ATAPI CDROM support + Y or M SCSI emulation + +3. Build and install the upgraded kernel. + +4. If you selected modules, add them to the /etc/conf.modules file. + +5. In the /etc/lilo.conf file add an append line for ide-scsi, in my +case: + append = "hdc=ide-scsi hdd=ide-scsi" + +6. Reboot to the new kernel and make sure the ide-scsi module is loaded + + /sbin/lsmod | grep ide-scsi + +7. Make a link from the proper SCSI device to a symbolic, e.g., +/dev/cdrom: + In my case the DVD is the first CD, hence appears as /dev/scd0 to +scd7 + (cat /proc/scsi/scsi to get a full list of devices -- the first +CD-ROM will + appear as scd0, etc.) With the current ATAPI-SCSI module, each CD + + device appears as 8 SCSI devices (different logical units). If +you have + two devices, like I do, you may have to make a node for the second +device. + In my case I had to make scd8: + + cd /dev + mknod scd8 b 11 8 + + Then make links, in my case: + + ln -s scd0 cdrom + ln -s scd8 cdr + + Note, many CD-ROM player programs expect the audio CD drive to + be located at /dev/cdrom (xplaycd, etc.), hence this link is +recommended. + + If you try to use /dev/hdc (or wherever your CD or CD-R is) +after loading + the ide-scsi module, you may not be able to mount CD's or play +audio + discs -- you have to use the new SCSI names for the device. + +8. Fix your /etc/fstab file to mount the /dev/cdrom and /dev/cdr + + +/*--------------------------------------------------------------------------*/ +From: Eduard Bloch <edi@gmx.de> + +Situation: + Linux: Kernel 2.2.15 (Debian package kernel-image-2.2.15) + Distribution: Debian Potato (deep freeze), i386 + Devices: one CDRW-Writer, one CDROM-drive, both ATAPI + +1. Become root, try "grep hd.: /var/log/kern.log" to find out where your + ATAPI-devices are connected to (hd?-names). +2. Edit your boot configuration file, eg. /etc/lilo.conf if you use + lilo or the batch-file if you boot via loadlin. +3. Find a line where you can append additional kernel parameters, eg. + "append=" in lilo.conf or the loadlin-line in the batch file. +4. Append sth. like this: "hdb=ide-scsi hdc=ide-scsi max_scsi_luns=1" + The hdX-parameters defines devices that should be mapped to SCSI + latter. You may do it with non-writers too, since the emulation layer + is almost complete, or let them out so the devices will use their + native drivers. +5. Save the file, reinstall the bootloader (ie. running "/sbin/lilo") +6. Call "modconf", load "sg" and "ide-scsi" from the SCSI-section +7. Reboot Debian, watch while booting, you should see a line like this + "Detected scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0". + Your old ATAPI devices virtually don't exist any longer, use the + SCSI equivalents instead. +8. Become root, setup devices: + cd /dev + MAKEDEV sg scd + ln -s scd0 cdrom # NOTE: or cdrw, first check which drive is here + ln -s scd1 cdrw # NOTE: see above, maybe cdrom + Check the new SCSI settings: + wodim -scanbus + Setup wodim's environment - edit /etc/wodim.conf: + CDR_DEVICE=cdrw + cdrw=1,0,0 4 8m + cdrom=1,2,0 0 0m + Input the right values, the fields are described in the manpage + of wodim. Alternatively, you may use this values as + wodim-parameter or take a frontend with an own configuration + scheme, then you don't need to modify /etc/wodim.conf. +9. It's done! Insert a CD and try "wodim -v -toc" +/*--------------------------------------------------------------------------*/ +He had constant buffer underrun problems: + +From: "Trenton D. Adams" <trenton.adams@telusplanet.net> + +I enabled DMA, and 32-bit mode on the CD-Writer using "hdparm". +This fixed the writing problem. + +/*--------------------------------------------------------------------------*/ +From: "Mario Moder" <clay-man@freenet.de> +----- +TEAC CD-W54E + +I recently installed a TEAC CD-W54E (an ATAPI CD-RW-Recorder) and I had +problems with buffer underruns and other errors when burning a CD (with +Linux and Windows 2000). My system has an old ASUS P/I-P55T2P4 Pentium +mainboard with Intel PCI-Bus-Master-IDE (I think the chipset is an Intel +430HX and the IDE controller is an 82371SB). The harddisk is the master on +the primary IDE channel, and the CD-Recorder is the master on the secondary +IDE channel. + +After turning off DMA for the CD-Recorder AND the harddisk, the drive had no +longer problems with burning a CD. You can try the following things to make +it work, if you have similar problems with a similar hardware configuration: + +For Linux (Kernel 2.2.19): +Turn off "Enable DMA by default" in the kernel (and then compile a new +kernel), if you had it turned on or use "hdparm" to turn of DMA for both the +CD-Recorder and the harddisk + +For Windows 2000: +In the Device Manager go to "IDE ATA/ATAPI-Controller" and open the +properties for the first and second IDE channel. There you change the mode +of the devices from DMA to PIO. +----- + +/*--------------------------------------------------------------------------*/ + +Hints for the Linux Packet code in ide-cdrom.c: + + WARNING! It seems that this driver does not allow to send all + SCSI commands. A command that definitely fails is READ FULL TOC. + For this reason, you cannot read those 'defective' audio CDs + with broken TOC when you use this interface. + + Thanks to Alexander Kern <alex.kern@gmx.de> for the idea and first + code fragments for supporting the CDROM_SEND_PACKET ioctl() from + the cdrom.c kernel driver. Please note that this interface in principle + is completely unneeded but the Linux kernel is just a cluster of + code and does not support planned orthogonal interface systems. + For this reason we need CDROM_SEND_PACKET in order to work around a + bug in the linux kernel that prevents to use PCATA drives because + the kernel panics if you try to put ide-scsi on top of the PCATA + driver. + + The code is currently in "status nascendi" but usable with some trade offs. + + To use: call e.g. + + wodim -scanbus dev=ATAPI: + + wodim -dao -v speed=24 dev=ATAPI:0,0 .... + + Be careful! This code is only needed in order to be able to use + PCATA CD-writers on notebooks because there is a severe kernel bug. + Unfortunately, this bug causes the kernel to hang (and force you + to reboot) if you try to call: + + wodim -scanbus + + without the dev=ATAPI: option. + + In this case wodim will hang infintely and unkillable + in open("/dev/sg1", 2) => you need to reboot :-( + + Repeat by: Insert a PCATA CD-Writer in a Sony VAIO notebook and run + wodim -scanbus. + diff --git a/doc/READMEs/README.ATAPI.setup b/doc/READMEs/README.ATAPI.setup new file mode 100644 index 0000000..e283342 --- /dev/null +++ b/doc/READMEs/README.ATAPI.setup @@ -0,0 +1,87 @@ +Howto setup an ATAPI CD-RW/DVD+-RW recorder on Debian/Ubuntu +============================================================ + +This guide should be applicable to most kernel 2.6 using distributions of +GNU/Linux. For installations with kernel 2.4, continue reading below. + +Kernel 2.6.* +============ + +If you have just one CD writer in your computer, CD-writing should work out of +the box. There should be a symbolic link /dev/cdrw which points to your actual +CD-Writer's device (e. g. /dev/hdb). If the link is not present (eg. the +system is not using udev/devfs) or if you want to use a different device as +default, you can configure the device in /etc/wodim.conf: + + CDR_DEVICE=/dev/hdd + +would configure the default device to be /dev/hdd, i. e. the slave +device on the secondary IDE bus. + +You can always override this default setting with wodim's "dev" +option: + + wodim dev=/dev/hdc ... + +Only users part of the system group "cdrom" are able to write CDs. +If you wish to allow non-root users to write CDs then add your users to the +cdrom group ("adduser user cdrom") and let the user completely logout and +re-login. +Note: with certain kernel versions wodim can fail with this message: +"wodim: Operation not permitted. Cannot send SCSI cmd via ioctl" +In this case it still does need the suid bit - please send patches if you have +identified the reason of that problem. + +Kernel 2.4.* (for 2.5/2.6, see above) +===================================== + +Where we start: + Linux: Kernel 2.4.20-bf2.4 (Debian package kernel-image-2.4.20-bf2.4) + Distribution: Debian Woody 3.0r2, i386 + Devices: one CDRW-Writer, one CDROM-drive, both ATAPI + +1. Become root, try "grep hd.: /var/log/kern.log" to find out where your + ATAPI-devices are connected to (hd?-names). +2. Edit your boot configuration file, eg. /etc/lilo.conf if you use + lilo or the batch-file if you boot via loadlin. +3. Find a line where you can append additional kernel parameters, eg. + "append=" in lilo.conf or the loadlin-line in the batch file. +4. Append sth. like this: "hdb=ide-scsi hdc=ide-scsi max_scsi_luns=1" + The hdX-parameters defines devices that should be mapped to SCSI + latter. You may do it with non-writers too, since the emulation layer + is almost complete. Or omit some so the devices will use their + native drivers (eg. ide-cd). +5. Save the file, reinstall the bootloader (ie. running "/sbin/lilo") +6. Call "modconf" in a console or xterm, enter the section + "kernel/drivers/scsi", load "sg" and "ide-scsi" +7. Reboot Debian, watch while booting, you should see a line like this: + "Detected scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0". + Your old ATAPI devices virtually don't exist any longer, you cannot refer to + /dev/hd* as CDROM drives. Use the SCSI equivalents instead, /dev/sr*. +8. Become root, setup devices: + cd /dev + MAKEDEV sg scd + ln -s scd0 cdrom # NOTE: or cdrw, first check which drive is here + ln -s scd1 cdrw # NOTE: see above, maybe cdrom + Check the new SCSI settings: + wodim -scanbus + Setup wodim's environment - edit /etc/wodim.conf: + CDR_DEVICE=cdrw + cdrw=1,0,0 4 8m + cdrom=1,2,0 0 0m + Insert the right values, the fields are described in the manpage + of wodim. Alternatively, you may use these values as + wodim-parameter or take a frontend with an own configuration + scheme, then you don't need to modify /etc/wodim.conf. + The columns must be separated by tabs. +9. It's done! Insert a CD and try "wodim -v -toc". To create your first CD-ROM, try: + + mkisofs -v -r -J /directory/to/be/written | wodim -v -dummy - + + (read wodim(1), "man 1 wodim", for details) + +10. If you wish to allow non-root users to write CDs, you must give them + permissions to do so. Set suid-root permissions on the executable, + then add your users to the cdrom group ("adduser user cdrom") and + let the user completely logout and re-login. + diff --git a/doc/READMEs/README.audio b/doc/READMEs/README.audio new file mode 100644 index 0000000..7e2d7c9 --- /dev/null +++ b/doc/READMEs/README.audio @@ -0,0 +1,50 @@ +Why do I hear only noise from my first audio CD? + +You may have a byte swapping problem, try wodim -swab +but note that is is most unlikely that you need to use the -swab +option from wodim unless your input files are broken. +It makes more sense to find out why the inout files are not OK. + +wodim assumes Motorola/Network byte order (big-endian) on input +regardless of the byte order of the CD-Recorder. If wodim +encounters a .wav file, byte order is corrected to match the byte order +of the .wav file. + +wodim by default uses Track at once. This always gives 2 seconds +pause between two audio tracks and loweres the audio quality. + +For best audio CD quality, use wodim -dao (to write in Session At Once) +ot wodim -raw (to write in RAW mode). Note that there are a lot of drives +notably from Lite-ON that have defective firmware and will write defective +CDs if you use either TAO or SAO mode. In RAW mode, wodim has the +full control over the complete CD and the chance that the CD is OK +is much higher. + +The 2 seconds pause between two audio tracks is the CD ***standard*** + +The standard says: + Each track starts with 2 seconds of silence + followed by at least 4 seconds of audio data. + +For that reason the 2 second pause is generated by the CD-R drive in +Track at once (TAO) mode. + +CD's that have no pause between two tracks are illegal (compared to RED BOOK). +These illegal disks may be made with Disk At Once (DAO) only. +In DAO mode the writing software needs to send the 2 seconds pause as +binary zeroes and therefore is able to create illegal disks by +sending audio data instead. + +Some drives don't accept to write illegal disks even in SAO mode. +In this case, use the RAW mode. In RAW mode, the drive does not even +"know" what is going on and thus cannot prevent you from writing such +a disk. + +This audio data (the last two seconds of a track in this case) +however are part of the next track from viewing the TOC of the disk. +Digital Audio Extraction programs that work correctly (as intended by the +CD standard) split the content of a CD into files by including the +pre-gap (usually holding 2 seconds of pause) at the end of the previous +track. + +Eduard Bloch, based on documentation from Joerg Schilling diff --git a/doc/READMEs/README.cdplus b/doc/READMEs/README.cdplus new file mode 100644 index 0000000..24deb0d --- /dev/null +++ b/doc/READMEs/README.cdplus @@ -0,0 +1,85 @@ +Wodim and genisoimage allow you to create multi-session CD's with all +supported drives. + +According to www.cd-info.com, a CD+ is a CD with two sessions. +The first session is an audio session, the second session a data +session. + +Creating a CD+ is first writing an audio session in +multi session mode and then writing a data session. + +If you like to append a filesystem to a audio CD, first extract the +CD by calling: + + icedax -B -vall + +This first audio session may be written in TAO mode with the command + + wodim -multi -audio file1 .... + +or in DAO mode with the command + + wodim -dao -multi -useinfo -audio file1 .... + +To add the second session that contains the data track, you need +to create an ISO-9660 file system that starts not at sector 0. + +With the current genisoimage, you must use the following method: + +- First call wodim -msinfo for your prepared multi-session audio CD. + + you will get something like 0,12345 + +- Now call genisoimage: + + genisoimage -o fs.raw -C 0,12345 root_directory_for_new_cd + + replace 0,12345 with your actual wodim -msinfo output. + +the image in fs.raw may now be written with wodim as second session. + +See my README.multi for more info on how to create multi session CD's + + +The procedure again in short form: + + icedax -vall -B + + wodim -multi -audio audio_tracks .... +or + wodim -dao -useinfo -multi -audio audio_tracks .... + + wodim -msinfo .... + (output is e.g. 0,12345) + + genisoimage -R -o cd_plus.raw -C 0,12345 root_dir_of_fs + + wodim -data cd_plus.raw +or + wodim -multi cd_plus.raw + + +Note: If you want to create an HFS hybrid as the data track, then you must +use the '-part' option to genisoimage. Otherwise, the data track will be mounted +as an ISO9660/Joliet CD when used on a Mac. + +Jörg + +Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch + +This describes the programs as shipped with cdrkit, a spinoff from the +cdrtools project. However, the cdrtools developers are no longer +involved in the development of this spinoff and therefore shall not +be made responsible for any problem caused by it. Do not try to get +support for this program by contacting the original authors. + +If you have support questions, send them to + +debburn-devel@lists.alioth.debian.org + +If you have definitely found a bug, send a mail to this list or to + +submit@bugs.debian.org + +writing at least a short description into the Subject and "Package: cdrkit" +into the first line of the mail body. diff --git a/doc/READMEs/README.cdtext b/doc/READMEs/README.cdtext new file mode 100644 index 0000000..33df110 --- /dev/null +++ b/doc/READMEs/README.cdtext @@ -0,0 +1,65 @@ +CD-Text Usage (to copy CD-Text from master CD): + + icedax -D 6,0 -vall -B # To extract audio information + wodim dev=6,0 -vv -toc # To extract CD-Text information + + and then + + wodim dev=6,0 -v -dao textfile=cdtext.dat -useinfo *.wav + or + wodim dev=6,0 -v -raw96r textfile=cdtext.dat -useinfo *.wav + + If the CD-Text information contains more CRC errors than + wodim can correct, you need to reload the CD and to + re-read the CD-Text information from the master disk. + + Writing of CD-Text is supported for all drives that support + CD-Text in SAO write mode and for all drives that support + to write in RAW/RAW96R mode (use -raw96r in this case). + + NOTE: not all writers that support MMC SAO mode support + to write CD-Text in this write mode. + If you have a drive that does not support CD-Text + but supports RAW/RAW96R mode use this mode as + in RAW/RAW96R mode the drive does not need to know + about CD-Text. This way even old drives like the + Plextor PX-R 412C will write CD-Text. + + NOTE that icedax will read CD-Text and fill in the + CD-Text fields in the *.inf files if vou use -vall. + + The new icedax option cddb= allows you to tell icedax to + retrieve CDDB information from freedb.freedb.org. + cddb=0 means ask if ambiguous, cddb=1 means take first entry. + The information in this case is filled into the fields + in the *.inf files. + +Creating a CD with CD-Text based on CDDB information from freedb.freedb.org: + + Tell icedax to fetch data from freedb.freedb.org, call + + icedax -D 6,0 -vall -B cddb=1 # To extract audio information/fetch CDDB data + + and then call + + wodim dev=6,0 -v -dao -text -useinfo *.wav + or + wodim dev=6,0 -v -raw96r -text -useinfo *.wav + + +If you like to create your own CD-text data for a CD use the +following method: + + First extract all tracks with icedax -vall (see above), + + then edit the *.inf Files and add album and song titles. + + Now call wodim as if the *.nf files contain CD-Text + information. + + Note that it is recommended to use less that 160 characters + for a single string. + +Source: README.cdtext from cdrtools package +Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch + diff --git a/doc/READMEs/README.copy b/doc/READMEs/README.copy new file mode 100644 index 0000000..dc78169 --- /dev/null +++ b/doc/READMEs/README.copy @@ -0,0 +1,53 @@ +Ho to copy CD's and CD-R/CD-RW's + +Copying audio CD's: + +If you want to copy audio CD's, look for 'icedax'. + +Copying data CD's: + +The best way to copy a data disk is to copy the raw data on the master CD. +This may be done by reading the data from the raw device by using 'readom'. + + +NOTE: All CD-R's written in Track At Once mode end in two unreadable + run-out sectors. If the disk has been written with a Yamaha CD-R100 + or with a Yamaha CD-R102, there are even more run-out sectors. + +For this reason, you will not be able to read such a CD correctly with 'dd'. + +I recommend to write all disks in Disk at Once mode if your drive +is supported in DAO mode with wodim. In addition, you may wish to +add padding (see wodim / genisoimage man pages). + +If you want to copy such a CD directly with wodim, you may call: + + wodim -v dev=... -isosize /dev/cdrw + +But this may fail if the master gives read errors. To copy such a CD to a file +you may use the program 'readom' from this package + +Call 'readom [target] [lun] [scsibusno]' and select function 11. +Or call readom -help to get alternate usage. +To prevent readom from reading the run-out sectors, reduce the +number of sectors to copy by 2. + +Recent readom versions may be called: readom dev=b,t,l f=outfile +To reduce the numbers of sectors to copy you may use the sectors= option. + +If the master disk is made of several partitions (like a Solaris boot CD), +the best way to copy a CD is to use the program 'readom'. It ignores +the partition info and does raw SCSI reads. + +If you like to copy audio CD's in a way that preserves as much accuracy as +possible, use: + +icedax -vall -D... -B +wodim -v dev=... -dao -useinfo *.wav + +This will preserve pre-gap sizes, indices ... + + +Source: README.copy from cdrtools package, version 2.01.01a08 +Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch <blade@debian.org> + diff --git a/doc/READMEs/README.multi b/doc/READMEs/README.multi new file mode 100644 index 0000000..d7d3457 --- /dev/null +++ b/doc/READMEs/README.multi @@ -0,0 +1,209 @@ +Creating multi-session CDs/DVDs Mini Howto FAQ + +Multi-session filesystems are a trick that comes from the Kodak photo CD. +The OS mounts the last session that contains the sum of the current session +and all previous sessions. + +To test (with Linux): + + - create a iso-9660 filesystem image with genisoimage. + - genisoimage is included in the cdrkit release. + - use the -R flag to add Rock Ridge extensions (this is important). + +Assuming that the CD-R drive is connected to target 2 on the SCSI bus. + +Write the first session with: + +wodim -v speed=2 dev=2,0 -eject -multi isoimage.raw + +Note that all Sony drives do no support XA2 disks in firmware - read README.sony +for more information. + +This must be a iso9660 image with Rock Ridge extensions (see above) + +Note the number of sectors written and check the disk, it should be mountable. + +Next step is to check if wodim is able to retrieve the following data: + + 1) The first block (sector) number in the first track of the last session + This must be '0' in our case. + + 2) The next writable address in the unwritten session following the current. + This should be the number of sectors written in the first + run + ~ 11400 sectors for about 22MB lead out/in + + For the first additional session this is 11250 sectors lead-out/lead-in + overhead + 150 sectors for the pre-gap of the first track after the + lead-in = 11400 sectors. + + For all further session this is 6750 sectors lead-out/lead-in + overhead + 150 sectors for the pre-gap of the first track after the + lead-in = 6900 sectors. + +To get this information type: + +wodim -msinfo dev=2,0 + +The output should be two numbers separated by a comma. + + e.g.: 0,204562 + +The first number is (1), the second number is (2). + +2nd session: +You should create a directory that contains a second directory with data in it +for this purpose. + + e.g.: + first_dir/ + second_dir/ + file_1 + file_2 + ... + +call: + +On Linux: +genisoimage -o isoimage_2.raw -R -C xx,yy -M /dev/cdwriter_blk_dev first_dir + +On SunOS: +genisoimage -o isoimage_2.raw -R -C xx,yy -M target,lun first_dir + +Note that the name "first_dir" is not important. + +If you still keep the old raw image of the first session and there is only +one previous session on the CD you may also call: + +genisoimage -o isoimage_2.raw -R -C xx,yy -M isoimage.raw first_dir + + +The argument of -C is the output of wodim -msinfo +- On Linux, the argument of -M is a device that would allow you to mount + the current CD in the CD-writer +- On SunOS, target and lun refer to the SCSI target and lun of the + CD-R device with the same notation as for wodim dev=xxx,yyy . + +Note that you can also use the -msifile=... option of wodim to store this data +in a reliable way. This is usefull for scripting. + +If you want to check, whether genisoimage make everything right, you should create +another image by using the following command line. + +On Linux: +genisoimage -o isoimage_2.raw -R -C xx,0 -M /dev/cdwriter_blk_dev first_dir + +On SunOS: +genisoimage -o isoimage_2.raw -R -C xx,0 -M target,lun first_dir + +Where xx is the first number of the pair returned by wodim -msinfo + +You may check ***this** image by mounting it with my "fbk" on Solaris +or the loopback driver on Linux. + +On Linux type: + mount isoimage_2.raw -r -t iso9660 -o loop /mnt + +On SunOS type: + mount -r -F fbk -o type=hsfs /dev/fbk0:isoimage_3.raw /mnt + +For Solaris 8 and later you may also use the Sun lofi driver (see README.sun-lofi) + +If you list /mnt, you should see all directories that have been in the first +session and the directory "second_dir". If you try to read a file from the +first session, you will get an I/O error or bad data (depending on the +block address), don't worry about that. If you try to read a file from +the second session, you will see everything correctly. + +To write the second session to CD, call: + +wodim -v speed=2 dev=2,0 -eject -multi isoimage_2.raw + +If you mount this CD, you should see the first session and the second directory +from 2nd session added to the root directory of the CD. + + +Additional check: + +call: + +wodim -msinfo dev=2,0 + +The first number should be the first writable address which was retrieved by the +first call to wodim -msinfo after creating the first session. +The second number should be the first number + number of sectors of the second session ++ ~ 11400 sectors. + +Note: The first lead-out is 1:30 (6750 sectors) the lead-in is 1:00 (4500 sectors) +All following sessions need only 0:30 for lead-out (2250 sectors), the lead-in +is also 1:00. So in theory, the can be 44 sessions on s 74 minute disk if you +take into account that the minimum track size is 4 seconds. + +The total amount of the overhead is 11250 + 150 sectors for the first additional +session and 6750 + 150 sectors for all subsequent sessions. +The 150 additional sectors are the pre-gap sectors for the first track after +the current session. + +Some notes on multi-session CD's that contain only Joliet but no Rock Ridge: + +Joliet is a really bad idea in general: + +- There is no way to find a relation between a ISO-9660 name and a Joliet + name. If the file has a size, you may try to match the starting sector # + but if the size in 0 it's impossible. + + +- Joliet does not allow long filenames (it limits names to 64 chars). + +- Joliet does not allow all (usually used) characters in filenames. + + All code points between (00)(00) and (00)(1F), inclusive. (Control Characters) + (00)(2A) '*'(Asterisk) + (00)(2F) '/' (Forward Slash) + (00)(3A) ':' (Colon) + (00)(3B) ';' (Semicolon) + (00)(3F) '?' (Question Mark) + (00)(5C) '\' (Backslash) + + While '/' is not a real problem ;-) other characters may cause trouble. + +All notes above prevent you from doing reliable multi-session if the CD does +only contain Joliet but des not contain Rock Ridge attributes. + +In addition, please read README.joliet in the genisoimage directory. + +This is the answer to a commonly asked question is why can't I continue a +multisession CD that has been started on a Microsoft system using genisoimage. + + +Note: It is not possible to create a multi-session HFS CD. If you create +a multi-session CD using any of the HFS options, then each new HFS +session will ignore HFS files from any previous sessions. A warning will +be printed if you attempt this. However, if you use the '-part' option to +genisoimage for each session you create, then each session will appear as +separate volumes when mounted on a Mac. In this case, it is worth using the +'-V' or '-hfs-volid' option to give each session a unique volume name, +otherwise each "volume" will appear on the Desktop with the same name. + + +Joerg Schilling + +Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch + + +This describes the programs as shipped with cdrkit, a spinoff from the +cdrtools project. However, the cdrtools developers are no longer +involved in the development of this spinoff and therefore shall not +be made responsible for any problem caused by it. Do not try to get +support for this program by contacting the original authors. + +If you have support questions, send them to + +debburn-devel@lists.alioth.debian.org + +If you have definitely found a bug, send a mail to this list or to + +submit@bugs.debian.org + +writing at least a short description into the Subject and "Package: cdrkit" + + diff --git a/doc/READMEs/README.netscsid b/doc/READMEs/README.netscsid new file mode 100644 index 0000000..07c3672 --- /dev/null +++ b/doc/READMEs/README.netscsid @@ -0,0 +1,145 @@ +The Remote-SCSI protocol gives you SCSI-Anywhere features. + +The protocol used by netscsid is based on rscsi from the cdrtools, developed by +Joerg Schilling. However, no guarantee for the compatibility or reliability can +be made. This documentation is based on rscsi documentation from Joerg +Schilling, but is not identical to the original. + +There are three possible ways to control access to the remote users: + + - Let the remote scsi lib log in as a standard user. + In this case netscsid will be called via sh -c netscsid /usr/sbin/netscsid + NOTE: In this case, netscsid must be installed suid root. + --- This would need to allow any valid local user to access SCSI ---- + It could be a security problem. + + - Log in as root and call netscsid via sh -c netscsid + NOTE that this will fore you to allow remote logins as root + which is considered to be a security hole. + + - Create one or more special user(s) that have netscsid + as login shell with their own home directory. + You then may create special .rhosts files for each user. + NOTE: In this case, netscsid must be installed suid root. + **** This is the preferred method **** + +To enable remote SCSI via the login shell method you should do the following: + + - Install netscsid into /usr/sbin. It can be set suid-root if neccessary, see + security section below. + + - Install a file /etc/netscsid.conf and define access rights. + Without this file, netscsid will not work at all. + The template for this file is: netscsid/netscsid.dfl + + - For the special user method, create a user account. This can be done with a + frontend like adduser or useradd, if available. The user should have /usr/sbin/netscsid as the login shell. + If there is no frontend tool, try this: + + + Add an entry to /etc/passwd in the form: + + netscsid:x:1999:1000:Tape:/home/netscsid:/usr/sbin/netscsid + + (modify this according to your OS). And don't forget to + modify /etc/shadow the way it needs to be on your OS. + + + Create the home directory for this user, adapt the user/group ownership + on this directory. + + - if you use SSH as the login shell (via appropriate RSH environment variable + or a symlink to "rsh" which is the case for many Linux distribution), + consult the ssh documentation for details. + Note that SSH requires sufficiently powered client/server systems to + encrypt/decrypt data in realtime. + + - if you use traditional rsh, add a .rhosts file to this directory to allow + access to all users you like (see rsh documentation) + +NETSCSID Security: + +- When netscsid starts, it checks if /etc/netscsid.conf exists. + If not, it dies. + +- If netscsid is not called by a user listed in /etc/netscsid.conf + it dies. + +- To access a SCSI target there must be an entry that lists the user + rcsi hast been started from, the hostname and the SCSI target. + + netscsid compares the hostname field in /etc/netscsid.conf + to the peername retrived from STDIN: + + - legal host name IP connection + - "ILLEGAL_SOCKET" Not an IP socket + - "NOT_IP" Not a socket + +NETSCSID Security hints: + +- Do not generally allow other users to see your boot disk via NETSCSID. + All people who see this disk may edit your passwd file. This especially + applies to suid-root usage. For non-suid-root, check the access permissions. + +- If you are in doubt, only export CD-ROM drives, scanners and similar + devices that are not directly security sensitive. + +If anybody sees a security hole in my security precautions, please send me a mail! + +NETSCSID usage: + +- To use remote SCSI devices you need to know how to access a specific remote + SCSI target. + + - dev=REMOTE:host: or dev=REMOTE:host + will allow you to do SCSI bus scanning while you log in as yourself + + - dev=REMOTE:user@host: or dev=REMOTE:user@host + will allow you to do SCSI bus scanning while you log in as "user" + + If you use the setup described above, you should use: + + dev=REMOTE:netscsid@babbel: + + to do SCSI Bus scanning on host babbel + + - To access a specific SCSI device, you must specify + dev=REMOTE:host:<target spec> or dev=REMOTE:user@host:<target spec> + <target spec> is the SCSI target specification as it is needed + on the remote host + + dev=REMOTE:netscsid@babbel:1,3,0 + + Will let you log in as netscsid on host babbel and open Target 3 lun 0 + on SCSI bus #1 + + - If you use wodim -vv ...., wodim will on startup print some + information about the remote libscg version used for the connection. + +- To be able to use the remote SCSI client code from win32 you need to create + a file /etc/passwd with a correct entry for the user you are on win32. + Call 'id' to get the right user id. + Note that remote SCSI has not yet been tested on Win32. + +NETSCSID speed: + +- On a Ultra-10 running Solaris 8, the command overhead time is 400 usec. + You may achieve up to 9900 kB/s via a 100MB/s ethernet connection + between two of such machines. + +- With 100 MB/s, 12x recording should be no problem. + +- With 10 MB/s, 4x recording is the maximum. Do tests before! + +- Logging into a remote machine and running wodim on the remote machine + causes the buffer cache on that machine to be trashed. The main user + is disturbed. + +- Doing cdrecording via Remote SCSI causes only the netscsid command with less + than 200kB to be needed on the remote machine hosting the CD recorder. + The main user on that machine is not disturbed. + The buffer cache of the machine running wodim is trashed. + +- It is desirable to use a Burn-Proof recorder to make sure that network + load will not cause buffer underruns. + + +- USER= test and test for hostname are using a pattern matcher. diff --git a/doc/READMEs/README.sony b/doc/READMEs/README.sony new file mode 100644 index 0000000..3ee6da6 --- /dev/null +++ b/doc/READMEs/README.sony @@ -0,0 +1,31 @@ +The Sony CDU-924 was the first drive that has no hardware support +for CDROM XA2 mode 1. If you want to create a multi session disk, +you need to switch back to -data (plain CD-ROM) + +If you have a Sony drive that gives you problems with multi session disks, +please always check the following: + + For some Sony drives you may need to call wodim -multi -data + if you like to create multi-session CD's. + + Some Sony drives do not allow to write XA2 tracks with + hardware support of the drive. + +There is currently a bug in the Sony code (for _old_ non MMC drives) +of wodim that does not allow you to have different track types +in one session. + +All Sony drives that have CDUxxx type names are _old_ non MMC drives. + Here I expect that no XA support is in the firmware. + +All Sony drives that have CRXxxx type names are MMC compliant. + These drives should support XA-mode2-form1 as it is mandatory with MMC. + +NOTE: many HP CD-writers are nased on Sony OEM drives. + + +NOTE: As for 18.5.2001, a fix was introduced that prevented wodim + to do multi session with new MMC compliant Sony drives. + +--- +Eduard Bloch, based on documentation from Joerg Schilling, cdrtools package 2.01.01a08 diff --git a/doc/READMEs/README.suidroot b/doc/READMEs/README.suidroot new file mode 100644 index 0000000..b1198d6 --- /dev/null +++ b/doc/READMEs/README.suidroot @@ -0,0 +1,29 @@ + +This is an example of how to install wodim and other cdrkit applications to get +the root permissions in a safer way. + +Usually it is not a good idea to run the applications as root or to +give users the means to run wodim as root. This gives them an easy way +to fetch sensitive data by writing it to the disk, or pass arbitrary +SCSI commands, e.g. formatting a SCSI disk. + +This also applies to root-mode wrappers like sudo, they should be used with +the most possible care. + +The alternative way is installing wodim as suid-root application. In this +mode, wodim checks permission of the device access by comparing the ownership +of the device node user/group attributes for the real UID/GID of the calling +user. + +To give all user access to use wodim, enter: + + chown root /usr/local/bin/wodim + chmod 4711 /usr/local/bin/wodim + +To give a restricted group of users access to wodim, add a group +"cdburners" to your system and add the trusted users to this group. +Then enter: + + chown root:cdburners /usr/local/bin/wodim + chmod 4710 /usr/local/bin/wodim + diff --git a/doc/READMEs/README.verify b/doc/READMEs/README.verify new file mode 100644 index 0000000..28227b7 --- /dev/null +++ b/doc/READMEs/README.verify @@ -0,0 +1,75 @@ +Mini-Howto for verifying a selfmade CD + +1) verifying the data layer + + To verify if all data on the disk can be read, + use SCSI verify. This can be done with the + sformat utility. + + use: sformat -verify [target] [lun] [scsibus] + + If the CD-R device is connected to target 2 on SCSI bus 0 + sformat -verify 2 0 + + sformat can be found on ftp://ftp.berlios.de/pub/sformat + + NOTE: Not all CD-ROm drives support verifying + NOTE: All TAO tracks end in 2 unreadable run-out sectors + +2) verifying the filesystem layer + + A quick check is to mount the CD and to use star to read + all files on the filesystem. + + mount -r /dev/cdrom /cdrom (modify for your OS) + cd /cdrom + star -cPM . >/dev/null + + If no errors can be found, all files are readable. + + star can be found on ftp://ftp.berlios.de/pub/star + + + You also may want to compare the filesystem on the CD + with the original data. This can be done with star too. + + + (cd /master_for_cd; star -cPM .)|(cd /cdrom; star -diff -v) + +2a) verifying the iso image before creating the CD + + You may check the filesystem image by mounting it with my + "fbk" on Solaris or the loopback driver on Linux. + + On Linux type: + mount isoimage.raw -r -t iso9660 -o loop /mnt + + On SunOS type: + mount -r -F fbk -o type=hsfs /dev/fbk0:isoimage.raw /mnt + +For Solaris 8 and later you may also use the Sun lofi driver (see README.sun-lofi) + + The check the filesystem with: + + (cd /master_for_cd; star -cPM .)|(cd /mnt; star -diff -v) + + +Solaris has a bug with hardlinks. It generates different inode numbers +for the hardlinks to a file. This makes it impossible for star to +check hard links. Use + +(cd /master_for_cd; star -cPM .)|(cd /cdrom; star -diff -v diffopts=!hardlink) + +in this case. + +NOTE: Some operating systems have a read ahead bug that causes I/O errors for +the last file(s) on a CD. This seems at least to be true for all Linux versions +and for Solaris 7 FCS. For Solaris 7 there is a patch (107465-02) that you should +install. This I/O error problem does not occur with DAO disks and with TAO disks +that have been written with wodim -pad. + +Joerg Schilling + +Source: README.verify from cdrtools package +Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch + @@ -0,0 +1,26 @@ +Why cdrkit? Why wodim? Why genisoimage? Because: + + - it won't tell you that you have no /dev/pg* device file thing foo, that you + have never seen and you will never need + + - it won't require to be executed as root, fail with obscure messages without + such permissions + + - it won't force you to wait 3 seconds every time you want to start, no matter + what you specify as gracetime= + + - it won't kill another burning process when you do -scanbus in another shell + + - it will let you specify your device directly in the way you know it, rather + than forcing some weird TARGET,BUS,LUN syntax with weird numbers + + - it will not wreak random havoc if you used spaces and not tabs in the config file + + - genisoimage won't stop accepting the well known option -L in the near future + + - genisoimage will stop on 2.1GiB large files rather than just "forgetting" + them and let you burn crap + + - users are respected and not used as pinballs between us and the OS kernel + developers + diff --git a/doc/genisoimage/README b/doc/genisoimage/README new file mode 100644 index 0000000..708bae5 --- /dev/null +++ b/doc/genisoimage/README @@ -0,0 +1,26 @@ +Cdrkit carries a fork of the mkisofs program called genisoimage. + +The acompanying documentation consists of the manual page genisoimage.8 and +README files found in the following locations (shell globing used): + +doc/: + +README.multi: documentation and examples for creating + multi-session CDs and DVDs + +README.cdplus: documentation and examples for creating + CD-plus (aka CD-extra) disks + +doc/genisoimage: + +README.releasenotes: release notes for old mkisofs releases + +README.*boot: documentation for various boot loader related + extensions for different architectures + +README.hfs*: hints and usage for HFS related features + +README.*: additional docs for special features + +Eduard Bloch -- Mon, 11 Sep 2006 23:05:29 +0200 + diff --git a/doc/genisoimage/README.alphaboot b/doc/genisoimage/README.alphaboot new file mode 100644 index 0000000..4bd10e1 --- /dev/null +++ b/doc/genisoimage/README.alphaboot @@ -0,0 +1,28 @@ +# README.alphaboot Steve McIntyre <steve@einval.com> 2004/07/19 + +The alpha boot support allows you to create a bootable CD which will +work with DEC/Compaq/HP Alpha machines, for example bootable +installation media. + +The method used for this is the same as in aboot, the bootloader for +Linux on Alpha, and works with SRM firmware. See the SRM Firmware +HOWTO at http://www.alphalinux.org/faq/SRM-HOWTO/ for more details +about SRM. + +In common with many Unix systems, the SRM code reads the first +512-byte "sector" off a disk and parses information in that +sector. The information in question is the location (start "sector") +and length of the first stage boot loader. On a Linux system, this +file will normally be called bootlx. + +SRM will load and execute the first stage boot loader, and from that +point the system should be able to find the normal OS kernel and start +up fully. + +To use the Alpha boot support code in genisoimage, simply specify the +location of the first stage boot loader (relative to the CD root) +using the -alpha-boot command line switch: + +genisoimage ... -alpha-boot boot/bootlx -o alpha.iso files + + diff --git a/doc/genisoimage/README.compression b/doc/genisoimage/README.compression new file mode 100644 index 0000000..4c8d425 --- /dev/null +++ b/doc/genisoimage/README.compression @@ -0,0 +1,17 @@ +Transparent decompression (-z option) is available on Linux kernels +using kernel version 2.4.14 or 2.4.9-ac14 or later. + +You also need the zisofs-tools package, containing the mkzftree +utility, to create the compressed files; this package is available at: + +ftp://ftp.kernel.org/pub/linux/utils/fs/zisofs/ + +The mkzftree utility can also be used to read compressed CD-ROMs on +systems which do not support transparent decompression. + +The use of a separate utility allows compression to be controlled on a +per-file basis. A file which is not compressed can be read on any +system. + +Transparent decompression is implemented as an extension to Rock +Ridge, so Rock Ridge needs to be enabled (-R or -r options.) diff --git a/doc/genisoimage/README.eltorito b/doc/genisoimage/README.eltorito new file mode 100644 index 0000000..5c94cdc --- /dev/null +++ b/doc/genisoimage/README.eltorito @@ -0,0 +1,101 @@ + +What is El Torito? +------------------ +Simply put, El Torito is a specification that says how a cdrom should +be formatted such that you can directly boot from it. + +The "El Torito" spec says that ANY cdrom drive should work (scsi/eide) +as long as the BIOS supports El Torito. So far this has only been +tested with EIDE drives because none of the scsi controllers that has +been tested so far appears to support El Torito. The motherboard +definately has to support El Torito. The ones that do let you choose +booting from HD, Floppy, Network or CDROM. + +How To Make Bootable CDs +------------------------ + +For the x86 platform, many BIOS's have begun to support bootable CDs. +The standard my patches for genisoimage is based on is called "El Torito". + +The "El Torito" standard works by making the CD drive appear, through BIOS +calls, to be a normal floppy drive. This way you simply put an floppy +size image (exactly 1440k for a 1.44 meg floppy) somewhere in the +iso fs. In the headers of the iso fs you place a pointer to this image. +The BIOS will then grab this image from the CD and for all purposes it +acts as if it were booting from the floppy drive. This allows a working +LILO boot disk, for example, to simply be used as is. + +It is simple then to make a bootable CD. First create a file, say "boot.img" +which is an exact image of the boot floppu currently in use. There is +at least one HOWTO on making bootable floppies. If you have a bootable +floppy handy, you can make a boot image with the command + +dd if=/dev/fd0 of=boot.img bs=10k count=144 + +assuming the floppy is in the A: drive. + +Place this image somewhere in the hierarchy which will be the source +for the iso9660 filesystem. It is a good idea to put all boot related +files in their own directory ("boot/" under the root of the iso9660 fs, +for example), but this is not necessary. + +One caveat - Your boot floppy MUST load any initial ramdisk via LILO, +not the kernel ramdisk driver! This is because once the linux kernel +starts up, the BIOS emulation of the CD as a floppy disk is circumvented +and will fail miserably. LILO will load the initial ramdisk using BIOS +disk calls, so the emulation works as designed. + +The "El Torito" specification requires a "boot catalog" to be created as +ll. +This is a 2048 byte file which is of no interest except it is required. +My patches to genisoimage will cause it to automatically create the +boot catalog. You must specify where the boot catalog will go in the +iso9660 filesystem. Usually it is a good idea to put it the same place +as the boot image, and a name like "boot.catalog" seems appropriate. + + +So we have our boot image in the file "boot.image", and we are going to +put it in the directory "boot/" under the root of the iso9660 filesystem. +We will have the boot catalog go in the same directory with the name +"boot.catalog". The command to create the iso9660 fs in the file +bootcd.iso is then + +genisoimage -b boot/boot.img -c boot/boot.catalog -o bootcd.iso . + +The -b option specifies the boot image to be used (note the path is +relative to the root of the iso9660 disc), and the -c option is +for the boot catalog file. + +Now burn the CD and its ready to boot! + +CAVEATS +------- + +I don't think this will work with multisession CDs. + +If your bootable floppy image needs to access the boot floppy, it has +to do so through BIOS calls. This is because if your O/S tries to talk to +the floppy directly it will bypass the "floppy emulation" the El Torito spec +creates through BIOS. For example, under Linux it is possible to +have an initial RAM disk loaded when the kernel starts up. If you let the +kernel try to read in the initial RAM disk from floppy, it will fail +miserably because Linux is not using BIOS calls to access the floppy drive. +Instead of seeing the floppy image on the CD, Linux will be looking at +the actually floppy drive. + +The solution is to have the initial boot loader, called LILO, load your +initial RAM disk for you. LILO uses BIOS calls entirely for these +operations, so it can grab it from the emulated floppy image. + +I don't think making a CD bootable renders it unreadable by non-El Torito +machines. The El Torito spec uses parts of the iso9660 filesystem which +were reserved for future use, so no existing code should care what it does. + +Genisoimage currently stores identification records in the iso9660 filesystem +saying that the system is a x86 system. The El Torito spec also allows +one to write PowerPC or Mac id's instead. If you look at the code in write.c +you could figure out how to change what is written. + +/* @(#)README.eltorito 1.2 00/03/18 eric */ +/* Edited for name change by Eduard Bloch, mkisofs -> genisoimage */ + diff --git a/doc/genisoimage/README.graft_dirs b/doc/genisoimage/README.graft_dirs new file mode 100644 index 0000000..da05e29 --- /dev/null +++ b/doc/genisoimage/README.graft_dirs @@ -0,0 +1,151 @@ +This is from "Eduardo M. A. M. Mendes" <mendes@mgconecta.com.br> + +Creating multi-session CD's with dir=/ feature Micro Howto + +This mini-howto was written as guide to help me to create multi-session CD's +with the possibility of determining the location of files. I hope +that this guide helps you too. + +In order to use wodim it is first necessary to define to which scsi bus +the cd-writer is connected. In my case the setup is dev=0,3,0. It is also +interesting to have a separate directory in which all image files can +be dumped: /home/cdsource is the directory I chose for dumping the images. + +The best way to understand how to create multi-session cds is to read +README.multi. Most of what is going to be said here is based on that +README file and on the help of several wodim users. + +This Micro Howto is divided into two parts as follows: + +Example a) A dir/=/dir1/dir2 example + +Example b) A dir1/dir2/=/dir3/dir4 and dir1/dir2a=/dir5/dir6 example + + +We are now ready to start. + +Example a) An dir/=/dir1/dir2 example + +A simple example will demonstrate that we can create multi-session cds +with the dir_feature of the type dir/=/dir1/dir2 + +Objetive: Saving root directories of Redhat 6.1 and Col 2.3 on a single CD. + +Observation: Redhat installation is mounted on COL 2.3 at /mnt/redhat + +First image - RedHat 6.1 - /mnt/redhat/root + +genisoimage -D -l -r -f -m core -L -o image1.raw redhat/=/mnt/redhat/root + +This will create a redhat directory on the cd. The option -D should be +used with care. The other options used in the above command are just +to demonstrate the use of genisoimage. Please +refer to man genisoimage if you want to know more. + + +To see if the image is created as expected, we need to mount image1.raw using +the option -o loop (Linux only! for information on Solaris read README.verify) +as follows: + +mount -t iso9660 image1.raw /mnt/image -o loop + +To see the contents type: + +ls -l /mnt/image/redhat + +Does it look ok? Great! Unmount /mnt/image. Now the burning process itself: + +wodim -v -dev=0,3,0 -multi -eject image1.raw + +To check the burned image we need to mount the cd; something like + +mount -t iso9660 /dev/scd0 /mnt/cdroms + +/mnt/cdroms is the device file for the cdrom I use. + + +Second image - Caldera 2.3 - /root + + +To create the second image on our cd, we need get information +about sectors related to the first track. To do that, issue the command + +wodim -v -dev=0,3,0 -msinfo + +wodim returns the following number + +0,135563 + +This number is the format XX,YY discussed on README.multi. XX would be used +for testing the images as well as burning the new track. + +genisoimage -D -l -r -f -m core -L -C 0,135563 -M /dev/scd0 -o image2.raw caldera/=/root + +Now we need to check of image2.raw is ok. The following command creates exactly what we +need. Plese note that -C option. Only the first number changes in this case. The second one +is always zero. In our case the first number is zero due to wodim -msinfo. When +more tracks are added to the cd this number will change. + +genisoimage -D -l -r -f -m core -L -C 0,0 -M /dev/scd0 -o image2_test.raw caldera/=/root + +mount -t iso9660 image2_test.raw /mnt/image -o loop + +ls -l /mnt/image shows that there are two directories: redhat and caldera, just the way +we wanted. + +Now let us burn image2.raw (not image2_test.raw) + +wodim -v -dev=0,3,0 -multi -eject image2.raw + +We can mount the CD again to see that the two directories are there. We can carry on +doing this until we decide to close the CD. If this is the case, don't use -multi when +burning the last session. + +b) A dir1/dir2/=/dir3/dir4 and dir1/dir2a=/dir5/dir6 example + +The above example seems a bit silly, one could argue. Why did I create a single directory +called root and within two sub-directories: redhat and caldera? + +Using the procedure described above we would do as follows: + +genisoimage -D -l -r -f -m core -L -o image1.raw etc/redhat/=/mnt/redhat/etc + +wodim -v -dev=0,3,0 -multi -eject image1.raw + +To check the burned image we need to mount the cd; something like + +mount -t iso9660 /dev/scd0 /mnt/cdroms + +wodim -v -dev0,3,0 -msinfo + +wodim returns the following number + +0,14391 + +The second image can be created using + +genisoimage -l -r -f -m core -L -C 0,14391 -M /dev/scd0 -o image2.raw etc/caldera/=/etc + +Creating a test image2 + +genisoimage -l -r -f -m core -L -C 0,0 -M /dev/scd0 -o image2_test.raw etc/caldera/=/etc + +mount -t iso9660 image2_test.raw /mnt/image1 -o loop + +It works!! That is great!!! + +Now the burning process itself. + +wodim -v -dev=0,3,0 -multi -eject image2.raw + +and we're done !!!! + +To add more tracks just do as indicated above. + +Good luxk!!! + +Eduardo Mendes - 11/23/99 + +Source: README.graft_dirs from cdrtools package +Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch + diff --git a/doc/genisoimage/README.hfs_boot b/doc/genisoimage/README.hfs_boot new file mode 100644 index 0000000..378bb95 --- /dev/null +++ b/doc/genisoimage/README.hfs_boot @@ -0,0 +1,76 @@ +Making HFS bootable CDs + +******* +The HFS boot code in genisoimage/mkhybrid is now very out of date ... +it does not support booting from IDE CDROMS, and probably won't work on +"newer" Macs. + +The HFS boot code will be updated at some point in the future +******* + +It *may* be possible to make the hybrid CD bootable on a Mac. As I do not +have easy access to a CD-R (nor a Mac) at the moment, I have not actually +created and written a bootable hybrid to CD - however, I *think* it will work! + +A bootable HFS CD requires an Apple CD-ROM (or compatible) driver, a bootable +HFS partition and the necessary System, Finder, etc. files. + +A driver can be obtained from any other Mac bootable CD-ROM using the +"apple_driver" utility (to make, type "make apple_driver"). This file can +then be used with the -boot-hfs-file option. See below for usage. + +The HFS partition (i.e. the hybrid disk in our case) must contain a +suitable System Folder, again from another CD-ROM or disk. + +For a partition to be bootable, it must have it's "boot block" set. The boot +block is in the first two blocks of a partition. For a non-bootable partition +the boot block is full of zeros. Normally, when a System file is copied to +partition on a Mac disk, the boot block is filled with a number of required +settings - unfortunately I don't know the full spec for the boot block ... + +I'm guessing that this will work OK ... + +Therefore, the utility "apple_driver" also extracts the boot block from the +first HFS partition it finds on the given CD-ROM and this is used for the +HFS partition created by mkhybrid. + +To extract the driver and boot block: + +apple_driver CDROM_device > HFS_driver_file + +where CDROM_device is the device name used by the CD-ROM (e.g. /dev/cdrom) + +The format of the HFS driver file is: + + HFS CD Label Block 512 bytes + Driver Partition Map (for 2048 byte blocks) 512 bytes + Driver Partition Map (for 512 byte blocks) 512 bytes + Empty 512 bytes + Driver Partition N x 2048 bytes + HFS Partition Boot Block 1024 bytes + +The Perl script "hdisk.pl" can be used to give a listing of what's on +a Mac CD. hdisk.pl is part of hfsutils. + +A hybrid CD is made using the option "-boot-hfs-file" e.g. + +mkhybrid -boot-hfs-file HFS_driver_file -o hfs.raw src_files/ + +The -boot-hfs-file implies the -hfs option. + +PLEASE NOTE: + +By using a driver from an Apple CD and copying Apple software to your CD, +you become liable to obey Apple Computer, Inc. Software License Agreements. + +The driver code (both extracting the driver and creating partitions etc. +is based on code from "mkisofs 1.05 PLUS" by Andy Polyakov +<appro@fy.chalmers.se> (see http://fy.chalmers.se/~appro/mkisofs_plus.html) + + +Any comments, bug reports/fixes to the address below + +James Pearson (j.pearson@ge.ucl.ac.uk) +19-Jul-2000 + +Edited for program name change by Eduard Bloch, 2006 diff --git a/doc/genisoimage/README.hfs_magic b/doc/genisoimage/README.hfs_magic new file mode 100644 index 0000000..814d59e --- /dev/null +++ b/doc/genisoimage/README.hfs_magic @@ -0,0 +1,69 @@ + +Find file types by using a modified "magic" file + +Based on file v3.22 by Ian F. Darwin (see libfile/LEGAL.NOTICE and +libfile/README.dist - File v3.22 can be found at many archive sites) + +For each entry in the magic file, the "message" for the initial offset MUST +be 4 characters for the CREATOR and 4 characters for the TYPE - white space is +optional between them. Any other characters on this line are ignored. +Continuation lines (starting with a '>') are also ignored i.e. only the initial +offset lines are used. + +e.g magic entry for a GIF file: + +# off type test message +# +# GIF image +0 string GIF8 8BIM GIFf +>4 string 7a \b, version 8%s, +>4 string 9a \b, version 8%s, +>6 leshort >0 %hd x +>8 leshort >0 %hd, +#>10 byte &0x80 color mapped, +#>10 byte&0x07 =0x00 2 colors +#>10 byte&0x07 =0x01 4 colors +#>10 byte&0x07 =0x02 8 colors +#>10 byte&0x07 =0x03 16 colors +#>10 byte&0x07 =0x04 32 colors +#>10 byte&0x07 =0x05 64 colors +#>10 byte&0x07 =0x06 128 colors +#>10 byte&0x07 =0x07 256 colors + +Just the "8BIM" "GIFf" will be used whatever the type of GIF file it is. +The continuation lines are used by the "file" command, but ignored by +mkhybrid. They could be left out completely. + +The complete format of the magic file is given in the magic man page (magic.5). + +See the file "magic" for other examples + +Use with the -magic magic_file option, where magic_file is a file +described above. + +The magic file can be used with the mapping file (option -map) - the order +these options appear on the command line is important. mkhybrid will try to +detect if the file is one of the Unix/Mac files (e.g. a CAP or Netatalk +file) first. If that fails, it will then use the magic and/or mapping +file e.g: + +mkhybrid -o output.raw -map mapping -magic magic src_dir + +The above will check filename extensions first, if that fails to set the +CREATOR/TYPE, the magic file will be used. To check the magic file +before the filename extensions, use: + +mkhybrid -o output.raw -magic magic -map mapping src_dir + + +Using just a magic file - filename extensions will not be checked e.g: + +mkhybrid -o output.raw -magic magic src_dir + +For the magic method to work, each file must be opened and read twice +(once to find it's CREATOR/TYPE, and a second time to actually copy the +file to the CD image). Therefore the -magic option may significantly +increase processing time. + +If a file's CREATOR/TYPE is not set via the magic and mapping matches, +then the file is given the default CREATOR/TYPE. diff --git a/doc/genisoimage/README.hide b/doc/genisoimage/README.hide new file mode 100644 index 0000000..ae8521b --- /dev/null +++ b/doc/genisoimage/README.hide @@ -0,0 +1,208 @@ +Hiding files on a CD +===================== + +This document attempts to show how to hide files from being seen by an +operating system accessing a CD as an ISO9660/Rock Ridge, Joliet or HFS +CD. It also highlights some of the limitations ... + +Note: this document is about the various -hide options - not be confused with +the -hidden options. + +The -hidden options set the 'EXISTENCE' bit in the directory entry which +means the file or directory will be invisible - unless some special option +is used to mount or view the CD - Linux has the 'unhide' mount option to +make these files visible. i.e. the directory entry exists on the CD. + +With hindsight, to avoid confusion with the -hidden option, it would have +been better to chose an option name like '-omit' instead of '-hide'... + +The various -hide options actually exclude the relevant directory entry +from the directory tree. Therefore, it is not possible to access a file +or directory that has be hidden with the -hide option when the ISO9600/Rock +Ridge directory is mounted - because the directory entry does not exist on the +CD (but the file data does). You would probably be able to access this file +or directory when mounted as a Joliet or HFS CD (depending on other options +used). Similarly, a directory entry hidden with the -hide-joliet option +will not be accessible when mounted as an Joliet CD. Similarly for -hide-hfs +etc. + +If you don't want a file or directory to appear on the CD at all, then use the +-exclude options, not the -hide options (genisoimage completely ignores any +file/directory excluded with the -exclude options). + + +Using the hide options +====================== + +There are 6 hide options: + +-hide Hide a file/directory from the ISO9660/Rock Ridge directory +-hide-list As above, but read file names from a file +-hide-joliet Hide a file/directory from the Joliet directory +-hide-joliet-list As above, but read file names from a file +-hide-hfs Hide a file/directory from the HFS directory +-hide-hfs-list As above, but read file names from a file + +You can use the -hide, -hide-joliet and/or -hide-hfs options as many times +as you like on the command line, but if you have many files to hide, then +it may be better to put your file names in a file (one per line) and use +the corresponding 'list' option. You can also use the three -hide-list options +as many times as you want. + +The arguments to the -hide options are either the 'basename' or the 'whole +path name' of a file. That is, if you use the option: + +% genisoimage -hide ABC [-other-options] CD_directory + +then any file with the name ABC will be hidden. If you want to be more +specific, then use the whole name - as seen by genisoimage e.g.: + +% genisoimage -hide CD_directory/XYZ/ABC [-other-options] CD_directory + +will hide just the file 'CD_directory/XYZ/ABC' - not any other file called +'ABC' that might exist under 'CD_directory'. However, if your command line +is like: + +% genisoimage -hide CD_directory/XYZ/ABC [-other-options] ./CD_directory + +Then the file 'CD_directory/XYZ/ABC' will not be hidden because as far as +genisoimage is concerned. Its whole path is actually './CD_directory/XYZ/ABC'. + +You can use wild cards in the -hide arguments. + +If the file name to be hidden is a directory, then the directory and all +its contents are hidden. + +The main use of the hide options is on a multi platform (hybrid CD) to hide +various files/directories that are operating system specific from been seen +on the CD when mounted on another OS. i.e. You may want to hide Macintosh +executables from being seen when the CD is mounted as a Joliet CD on a PC etc. + +For example, say we want to create a ISO9660/Rock Ridge, Joliet, HFS hybrid +CD from files/directories in the directory called 'cd_dir' - which are: + +MAC/ +MAC/app +MAC/data/ +MAC/data/file1 +PC/ +PC/app +PC/data/ +PC/data/file1 +UNIX/ +UNIX/app +UNIX/data +UNIX/data/file1 +COMMON/ +COMMON/some_files + +We could use the command line: + +% genisoimage -r -J -hfs -hide MAC -hide PC -hide-joliet MAC \ + -hide-joliet UNIX -hide-hfs PC -hide-hfs UNIX -o cd.iso cd_dir + +This will give a CD that when mounted as a Rock Ridge CD, you will only +see the directories UNIX and COMMON, as a Joliet CD the directories +PC and COMMON, and as an HFS CD the directories MAC and COMMON. + +If you also had the three files in the current directory called README.hfs, +README.joliet and README.unix - but you wanted to have each of these +files appear as just 'README' when mounted, then you could use the above +command line with the following: + +% genisoimage -r -J -hfs -graft-points -hide MAC -hide PC -hide-joliet MAC \ + -hide-joliet UNIX -hide-hfs PC -hide-hfs UNIX \ + -hide README.hfs -hide README.joliet -hide-joliet README.hfs \ + -hide-joliet README.uni -hide-hfs README.joliet -hide-hfs README.unix \ + README=README.hfs README=README.joliet README=README.unix \ + -o cd.iso cd_dir + +Note: we've used the -graft-points option as we're using the '=' syntax +to insert the files called README.hfs, README.joliet and README.unix as +'README' + +The resulting CD when mounted as a Rock Ridge CD, will have the directories +UNIX and COMMON - with the file called README - which was originally +called README.unix. + +However, in most circumstances, it would be better to have the contents +of each of the OS specific directories (plus the contents of the COMMON +directory) to appear at the top level of the CD. i.e. when the CD is mounted +(as ISO9660/Rock Ridge, Joliet or HFS) it has the contents: + +README +app +data/file1 +some_files + +Unfortunately, this is not as straight forward as it may seem - i.e. doing +the following may seem OK, but it won't work - for reasons I'll explain +later: + +It gets a bit messy using the -graft-points syntax above, so we'll assume +each of the MAC, UNIX and PC directories contain the correct README, We'll +also change to the 'cd_dir' directory and use the command: + +genisoimage -r -J -hfs -hide MAC -hide PC -hide-joliet MAC \ + -hide-joliet UNIX -hide-hfs PC -hide-hfs UNIX \ + -o cd.iso MAC PC UNIX COMMON + +You will get errors like: + +genisoimage: Error: UNIX/README and MAC/README have the same Rock Ridge name +... +genisoimage: Unable to sort directory + +This is because you can not hide "pathspecs" that are directories ("pathspecs" +are file names given on the command line, or in a path-list file). This a +"feature" of genisoimage. In this case nothing is actually hidden at all. + +So you might think that the following may work: + +genisoimage -r -J -hfs -hide "MAC/*" -hide "PC/*" -hide-joliet "MAC/*" \ + -hide-joliet "UNIX/*" -hide-hfs "PC/*" -hide-hfs "UNIX/*" \ + -o cd.iso MAC PC UNIX COMMON + +which may appear to work - but when the CD is mounted as an ISO9660/Rock Ridge +or Joliet CD, then the directory "data" is missing. + +Again this is a feature of genisoimage - the directories PC/data and UNIX/data +are mapped by genisoimage to the same output directory called "/data" - the +various "hide" flags are stored with this directory info - in this case as +the output directory "/data" is first hidden from the ISO9660/Rock Ridge and +then the Joliet directory, the net result is that "/data" gets hidden from +both directories ... the way genisoimage hides HFS directories is slightly +different, so in this case the directory "data" exists on the HFS volume +and contains the correct contents. + +However, it is possible to obtain the required result, but we have to be +careful about hiding multiple input directories that map to a single output +directory. + +To do this we have to hide just the files in these directories (or more +accurately, all the non-directories). This is best done by using lists of +files to hide for example: + +find PC -type f -print > pc.list +find UNIX -type f -print > unix.list +find MAC -type f -print > mac.list + +genisoimage -r -J -hfs -hide-list pc.list -hide-list mac.list \ + -hide-joliet-list unix.list -hide-joliet-list mac.list \ + -hide-hfs-list pc.list -hide-hfs-list unix.list \ + -o cd.iso MAC PC UNIX COMMON + +i.e. instead of trying to hide a directory and letting genisoimage hide its +contents, we explicitly hide all the files in the directory, but not the +directory and any of its sub-directories. + +This will work for the above input files, but if your directory trees contain +symbolic links and/or directories that will not get merged, then the hide lists +will have to be tailored to get the required result. + + +James Pearson 22-Nov-2001 + +Any comments/problems to j.pearson@ge.ucl.ac.uk + +Modified for cdrkit/genisoimage by Eduard Bloch, Wed, 27 Dec 2006 diff --git a/doc/genisoimage/README.hppaboot b/doc/genisoimage/README.hppaboot new file mode 100644 index 0000000..a7a7549 --- /dev/null +++ b/doc/genisoimage/README.hppaboot @@ -0,0 +1,38 @@ +# README.hppaboot Steve McIntyre <steve@einval.com> 2004/07/19 + +The hppa boot support allows you to create a bootable CD which will +work with HP PA/RISC machines, for example bootable installation +media. + +The method used for this is the same as in palo, the bootloader for +Linux on hppa. See the palo README for more details about supported +hardware etc. + +The HPPA firmware reads the first 2048-byte sector off a disk and +parses information in that sector. The information in question is the +location (start sector) and length of various files: + + * a 32-bit kernel image + * a 64-bit kernel image + * first stage bootloader (iplboot) + * (optional) ramdisk + +and also the system command line to use, e.g. + + "5/vmlinux HOME=/ TERM=linux console=tty" + +The firmware will load and execute the first stage boot loader, and +that should be able to find the (32- or 64-bit) kernel and boot +normally. Whether you need a 32- or 64-bit kernel depends on your +hardware; some will even support both. + +To use the hppa boot support code in genisoimage, simply specify the boot +command line and file locations (relative to the CD root) as follows: + +genisoimage ... -hppa-cmdline <cmdline, parts separated by spaces or commas> \ + -hppa-kernel-32 <32-bit kernel> \ + -hppa-kernel-64 <64-bit kernel> \ + -hppa-bootloader <bootloader> \ + -hppa-ramdisk <ramdisk file> \ + -o hppa.iso hppa-files + diff --git a/doc/genisoimage/README.joliet b/doc/genisoimage/README.joliet new file mode 100644 index 0000000..ab9bf5d --- /dev/null +++ b/doc/genisoimage/README.joliet @@ -0,0 +1,53 @@ +Some thoughts on Joliet - why it is a dumb idea to have a CD +with Joliet enhancements but without Rock Ridge. +It also helps you to understand why it it not possible to append +a new session to a multi-session Joliet CD when Rock Ridge is +missing. + +- Joliet is not an accepted independant international standard + like ISO-9660 or Rock Ridge (IEEE-P1282). + Joliet has been created in 1995 - Rock Ridge in 1990. + Rock Ridge became a IEEE standard around 1992. + +Joliet is an unjustified addition to ISO-9660. + +- The Joliet tree has no relation to the + ISO-9660 tree. Files from the ISO-9660 tree and from the + Joliet tree only share content. In general, it is not + possible to find the ISO-9660 name from a Joliet name + and vice versa if you check both trees on a CD. + + Rock Ridge extensions are located at the end of each + ISO-9660 directory record. This makes the Rock Ridge + tree closely coupled to the ISO-9660 tree. + +- Joliet does not allow all characters too, so the + Joliet filenames are not identical to the filenames + on disk. + + As the ISO-9660 tree is the standard reference tree + on a CD and the ISO-9660 filenames don't allow all + characters and there is a length limitation, the + ISO-9660 names cannot be mapped to the filenames on the + OS reference tree on disk for doing multi-session. + + Due to different limitations, the short ISO-9660 name + is in most cases not equal to the Joliet name or the + Rock Ridge name. + +- Joliet has a filename length limitation of 64 chars (independent + from the character coding and type e.g. European vs. Japanese) + This is annoying as modern filesystems all allow 255 chars + per path name component. + + Joliet uses UTF-16 coding while Rock Ridge uses ISO-8859 or + UTF-16 based chars and allows 255 octets. Using UTF-8, + Rock Ridge allows 85 Japanese characers or 255 US-ASCII chars. + +Other than slightly longer filenames, Joliet offers no new properties +over plain ISO 9660. Rock Ridge is an open extendable standard and +there is no filesystem property on Win32 that could not be implemented +using Rock Ridge. + +Except Linux and FreeBSD, there is no POSIX-like like OS that supports +Joliet. Never create Joliet only CD's for that reason. diff --git a/doc/genisoimage/README.macosx b/doc/genisoimage/README.macosx new file mode 100644 index 0000000..e082bfc --- /dev/null +++ b/doc/genisoimage/README.macosx @@ -0,0 +1,43 @@ +Notes on using the --osx-hfs option when running genisoimage on MacOS X + +genisoimage does not use any of the MacOS APIs to access files - it uses +standard (POSIX style) library calls. Under normal circumstances, all +genisoimage will 'see' is the data fork of files on an HFS (or HFS+) file system. + +However, Apple have provided a way for POSIX style applications to +access the resource fork - using the following syntax: + +If a file exists on an HFS volume with the name 'foo', then the resource fork +can be accessed using the file name 'foo/rsrc' or foo/..namedfork/rsrc' +(the data fork can also be accessed using 'foo/..namedfork/data'). + +These 'pseudo' file names are not normally visible in a directory - unless +you access them directly (e.g. 'ls -l */rsrc etc). + +To access the finder information, Apple have provided an undocumented library +function called getattrlist(). Fortunately there are example of its usage +in the Darwin (MacOS kernel) source code. + + +Although MacOS X can use HFS(+) as its file system, Apple have decided to +move away from using HFS to store finder info and resource data - for +example, the TYPE of a file may be based on its file name extension and the +TYPE field in the finder info empty. + +genisoimage knows nothing about these file name extension mappings, so if the +--osx-hfs option is used and the source files are on MacOS X HFS(+) volumes, +by the fact that they are HFS files, they will get identified as 'MacOS X HFS' +and the resulting file on the output CD image will have empty TYPE and CREATOR +fields. + +Therefore, if the input finderinfo is blank and the the resource fork is +empty, genisoimage will assume the input file is not a 'real' HFS file - which +means the TYPE and CREATOR may then be set using the file's magic number or +genisoimage' file name extension mapping. + +The only real benefit of using the --osx-hfs option is when the source files +are on an OS9 or earlier HFS or HFS+ volume e.g. an existing HFS CD. + +James Pearson 3-Jul-2002 +Edited for program name change by Eduard Bloch, 2006 + diff --git a/doc/genisoimage/README.mipsboot b/doc/genisoimage/README.mipsboot new file mode 100644 index 0000000..1e5227a --- /dev/null +++ b/doc/genisoimage/README.mipsboot @@ -0,0 +1,26 @@ +# README.mipsboot Steve McIntyre <steve@einval.com> 2004/07/19 + +The mips/SGI boot support allows you to create a bootable CD which +will work with big-endian mips SGI machines, for example bootable +installation media. + +The method used for this is the same as in genisovh, a tool to make +CDs bootable for Linux on SGI. + +The SGI firmware reads the first 512-byte "sector" off a disk and +parses information from a volume descriptor header in that sector. The +information in question is the location (start sector) and length of +bootable kernel images; up to 15 are supported. + +The firmware will load and execute kernels listed. (I'm not sure what +it will do if more than one kernel is listed - it may display a boot +menu). + +To use the SGI boot support code in genisoimage, simply specify the kernel +file locations (relative to the CD root) as follows: + +genisoimage ... -mips-boot <kernel file #1> \ + ... + -mips-boot <kernel file #n> \ + -o mips.iso mips-files + diff --git a/doc/genisoimage/README.mipselboot b/doc/genisoimage/README.mipselboot new file mode 100644 index 0000000..af3979b --- /dev/null +++ b/doc/genisoimage/README.mipselboot @@ -0,0 +1,29 @@ +# README.mipselboot Steve McIntyre <steve@einval.com> 2004/07/19 + +The mips/DEC boot support allows you to create a bootable CD which +will work with little-endian mips DEC machines (e.g. older +DECstations), for example bootable installation media. + +The method used for this is the same as in delo, the Linux-on-mipsel +bootloader. See the delo README for more information about how to +configure the DECstation's firmware to find and boot the CDROM. + +The DEC firmware reads the first 512-byte "sector" off a disk and +parses information from that sector. The information in question is +the location (start sector) and length of the first stage boot +loader. + +(On Linux, this boot loader is in ELF format and the firmware does not +know how to deal with ELF directly, we have to parse the ELF headers +and find the raw binary data needed inside it. Pointers to the start +and length of that raw binary are what is stored in the boot sector.) + +The firmware will load and execute the first stage boot loader, and +from that point the system should be able to find the normal OS kernel +and start up fully. + +To use the DEC boot support code in genisoimage, simply specify the kernel +file location (relative to the CD root) as follows: + +genisoimage ... -mipsel-boot <kernel file> -o mipsel.iso mipsel-files + diff --git a/doc/genisoimage/README.mkhybrid b/doc/genisoimage/README.mkhybrid new file mode 100644 index 0000000..49036a1 --- /dev/null +++ b/doc/genisoimage/README.mkhybrid @@ -0,0 +1,145 @@ + +mkhybrid v1.13 has merged with mkisofs which was forked to genisoimage later + +HFS hybrid code Copyright (C) James Pearson 1997, 1998, 1999, 2000 +libhfs code Copyright (C) 1996, 1997 Robert Leslie +libfile code Copyright (c) Ian F. Darwin 1986, 1987, 1989, + 1990, 1991, 1992, 1994, 1995 +mkisofs code Copyright 1993 Yggdrasil Computing, Incorporated + +*** NEWS *** + +Macs can now read Joliet CDs - see http://www.tempel.org/joliet/ + +*** + +*** IMPORTANT *** + +The meaning of some of the HFS command line options has changed since +version 1.12b5.2. This change is to make the way genisoimage decodes the +various Apple/Unix file formats (CAP, AppleDouble, MacBinary etc.) less +confusing and more logical. To decode one or more of the Apple/Unix files, +then the corresponding "double dash" option must be given (i.e. --cap, +--double, --macbin etc.) genisoimage can search for all known Apple/Unix files +by using the -probe option. + +The options that have changed are: + +Option old meaning new meaning +====== =========== =========== + +-hfs Create an HFS hybrid CD Create an HFS hybrid CD. + and attempt to decode all Any Apple/Unix file is only + Apple/Unix files (except decoded if one or more of + MacBinary and AppleSingle) the "double dash" options are + given + +-apple Create an ISO9660 with Create an ISO9660 with + Apple extensions CD and Apple extensions CD. Any + attempt to decode all Apple/Unix file is only decoded + Apple/Unix files (except if one or more of the + MacBinary and AppleSingle) "double dash" options are given + +-no-mac-files Do not attempt to decode No longer used + any Apple/Unix file + +-probe Attempt to decode Attempt to decode all + MacBinary and AppleSingle Apple/Unix files + as well as the other + Apple/Unix files + +*** + +Most of the HFS features work fine, however, some are not fully tested. +These are marked as "Alpha" in the man page. + +See "ChangeLog.mkhybrid" for any minor changes/bug fixes + +If you are using SunOS 4.1.[34], then you need the following patches +to read CDs with associated files: + +SunOS 4.1.3: Patch 101832-05 +SunOS 4.1.3_U1: Patch 101833-02 +SunOS 4.1.4: Patch 102583-02 + + +EXAMPLES + +To create a HFS hybrid CD with the Joliet and Rock Ridge extensions of +the source directory cd_dir: + +% genisoimage -o cd.iso -r -J -hfs cd_dir + +To create a HFS hybrid CD from the source directory cd_dir that contains +Netatalk Apple/Unix files: + +% genisoimage -o cd.iso --netatalk cd_dir + +To create a HFS hybrid CD from the source directory cd_dir, giving all files +CREATOR and TYPES based on just their filename extensions listed in the file +"mapping".: + +% genisoimage -o cd.iso -map mapping cd_dir + +To create a CD with the 'Apple Extensions to ISO9660', from the source +direcories cd_dir and another_dir. Files in all the known Apple/Unix format +are decoded and any other files are given CREATOR and TYPE based on their +magic number given in the file "magic": + +% genisoimage -o cd.iso -apple -magic magic -probe cd_dir another_dir + +The following example puts different files on the CD that all have +the name README, but have different contents when seen as a +ISO9660/RockRidge, Joliet or HFS CD. + +Current directory contains: + +% ls -F +README.hfs README.joliet README.unix cd_dir/ + +The following command puts the contents of the directory "cd_dir" on the +CD along with the three README files - but only one will be seen from +each of the three filesystems: + +% genisoimage -o cd.iso -hfs -J -r \ + -hide README.hfs -hide README.joliet \ + -hide-joliet README.hfs -hide-joliet README.unix \ + -hide-hfs README.joliet -hide-hfs README.unix \ + README=README.hfs README=README.joliet README=README.unix \ + cd_dir + +i.e. the file README.hfs will be seen as README on the HFS CD and the +other two README files will be hidden. Similarly for the Joliet and +ISO9660/RockRidge CD. + +There are probably all sorts of stange results possible with +combinations of the hide options ... + + +Any comments, bug reports/fixes about the HFS parts of genisoimage to the +address below. + +Please state the version, platform and command line used when submitting +a bug report - the output from "-log-file -v" would help. + +Original author: James Pearson (j.pearson@ge.ucl.ac.uk) + +This describes the program as shipped with cdrkit, a spinoff from the +cdrtools project. However, the cdrtools developers are no longer +involved in the development of this spinoff and therefore shall not +be made responsible for any problem caused by it. Do not try to get +support for this program by contacting the original authors. + +If you have support questions, send them to + +debburn-devel@lists.alioth.debian.org + +If you have definitely found a bug, send a mail to this list or to + +submit@bugs.debian.org + +writing at least a short description into the Subject and "Package: cdrkit" + +Source: README.mkhybrid from cdrtools package +Edited for cdrkit by Christian Fromme <kaner@strace.org> and Eduard Bloch + diff --git a/doc/genisoimage/README.prep_boot b/doc/genisoimage/README.prep_boot new file mode 100644 index 0000000..f406735 --- /dev/null +++ b/doc/genisoimage/README.prep_boot @@ -0,0 +1,45 @@ +I have extended mkhybrid to create a CD that is bootable via PPCbug +on a PowerPC Reference Platform compliant machine (referred to as +PReP). + +This includes a number of IBM RS-6000 clones, along with most of +Motorola's embedded PowerPC boards, such as the MTX and MVME +boards. (The motorola boards are sometimes referred to as PowerPlus) + +To build a bootable CD, you will first need a kernel image for your +machine. Put the image somewhere in the filesystem you want +to generate and ISO9660 image from. + +The '-B' or '-prep-boot' flags are used to specify the image file +to use. The path must be relative to the root of the CD filesytem, +NOT from the current directory. + +For example: to make an image of /tmp/cd and use the image file +/tmp/cd/zImage, (with rock ridge extensions) use: + +mkhybrid -r -B zImage /tmp/cd -o cd.img + +Since there are four entries for bootable 'partitions', I have +allowed up to 4 different images to be used. This might be +usefull if one has need of different kernel images for different +machines on the same CD. + +The first image will be in the first partition entry, so if one +uses: + +mkhybrid -r -B zImage1 -B zImage2 -B zImage3 -B zImage4 /tmp/cd + +This will result in 4 bootable images. To boot off the first image +from PPCbug, use 'pboot 0 41' from the ppcbug> prompt. +(assuming the CDROM is at SCSI ID 4.. replace the 4 with the SCSI +ID of the CDROM if not.) The second image is at 'pboot 0 42', etc. + +There should not be any conflicts with any of the HFS or hybrid +functions, since the space used by the PReP partition maps is +unused by anything else. If fact, the goal is to make a CD +bootable on both Mac's and PReP machines ;) + +For any questions contact me at one of the following addresses: +troy@microux.com +troy@blacklablinux.com +hozer@drgw.net diff --git a/doc/genisoimage/README.releasenotes b/doc/genisoimage/README.releasenotes new file mode 100644 index 0000000..d4f3898 --- /dev/null +++ b/doc/genisoimage/README.releasenotes @@ -0,0 +1,154 @@ +# @(#)README 1.7 99/11/23 joerg +# 06/09/11 christian + +This describes the program as shipped with cdrkit, a spinoff from the +cdrtools project. However, the cdrtools developers are no longer +involved in the development of this spinoff and therefore shall not +be made responsible for any problem caused by it. Do not try to get +support for this program by contacting the original authors. + +Note: + + This program requires a lot of virtual memory to run since it +builds all of the directories in memory. The exact requirements +depend upon a lot of things, but for Rock Ridge discs 12Mb would not +be unreasonable. Without RockRidge and without the translation +tables, the requirements would be considerably less. + + +***************************** +Notes for version 1.12 + + Joliet support is now complete. See the -J option. + + The file scanning code is much improved - mkisofs can use multiple + sources of input files and merge them together to form the output + image. In addition, each source can be grafted at any point in the + iso9660 image. + + The image writing code has been cleaned up to make it much easier + to add custom extensions. + + The ADD_FILES feature has been removed as it didn't work well, +and it was hard to figure out. The recent rearrangements in the +file scanning code would tend to solve these issues. + +***************************** +Notes for version 1.11 + + There is a feature which can be optionally compiled into +mkisofs that allows you to merge arbitrary directory trees into the +image you are creating. You need to compile with -DADD_FILES for my +changes to take effect. Thanks to Ross Biro biro@yggdrasil.com. + +***************************** +Notes for version 1.10b1 + + Big news is that multi-session capability is very close to being + done. There is still a missing interface to cdwrite that is + used to determine the next writable address and the sector number + of the last existing session. Until we get the interface to cdwrite + done, this is a beta version. + + Bug involving DST fixed (dates are always calculated, since some + files may be DST and other ones would not be). + + Unfortunately the notes on some of the small patches got lost. + +***************************** +Notes for version 1.06 + + Jan-Piet Mens <jpm@mens.de> added support for the '-m' switch. This + allows exclusion of shell-style globs from the CDROM. + See manual mkisofs.8 for more information. + +***************************** +Notes for version 1.05 + + Added support for '-r' switch. This is very similar to -R for +Rock Ridge, but echos of the development environment are removed +(i.e. uid/gid set to 0, and permissions of the files are canonicalized). +Useful in applications where a distribution medium is being produced. + +***************************** +Notes for version 1.04 + + No notes for 1.04. + +***************************** +Notes for version 1.03 + + No notes for 1.03. + +***************************** +Notes for version 1.02. + + Minor bugfixes here and there. Support for compiled in +defaults for many of the text fields in the volume header are now +present, and there is also support for a file ".mkisofsrc" that can +also read settings for these parameters. + + A short script "Configure" was added to allow us to set up special +compile options that depend upon the system that we are running on. +This should help stamp out the sphaghetti-isms that were starting to grow +up in various places in the code. + + You should get more meaningful error messages if you run out of +memory. + +***************************** +Notes for version 1.1. + + The big news is that SUSP CE entries are now generated for +extremely long filenames and symlink names. This virtually guarantees +that there is no limit (OK, well, about 600Mb) for file name lengths. +I have tested this as well as I can, and it seems to work with linux. +This would only be used very rarely I suspect. + + Also, I believe that support for VMS is done. You must be +careful, because only Stream-LF and FIxed length record files can be +recorded. The rest are rejected with error messages. Perhaps I am +being too severe here. + + There is a bugfix in the sorting of entries on the disc - we +need to stop comparing once we reach the ';' character. + + There are four new options -z -d -D -l -V. Some of these tell +mkisofs to relax some of the iso9660 restrictions, and many systems +apparently do not really seem to mind. Use these with caution. + + Some diagnostic programs to scan disc images are in the diag +directory. These are not as portable as mkisofs, and may have some +bugs. Still they are useful because they can check for bugs that I might +have introduced as I add new features. + +***************************** +Notes for version 1.0. + + In version 1.0, the date fields in the TF fields were fixed - +previously I was storing st_ctime as the file creation time instead of +the file attribute change time. Thanks to Peter van der Veen for +pointing this out. I have one slight concern with this change, +however. The Young Minds software is definitely supplying 3 dates +(creation, modification and access), and I would strongly suspect that +they are incorrectly putting the file attribute change time in the +file creation slot. I would be curious to see how the different RRIP +filesystems treat this. Anyway, this is something to keep in the back +of your mind. + + The symlink handling was not quite correct in 0.99 - this is +now fixed. Only some systems seemed to have been affected by this bug. + + A command line option is now present to allow you to +specifically exclude certain files from the distribution. + + The case where you do not have permissions to read a directory +is now handled better by mkisofs. The directory that cannot be opened +is converted into a zero-length file, and processing continues normally. + + A few portability things have been fixed (hopefully). + + +Source: README from cdrtools package +Edited for cdrkit by Christian Fromme <kaner@strace.org> + diff --git a/doc/genisoimage/README.rootinfo b/doc/genisoimage/README.rootinfo new file mode 100644 index 0000000..b3bc447 --- /dev/null +++ b/doc/genisoimage/README.rootinfo @@ -0,0 +1,90 @@ +The -icon-position option will attempt to preserve folder window positions, +scroll bars, views etc. for Apple/Unix file formats that support this +information (see below for which Apple/Unix encoding are supported). + +This information is stored in the 'FinderInfo' part of a Apple/Unix directory. +For example, in a CAP directory structure a directory called 'dirA' will +have the necessary FinderInfo stored in file '.finderinfo/dirA'. This file +stores information including, the folder's location and size on screen, +its scroll positions, folder View (view as Icons, Small Icons, etc.). + +However, the similar FinderInfo data for the 'root' folder is a special case. +For example, if a directory called '/some/dir/macfiles' is a CAP volume that +is mounted on a Mac as 'macfiles', then the FinderInfo for this directory +is stored in the file '/some/dir/.finderinfo/macfiles' - which is outside +the CAP directory structure. + +To get round this, an extra option, '-root-info' is used that takes as its +argument the name of the file that stores the root folder's FinderInfo. + +Using the above example, the command file options will be something like: + +% mkhybrid --cap -root-info /some/dir/.finderinfo/macfiles /some/dir/macfiles + +The format of the root FinderInfo file must be the same as the 'double-dash' +option(s) given on the command line. + +The Apple/Unix encodings that mkhybrid can decode the root FinderInfo are: + +CAP: + CAP directory: /some/dir/macfiles + Root FinderInfo file: /some/dir/.finderinfo/macfiles + +Netatalk: + Netatalk directory: /some/dir/macfiles + Root FinderInfo file: /some/dir/.AppleDouble/RootInfo + +EtherShare: + EtherShare directory: /some/dir/macfiles + Root FinderInfo file: /some/dir/.rsrc/macfiles + +If an HFS disk is mounted on a Linux platform, then the root FinderInfo +files are: + +Option 'fork=cap': + Root FinderInfo file: /mountpoint/.rootinfo + +Option 'fork=double': + Root FinderInfo file: /mountpoint/%RootInfo + +Option 'fork=netatalk': + Root FinderInfo file: /mountpoint/.AppleDouble/RootInfo + + +The '-root-info' option implies the '-icon-position' option. Future releases +of mkhybrid may automatically find the root FinderInfo file. + +The volume name is not set from the root FinderInfo file. Use the -V or +-hfs-volid options to set the volume name. + +Currently UShare, SGI/XINET, PC Exchange and SFM Apple/Unix root FinderInfo +files are not supported by mkhybrid - more information about these formats +is required in order to supoort them. + +AppleSingle and MacBinary are file only formats - they don't support folders +or volumes. + +Using this option, it is now possible to make a nearly true representation +of a Mac folder layout on a Unix/Linux platform. + +Original author: James Pearson 26-Apr-2000 + +This describes the program as shipped with cdrkit, a spinoff from the +cdrtools project. However, the cdrtools developers are no longer +involved in the development of this spinoff and therefore shall not +be made responsible for any problem caused by it. Do not try to get +support for this program by contacting the original authors. + +If you have support questions, send them to + +debburn-devel@lists.alioth.debian.org + +If you have definitely found a bug, send a mail to this list or to + +submit@bugs.debian.org + +writing at least a short description into the Subject and "Package: cdrkit" + +Source: README.rootinfo from cdrtools package +Edited for cdrkit by Christian Fromme <kaner@strace.org> + diff --git a/doc/genisoimage/README.session b/doc/genisoimage/README.session new file mode 100644 index 0000000..a4126fb --- /dev/null +++ b/doc/genisoimage/README.session @@ -0,0 +1,53 @@ +/* @(#)README.session 1.3 99/03/02 eric */ + + This release of genisoimage has basic support completed for +multiple sessions. However, we still need some interaction +between wodim and genisoimage for this to work correctly. This is needed as +only wodim knows the different ways to gather these numbers for all +different drives. It may be that future versions of genisoimage will include +the needed support for MMC compliant drives. + + There are a few new options to genisoimage to allow for this. +The first one is "-M /dev/scd0", and is used so that genisoimage can examine +the entirety of the previous image so that it can figure out what additional +files need to be written in the new session. Note that there are operating +systems that don't allow to read from CD drives with a sector size +of 2048 bytes per sector. To use genisoimage on such an operating system, you +will need a version of genisoimage that includes the SCSI transport library +from wodim. Simply use the dev= syntax from wodim with -M in +such a case. It will tell genisoimage to use the SCSI transport library to +read from the CD instead of using the standard read() OS interface. + + There is also a temporary hack in genisoimage in the form of a '-C' option. +The -C option takes two numbers as input, which are delimited by commas. +For example, you could specify "-C 1000,1020", but you should never just +make up numbers to use here. These numbers are determined from wodim. + + Note that if you use -C and omit -M, it effectively means that +you are writing a new session, starting at a non-zero block number, +and you are effectively ignoring all of the previous session contents. +When this session is sent to the writer, the new session effectively +"erases" the previous session. + + In practice you should be able to do something like: + +genisoimage [other options] -C `wodim dev=b,t,l -msinfo` \ + -M /dev/cdblkdev + +Replace 'b,t,l' by the aproriate numbers for SCSIbus, target and lun +of your drive. + +Note: As of the 1.12b5 release, the multi-session technology has +matured quite significantly. It is entirely possible that bugs +exists, or that further tweaks will be required somewhere along the +way to get things working correctly. The data gathering mode of +wodim has been tested, and I believe it works correctly. Caveat +Emptor. + +[Mar 1, 1999]. + + +Source: README.session from cdrtools package +Edited for cdrkit by Christian Fromme <kaner@strace.org> and +Eduard Bloch <blade@debian.org> + diff --git a/doc/genisoimage/README.sort b/doc/genisoimage/README.sort new file mode 100644 index 0000000..1e377bc --- /dev/null +++ b/doc/genisoimage/README.sort @@ -0,0 +1,102 @@ +Sort the order of file data on the CD +===================================== + +Note: this option does not sort the order of the file names that appear +in the ISO9660 directory. It sorts the order in which the file data is +written to the CD image. + +This option is useful in order to optimize the data layout on a CD. + +To use, type something like: + +genisoimage -o cdimage.iso -sort sort_file [other_options] cd_dir + +The file 'sort_file' contains two columns of: + +filename weight + +where filename is the whole name of a file/directory as genisoimage will see it +and weight is a whole number between +/- 2147483647 + +The files will be sorted with the highest weights first and lowest last. +The default weight is zero. + +If the filename is a directory name, then all the files in that directory (and +sub-directories) will use its weight as their default weight. + +e.g. + +If the directory 'cd_dir' contains two directories called 'dir1' and 'dir2' +with files 'A', 'B' and 'C' in dir1 and 'X', 'Y' and 'Z', the the file +'sort_file' could look something like: + +cd_dir/dir2 1000 +cd_dir/dir2/Y 2000 +cd_dir/dir1/B -2000 +cd_dir/dir1/A -8000 + +Note: There must be only one space or tab character between the filename and +the weight and the weight must be the last characters on a line. The filename +is taken to include all the characters from the first in a line, up to, but +not including the last space or tab character on a line. This is to allow +for space characters to be in, or at the end of a filename. + + +The command: + +genisoimage -o cdimage.iso -sort sort_file cd_dir + +will sort the above file data as: + +cd_dir/dir2/Y +cd_dir/dir2/X +cd_dir/dir2/Z +cd_dir/dir1/C +cd_dir/dir1/B +cd_dir/dir1/A + +Note: files 'X' and 'Z' both have the weight 1000 - their sort order will then +be the normal ISO9660 sort order (i.e. alphabetical in this case). + +File C will have the default weight of 0 + +Warning: the filenames in the sort list MUST match the whole path as seen by +genisoimage. i.e. in the above case, if the command line was: + +genisoimage -o cdimage.iso -sort sort_file ./cd_dir + +then the sort_file filename will have to changed as accordingly. + +Notes +===== + +CDs are written from the middle outwards. High weighted files will be nearer +the inside of the CD. + +Wildcards in the filename list should work. + +If a file appears more than once in the source directory tree, then the file +is only added once to the CD image - i.e. a hard linked file, or symbolic +link if using the -f option. The file will be sorted according to the +highest weighting given to any of the linked files. + +Zero length files are not sorted - the 'start extent' *may* appear to be in +the middle of another file after sorting. This is because zero length files +are given the start extent after the last file added to the CD at that time. +This address is not changed by the sorting, so it may appear that the file +address is in another file - however as they are zero length, this will +not matter! + +Directories are not sorted by this flag - directories HAVE to be in the +ISO9660 sort order - however, the files the directory entry points to, can be +anywhere on the CD. + +Existing files from any previous sessions will not be sorted - they already +exist on the CD and can not be moved! + +I have no idea if this is really useful ... + + +James Pearson 22-Nov-2001 + +Any comments/problems to j.pearson@ge.ucl.ac.uk diff --git a/doc/genisoimage/README.sparcboot b/doc/genisoimage/README.sparcboot new file mode 100644 index 0000000..b9bcbf2 --- /dev/null +++ b/doc/genisoimage/README.sparcboot @@ -0,0 +1,77 @@ +# @(#)README.sparcboot 1.1 99/12/12 joerg +# Edited for program name change by Eduard Bloch, 2006 + +The sparc boot feature does allow you to create your own Sun sparc boot disk. +This will allow you to create modified Solaris install disks or to create +installation CD's for other OS that run on sparc systems. + +A CD that is bootable on a Sun sparc system has a Sun disk label on sector 0 +and some Sun sparc disk partitions behind the ISO-9660 filesystem image. + +The layout of a sparc boot CD: + +---------------------------------------------------------------------------------------------------- +|Sun disk label| Iso 9660 filesystem |Generic sun4 boot|sun4c boot|sun4m boot|sun4d boot|sun4e boot| +---------------------------------------------------------------------------------------------------- + +On older system CD's all boot partition contain a full UFS miniroot filesystem. +On newer CD's the images on slice 2 and above only contain boot redirects to +slice 1. + +To create a CD that is bootable on Sun sparc systems you need to have the +boot images for the apropriate sparc architecture. + +A boot image file usually is a UFS filesystem image that contains the +primary boot image at byte offset 512 ... 8191. + +You may get such boot images by extracting partitions 1..5 from a Sun Solaris install CD, +but any bootable image should work. + +Here is an expample how to do this with the Solaris 7 install CD. + +dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s1 of=sun4 +dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s2 of=sun4c +dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s3 of=sun4m +dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s4 of=sun4d +dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s5 of=sun4e + + +genisoimage -R -sparc-boot sun4,sun4c,sun4m,sun4d,sun4e -o boot.img /mnt/install + +Will create the bootable image in boot.img. + +If you like to make the boot images smaller, you may call 'fstyp -v' +on the images and use the 'size' value to get the needed minimal +boot image size in kB. + +The result for the S7 boot CD is: + +ufs +magic 11954 format dynamic time Wed Oct 7 00:00:30 1998 +sblkno 8 cblkno 12 iblkno 16 dblkno 252 +sbsize 2048 cgsize 2048 cgoffset 20 cgmask 0xfffffff0 +ncg 7 size 25704 blocks 23987 + ^^^^^ + This is the number of interest. +bsize 8192 shift 13 mask 0xffffe000 +fsize 2048 shift 11 mask 0xfffff800 +frag 4 shift 2 fsbtodb 2 +minfree 10% maxbpg 2048 optim time +maxcontig 256 rotdelay 0ms rps 90 +csaddr 252 cssize 2048 shift 9 mask 0xfffffe00 +ntrak 14 nsect 72 spc 1008 ncyl 102 +cpg 16 bpg 1008 fpg 4032 ipg 3776 +nindir 2048 inopb 64 nspf 4 +nbfree 1768 ndir 667 nifree 24329 nffree 9 +cgrotor 2 fmod 0 ronly 0 + +So you should call: + +dd if=/vol/dev/dsk/c0t6/sol_7_sparc_sun_srvr/s1 of=sun4 bs=1k count=25704 + +To modify this filesystem, you can mount it using the fbk driver: + +chmod +t ./sun4 # Need to do this to avoid vm cache aliasing problems + +mount -F fbk -o rw,type=ufs /dev/fbk0:sun4 /mnt + diff --git a/doc/genisoimage/README.sunx86boot b/doc/genisoimage/README.sunx86boot new file mode 100644 index 0000000..2286a57 --- /dev/null +++ b/doc/genisoimage/README.sunx86boot @@ -0,0 +1,77 @@ +# @(#)README.sunx86boot 1.3 05/02/25 Copyright 2003 J. Schilling +# Edited for program name change by Eduard Bloch, 2006 + +A Solaris x86 Boot CD looks the like this: + +- A PC type fdisk partition map is in CD sector 0 at offset 0 + This fdisk partition map contains a single Solaris 0x82 type + partition starting at CD sector 0 at offset 512. + +- A SVr4 disk partition label is at CD sector 0 at offset 1024. + This equates the usual 512 byte offset to the primary partition + used by SVr4. + + This SVr4 partition label defines: + + - Partition 0 to contain a usually UFS type boot filesystem + + - Partition 1 to map the ISO-9660 filesystem. + + This seems to be a conceptual bug from Sun, as it is + impossible to mount this partition because this partition + would point outside the primary fdisk partition type 0x82 + + - Partition 2 maps the whole CD. + + +A boot CD created by Sun contains a master boot record in CD sector 0 offset 0. +The size if this MBR is 0x1BE (446 decimal) as usual on PCs. + +At CD sector 0 offset 512, there is a "primary boot sector". The MBR assumes +that is always gets loaded together with the ""primary boot sector". + +The El-Torito map for this CD defines a "no-emulation" boot sitting at CD sector 0 +and being 4 512 byte sectors in size. This covers the 1024 bytes of above +boot code. Note that genisoimage will not put the no-emulation boot at sector 0 +as it keeps the boot inside the area used for other file content data. + +At CD sector 1..15, there is a secondary boot code that understands UFS and tries +to boot from UFS slice 0. If you like to boot from different filesystem types, +you need to replace this boot code. The real size used by the secondary boot +is 31 x 512 bytes == 15872 bytes. + +To get hold of the three boot files, do the following with e.g. a Solaris 10 +boot CD: + +readcd dev=1,0 f=CD.out sectors=0-32 + +Replace dev=1,0 with the apropriate values for your system (see readcd -scanbus). + +sdd if=CD.out bs=446 count=1 of=mboot +sdd if=CD.out count=1 iseek=512 of=pboot +sdd if=CD.out count=60 iseek=2048 of=bootblk + +To create the needed files for the misofs command line example below, do the +following: + +sdd if=mboot -fill of=eltoritoboot +cat pboot >> eltoritoboot + +sdd -inull bs=2k count=1 of=genboot +cat bootblk >> genboot + +If you like the CD to look more similar to the original Sun CDs, use: + +cp eltoritoboot genboot +sdd -inull bs=1k count=1 >> genboot +cat bootblk >> genboot + +If you like to create a CD similar to the Solaris 10 boot CD, do the following: + +mkdir isodir +star -cPM -C /vol/dev/dsk/c1t1d0/multi_icd_sol_10_x86/s2 . | star -xp -xdot -C isodir +cp eltoritoboot isodir/.bootimage + +genisoimage -G genboot -no-emul-boot -b .bootimage -c .catalog -R -o bootcd.iso -sunx86-boot /vol/dev/dsk/c1t1d0/multi_icd_sol_10_x86/s0 isodir/ + + diff --git a/doc/icedax/FAQ b/doc/icedax/FAQ new file mode 100644 index 0000000..815f579 --- /dev/null +++ b/doc/icedax/FAQ @@ -0,0 +1,296 @@ +Frequently Asked Questions + +Status +====== + + +Q: What is the copyright status of icedax? + +A: icedax is software copyrighted by Heiko Eissfeldt and others, and + released under the General Public License from the Free Software + Foundation (see file GPL). + +Compilation +=========== + + +Q: What are the requirements to run icedax? + +A: All operating systems that are supported by wodim should also be able to + run icedax. Currently DOS and Windows are not covered. + Requirements of previous versions of icedax have been cut down for the + sake of portability. Features like fork(), realtime scheduling, or shared + memory are all optional now. You need Cmake and its dependencies, an + ANSI C compiler and a C library to build icedax + on a supported operating system. To run icedax, a SCSI transport + implementation for the os, a cdrom or cd burner device to read from, and + at least say 65K of memory for buffers are needed. + + +Q: Why does it not compile under Linux, although I am using the newest kernel? + +A: There have been changes in the generic driver by Douglas Gilbert, that are + in its first release not compatible with the scsi library from Joerg + Schilling. We are working on this problem... + In the meantime better do not use this variant, use the older one instead. + + +Q: Why does it not compile using standard make? + +A: Like wodim, icedax uses the cmake system, which requires a + sophisticated make program like GNU make. + Pure posix make functionality is not enough. + +Setting Up (for now Linux only) +=============================== + + +Q: Should I use scsi emulation or the eide driver for my ATAPI cdrom drive? + +A: Scsi emulation is preferred, since it enables icedax to use more commands + and is often the only way to get special information like track titles with + cd-text. The emulation module is called ide-scsi, the eide module is called + ide-cd. + + +Q: How can I use my parallel-port-connected cdrom with icedax? + +A: Under Linux there is a driver, that makes this device under SCSI + emulation available. For more information see the wodim documentation. + + +Q: How do I check, if the current Linux kernel does support generic SCSI? + +A: run 'cat /proc/devices | grep "21 sg"' and see, if a line with 'sg' appears. + If it does not appear, the current kernel is not able to use the generic_scsi + interface. If you have generic SCSI support compiled as a module, see next + question, otherwise you need to recompile the kernel and enable generic SCSI. + You might try to use the 'cooked_ioctl' interface as a last resort, but then + you need to supply a cdrom device with -D (like -D/dev/cdrom). In this case + icedax completely relies on the cdda reading methods from the kernel + driver, so it might not work (due to unsupported). + + +Q: How do I load the generic SCSI module by hand? + +A: run 'insmod sg' and check the result (see above). + + +Q: How do I find the device setting for my drive? + +A: Under Linux use the script scan_scsi.Linux. It prints the available devices + and their respective device option to be used. + Be aware of the fact that the generic device naming may change whenever the + devices on the SCSI bus change (present or not present). + +General usage (sampling) +======================== + + +Q: How do I record the whole cd, each track in a seperate file? + +A: Use the '-B' option. This will automagically create a file for each track. + + +Q: How do I record the whole cd into one file? + +A: Just extend the default recording time from one track to a big enough + time in seconds to cover the whole cd (like -d99999). + + +Q: How do I record successive tracks (a track range) into seperate files? + +A: Use the '-B' option and -t<first tracknumber>+<last track number>. + + +Q: How do I record successive tracks (a track range) into one file? + +A: Use -t<first tracknumber>+<last track number>. + + +Q: How do I record different tracks into seperate files with individual file + names? + +A: Use the supplied script 'readmult'. For usage see the comments at the + beginning of the script. + + +Q: How can I get the highest speed out of icedax? + +A: See the file README. There is a section about performance and what is + influencing it. + + +Q: How can I burn audio cds with icedax and wodim on-the-fly? + +A: This has not been tested very well, so caveat emptor. It is possible to + use icedax and wodim with pipes, _but_ there are several issues. + 1.: The cd drive may become too slow to keep wodim's buffer happy, when + a scratch on the audio cd is encountered, and several retries take place. + 2.: Currently there is no way to carry individual track information from + icedax to wodim. Several information bits are available very late + but are needed in advance from wodim. + 3.: Some operating systems have limitations in multiple SCSI accesses and + other resources (shared memory). icedax and wodim may block each + other, or might fight over limited resources. + For these reasons it is not recommended to burn on-the-fly with icedax. + +Frontends +========= + + +Q: Which frontends for icedax are available? + +A: See the file 'Frontends'. There are command line and graphical frontends. + +Album and track titles +====================== + + +Q: Does icedax support titles from cd extra (aka cd plus aka enhanced cd)? + +A: In general, yes. In order to get this information, icedax needs to read + a data sector from the second session of the cd. This requires multisession + support and the capability to read XA sectors. The titles are printed on the + screen and written into the inf files, then. + + +Q: Does icedax support titles from cd-text? + +A: Newer versions support the most important features of cd-text like titles + and creators. Non-supported are currently 16-bit characters, so asian + titles etc. are currently not available. + + +Q: Does icedax support CDDB ids? + +A: Yes, while it does not make CDDB lookups itself, it supplies an cddb file + with the table of contents and the cddb id. For cddb lookups see the + perl script tracknames.pl and tracknames.txt. If the titles are known to + icedax, it fills the titles itself in the cddb file. + + +Q: What is the MCN? + +A: The media catalog number is an unique id for the audio cd release. It is + similar to the ISBN for books, but unfortunately it is included only on + some audio cds. + + +Q: What is the ISRC? + +A: The International Standard Record Code is an unique id for a track. Like the + MCN (see above) it is an optional item. + +MP3 coding +========== + + +Q: Does icedax support on-the-fly mp3-coding? + +A: Yes. As of version 1.9alpha I integrated the LAME encoding engine as a new + output format. + To support external encoders, I added two scripts. The trick + is to avoid big temporary files. There are three versions (cdda2mp3.file, + cdda2mp3.pipe, and cdda2mp3.fifo), the first using files, the second uses + pipes, and the last uses a named pipe (also called fifo). The examples + use the Fraunhofer encoder 'l3enc', which is a commercial product and has + to be purchased seperately. Other encoders should be usable in a similar way. + +Conversions +=========== + + +Q: How do I create a file suitable for cd burning? + +A: If you are using wodim, you can produce cdr or wav files. To select + cdr files, use -Ocdr, to select wav files use -Owav (the default). + Audio files that have been recorded with a length not a multiple of the + audio sector size 2352 bytes, should be used with wodim's -pad option. + + +Q: How do I convert a wav file into a cdr file (my other cd burning program + does not accept wav format)? + +A: Use 'dd if=wavfile of=cdrfile conv=swab ibs=44 skip=1 obs=2352' + + +Q: How to convert cdr to wav? + +A: Use sox, the sound utility. It supports other formats as well. + +Specials +======== + + +Q: Does icedax support the pre-emphasis bit? + +A: If the table of contents marks a track as pre-emphasized, the corresponding + inf file will have this information, too. That enables a cd burning program + to retain the state of the track. + + +Q: Can icedax undo the pre-emphasis effect in the samples? + +A: Yes, if the -T option is given (and cd quality is selected), + icedax filters the samples with the reverse emphasis on-the-fly. This has + been checked with a sine sweep from a pre-emphasized test cd. + + +Q: My cdrom delivers the stereo channels swapped. How can I undo this? + +A: Use the -cs option. + + +Q: Does icedax support indices? + +A: Yes, but since there are positioning problems with a lot of drives, + information might be inaccurate. A start index can be specified with the + -i option. To get all indices, use the -v7 option. + + +Q: Can icedax avoid including the pre-gap region at the end of the track? + +A: Currently not. This might be added later, but is not easily done. + + +Q: How can I get all information about the cd without writing files? + +A: Use the -J option, which switches analysis to the max, and aborts after + the report. + + +Q: Can icedax display/save the graphics on my CD+graphics disc? + +A: No, this is not planned. A seperate X11 program could do that probably + better. + + +Q: Can icedax read the audio portion from my CD-I/Video-CD/DVD mpeg streams? + +A: No, these are special formats, which require much more effort. + +User support/feedback +===================== + + +Q: icedax is great. How can I support you to encourage further development? + +A: Look into the file NEEDED. Also constructive criticism and feedback is + appreciated. + + +Q: I want to port cdrkit (wodim/genisoimage/icedax) to a new platform (like + DJGPP,cygwin,os/2). How should I proceed? + +A: It would be convenient to have a unix like environment (like cygwin provides) + A shell, and a make program would be needed to first create smake (in order + to make the makefile system working). Another critical component is autoconf. + Once that is running, os dependent interfaces and the SCSI library should be + adjusted. For the makefile system and the scsi library please contact Joerg + Schilling. + + +Q: icedax sucks. Are there other alternatives available? + +A: Yes, for Linux you might try 'cdparanoia' from Monty (see README file). diff --git a/doc/icedax/Frontends b/doc/icedax/Frontends new file mode 100644 index 0000000..779af6e --- /dev/null +++ b/doc/icedax/Frontends @@ -0,0 +1,34 @@ +This file lists additional free frontend software to be combined with icedax: + +graphical frontends +=================== + +BurnIT (http://sunsite.auc.dk/BurnIT/) + by Jesper Petersen + a Java based frontend for cdrecord and icedax/cdparanoia + +Grip (http://www.ling.ed.ac.uk/~oliphant/grip) + by Mike Oliphant + a GTK+ Frontend for audio extraction and MPEG 1 Layer 3 conversion + (incl. CDDB support) + requires libcdaudio (also by Mike Oliphant) + +Krabber (http://members.tripod.com/~fehlfarben/download.html) + by Adrian Schroeter + a KDE frontend for cdparanoia and MPEG 1 Layer 3 conversion + (incl. CDDB support) + +script frontends +================ + +Cdr Create/Duplicate/Rip (ftp://ftp.burdell.org/pub/) + by David Cantrell + a ncurses based Perl script for CDDA to MPEG 1 Layer 3 conversion + (incl. CDDB support) + requires xmcd + +Ripenc rip encoder (http://www.asde.com/~mjparme/index.htm) + by Michael J. Parmeley + a shell script frontend for CDDA extraction and MPEG 1 Layer 3 + conversion + (incl. CDDB support) diff --git a/doc/icedax/HOWTOUSE b/doc/icedax/HOWTOUSE new file mode 100644 index 0000000..1ab9d77 --- /dev/null +++ b/doc/icedax/HOWTOUSE @@ -0,0 +1,101 @@ +Icedax User guide +================= + +NOTE: expressions in angle braces have to be substituted with + the corresponding numerical values. + For example: <delay in seconds> has to be substituted + with the numerical value to be used. + +Common tasks +============ +NOTE: The examples used here depend on proper default settings for interface +method and devices as specified in the Makefile. They can be overriden with +command line parameters, but here I choose to focus on simple examples. + +Copy complete audio CDs + +1. Copy an audio CD into wav files one per track. + + icedax -B + + will produce the sample wav files (one per track) + audio_01.wav + audio_02.wav + ... + + and the corresponding description files + audio_01.inf + audio_02.inf + ... + +2. Same as above but include MD-5 type signatures + + icedax -B -M<length> + + +3. Same as above but use other file name ('party_cd.wav') + + icedax -B -M<length> party_cd.wav + + +Copy single tracks + +1. Copy one track (eg track 6) into a wav file. + + icedax -t6 + + will produce a wav file including track 6 + + audio.wav + + and + + audio.inf + + +Copy parts of tracks + +1. Copy from given start time to end of track + + icedax -t6 -o<delay in 1/75 seconds> + + will record track 6 starting at track time <delay>/75 seconds + from track beginning upto the end of track. + +2. Copy from given start time and record for a given time + + icedax -t6 -o<delay in 1/75 seconds> -d<time to record in seconds> + + will record track 6 starting at track time <delay>/75 seconds + from track beginning for <time to record in seconds> seconds. + + + +Copy tracks into a pipe + + icedax -t6 -Oraw - | audio_compressor + + will feed the audio samples (in big endian format) of track 6 + into a secondary program audio_compressor. +(See also script cdda2mp3(.new) for a suggestion, how to process all tracks of +an audio cd with a MPEG-Layer3 encoder (not included here).) + + +Miscellaneous + +1. Use icedax as a cd player + + icedax -eN -t6 + + will copy the audio samples into a sound card (if sound card support + is compiled in) and will not write any file. + + + +2. Get complete information on the cd + + icedax -v63 -Nd0.01 + + will try to find out a media catalog number and track related + information (ISRCs) in addition to indices. For CD-Extra discs + limited support exists to retrieve additional information. diff --git a/doc/icedax/NEEDED b/doc/icedax/NEEDED new file mode 100644 index 0000000..361cc29 --- /dev/null +++ b/doc/icedax/NEEDED @@ -0,0 +1,10 @@ +Here I list some things, which would be very helpful for the further +development of cdrtools/icedax, but I currently have no access to. +User support for the acquisition of these items is appreciated :-) + +Access to all 'coloured books' from Philips/Sony +(Red/Yellow/Green/Orange/White/Blue,...). + +CD-extra discs with a lot of features/entries in the data sectors (SUB_INFO*). + +CD-text discs with a lot of features/entries. diff --git a/doc/icedax/OtherProgs b/doc/icedax/OtherProgs new file mode 100644 index 0000000..8c6fa41 --- /dev/null +++ b/doc/icedax/OtherProgs @@ -0,0 +1,2 @@ +dagrab works with ioctls, includes cddb lookups +cdparanoia has sophisticated jitter correction diff --git a/doc/icedax/README b/doc/icedax/README new file mode 100644 index 0000000..4b65532 --- /dev/null +++ b/doc/icedax/README @@ -0,0 +1,549 @@ +Hi dear cdrom drive users, + +This README describes hardware related matters as well as the installation of +icedax, the sampling utility. + +This icedax utility comes with the Cdrkit project. Cdrkit is a spinoff from +cdrtools. However, the cdrtools developers are not involved in the +development of this spinoff and therefore shall not be made responsible for +any problem caused by it. Please do not try to get support for this program by +contacting the original authors. + +Requirements +============ + +For SCSI cdroms and CD-writers, as well as SCSI-emulated ATAPIS and parallel + port drives +1s. kernel support for SCSI, the host adapter, SCSI cdroms and the + generic SCSI interface (if under Linux). You need to have the proper device + descriptors (get them under Linux with the MAKEDEV script from /dev). + +For ATAPI cdroms under Linux +1a. kernel support for the ATAPI cdrom driver or alternatively ide-scsi + emulation. You need to have the proper device descriptors (get them + with the MAKEDEV script from /dev). + +For parallel port cdroms under Linux + With newer kernels icedax uses the same parallel port access + as does wodim. Please refer additionally to the wodim documentation. + There are generally two drivers to access the cdrom through the parallel + port: the ATAPI cd emulation (called pcd), and the SCSI device emulation + (called pg). The pcd driver does NOT support cdda reading (kernel 2.2.12), + while the pg driver has no restriction. So you have to use pg for that. + + +For cdrom drives with proprietary busses under Linux +1p. Please check the CDROM-HOWTO for features of the respective + drivers. The sbpcd driver is very demanding due to the lack of + interrupts. + +optionally currently for Solaris and all platforms running 4fronts +OpenSoundSystems: +2. kernel sound card support. + + +Recommendations for higher throughput on Linux SCSI systems +=========================================================== + +Higher throughput will give better chances for non-interrupted +sampling. This should avoid typical interruption errors (cracklings +at buffer boundaries). + +1. Increase SG_BIG_BUFF to (128*1024) in /usr/src/linux/include/scsi/sg.h + (and recompile your kernel and boot it :-). +NOTE: Some kernel configurations will lead to 'out of kernel memory' errors. + If you encounter this message regularly, better leave SG_BIG_BUFF at + 32768. + +1a.There is a patch for multiple sg device access under Linux. It uses + up to 128 K buffer for each device. See here: +ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha/sg* + +2. Ensure your harddisk has write cache enabled (For SCSI hard disks I + switched it on with the scsiinfo program from tsx-11.mit.edu), but + enable this only if it is correctly working ;-) + +This has boosted the throughput of icedax considerably. + + +Supported interfaces +==================== + +Non SCSI drives (Linux only): + ATAPI: + The greatest group nowadays are ATAPI (EIDE) cdrom drives. + Support is only limited by the drive. Kernel and icedax + are ready for them (unless the drive uses a very uncommon method). + + Newer kernels can do an scsi emulation for ATAPI devices. + This interface is supported. + + Parallel port interface: + There is a driver that maps the parallel port driver to an generic + scsi like driver. Should work with newer kernels. + + Proprietary interfaces: + Older drives with proprietary interfaces are supported only + if the kernel driver allows reading cdda audio data via ioctl(). + Currently only Eberhard Moenkeberg's sbpcd and Corey Minyard's + cdu31a driver do allow this. The sbpcd driver of kernels earlier than + 2.0.30 and 2.1.57 needs a patch before satisfying output can be + obtained (see README.sbpcd). + +SCSI drives: + For these drives the SCSI library from Joerg Schilling is used. + Thus we need kernel support (compiled-in or as a module) for it. + The generic SCSI interface allows multi sector transfers (max. 128 KB) + which lowers cpu load considerably. + + ** NEW ** + I added a script 'scsi_scan.linux' to find the generic devices for all + SCSI CDROM- or WORM-type drives. + +Configuration +============= + +There are some adjustable parameters in the beginning of the Makefile +(which is called local.cnf.in) . They describe default settings of icedax: + +INTERFACE: How the cdrom is accessed. Choose one method for INTERFACE. +DEVICE: The default cdrom device is set in DEF_DEVICE. + +SOUND FILE FORMAT DEFAULTS: +The default format can be 'wav', 'sun pcm au', 'aiff', 'aifc', or +'raw bigendian samples'. +It is determined by the Makefile variable DEF_TYPE. + +AUDIO FILENAME: +The default filename is given by DEF_FILE. Unless 'cdr' format is being used, +this name is appended with '.wav', '.au', '.aiff' or '.aifc'. + +RATE: the default rate is given by setting DEF_UNDERSAMPLING to the divisor +for the audio cd sampling frequency (44100 Hz). + + RATE = 44100 Hz / DEF_UNDERSAMPLING + +DEF_UNDERSAMPLING can be any multiple of a half greater than one half. + +DYNAMIC: The default dynamic range of one sample in one channel is defined in +DEF_BITS which can be one of 8, 12 or 16. + +CHANNELS: set DEF_CHANNELS to 1 for mono and 2 for stereo. + +RECORDING TIME: set DEF_TIME to the amount of seconds to record (or 0 for +the whole track). + +SOUND DEVICE: set SOUND_DEVICE to the device name of your sound card. + The line containing HAVESOUND should be + uncommented also, if you want the option to hear + what you record. + +All of those values can be overridden by command line parameters. + + +Compiling icedax +================== + +Adjust the Makefile (named local.cnf.in) for your cdrom interface and +device setting first. + +Then type + make +and as root + make install + +This will compile icedax and copy the binary to /usr/local/bin and the +man page to /usr/local/man/man1 (defaults). + + +Privileges +========== + +You can setgid the binary, if you want to allow access to a CDROM's +scsi_generic interface for icedax but not for arbitrary programs. +Giving away permissions to send SCSI commands directly to a device is +not something you want to do lightly on a multi-user server system. +The setgid privileges will only be used to access the scsi generic +interface; for cooked_ioctl, the setgid privileges are not necessary +and they are simply dropped. + +Previous versions of icedax had to be setuid to root. Such privileges +are no longer necessary and will be dropped if present. + +Select device +============= + +By default icedax uses the generic SCSI interface and a device tripel for +SCSI bus, id, and lun. +This setting can be overridden by specifying '-Iinterface' and +'-D cdromdevice'. +The following command line example uses the generic_scsi interface and the +SCSI device with bus 1, id 2 and lun 3: +icedax -Igeneric_scsi -D1,2,3 + +The shell script 'scan_scsi.linux' will report the generic devices for +all SCSI cdrom drives. + +If you need to use another interface, check the device setting also as they +need to fit together. +Here is an example for an ATAPI cdrom using the cooked_ioctl interface and +the cdrom device /dev/hdb: +icedax -Icooked_ioctl -D/dev/hdb + + +Features +======== + +I added an optional on-the-fly correction for pre-emphasized samples +(available for original CDDA format only). +If the -T option is given, the samples will be filtered before they +are written to disk. The samples then have a linear frequency response again. + +When recording in mono, both channels are summed with halved amplitude. + +Undersampling is done by summing several samples with reduced amplitude to +prevent overflows. This damps higher freqencies as well. Compared to +exact resampling icedax does not use a very sophisticated (expensive) +filter algorithm. It currently uses quadratic interpolation for +noninteger subsampling factors. + +Sampling can be aborted by pressing the Interrupt-Key (eg control-C) +at anytime. Unless streaming to a pipe, the wav header will be updated +to contain the actual length of the sample. The same will happen, if +disk space becomes exhausted. + +Fast options +============ + +The options can also influence the performance greatly. +The fastest case is given when the samples don't need to be changed from +their original form or analysed, that is the output format uses the same +parameters as the drive: 16-bit samples, stereo at 44100 Hz sample rate +AND with the same endianess (-Cbig and -Ebig, or -Clittle and -Elittle). +To be sure all parameters can be given explicitly on the command line. +This avoids an analysis of icedax. + +icedax -P0 -q -S<maximum speed> +run as root will read with maximum speed and copy its output into the +wav file, taking advantage of realtime scheduling as well. + +For throughput testing the additional option -N can be used. Write +operations will be suppressed then. + +Options that slow down initially +================================ +-v<level> needs some time for analysis before the actual sampling starts + +Options that slow down during sampling +====================================== +-P1 causes overlap reading, the slowdown depends on the amount of jitter +-e synchronous output to a sound card slows down to onefold speed + +Options that need more cpu power +================================ +-p<rate> resamples the output send to the sound card +-M<count> calculates checksums +-T on-the-fly preemphasis filtering +-F checking for extremal samples +-G checking for differences in both channels +-C<endianess> if a conversion is required (see below) +-E<endianess> if a conversion is required (see below) +-Oaudiotype if a conversion is required (see below) +-c 1 +-c s +-m +-b 8 +-b 12 +-a <not 1> +-r <not 44100> + +When are one or two endianess (byte order) conversions required? +================================================================ +There are three stages where the endianess matters: +1.) on the input side the cd drive can deliver in two flavors (called F1). + When the flavor is unknown, icedax needs to find out the endianess. + A simple voting method is used. Successive samples are compared in both + flavors and the flavor with the statistically smaller changes is taken. + The flavor can be defined with the -C option, avoiding the analysis. +2.) For any calculation with samples (and echoing to the sound card), + the samples are needed in the byte order of the machine (in this case + I set 'need_host_order' to yes). The flavor of the machine endianess + is called F2. +3.) Finally, there are two flavors of output sound formats (called F3): + wav uses little endian samples + cdr and au use big endian samples + If the samples currently in memory have the wrong endianess a + (possibly second) conversion is required. + +This gives the following table: +F1 F2 need_host_order F3 conversions +little little no little 0 +little little yes little 0 +little little no big 1 +little little yes big 1 +little big no little 0 +little big yes little 2 +little big no big 1 +little big yes big 1 +big little no little 1 +big little yes little 1 +big little no big 0 +big little yes big 2 +big big no little 1 +big big yes little 1 +big big no big 0 +big big yes big 0 + + +Known problems +============== + +1. Sound quality + +Audible errors caused by hesitations: + +When recording the same audio track twice, recordings can slightly differ. +Furthermore depending on the firmware in the cdrom drive, positioning +errors can be so severe that they cannot be easily corrected by icedax. +This will unfortunately lead to audible errors. + +In this case some overlap or even underlap between successive portions +is introduced from the cdrom drive. +Here is this case demonstrated graphically: + +Sec 1 ... Sec n +|----------------------| first read delivered + |------------------------| second read wanted + |------------------------| second read delivered + |-| extra bogus bytes + |-| missing bytes + +This is due to synchronisation problems between sectors inside the cdrom +drive. When the drive has been forced to wait, these problems arise. + +Audio cds are lacking sector headers, so it's a difficult job to do the +positioning right (in the firmware). The frequency of these errors is +reduced when the reading process can continue undisturbed for longer periods. +So, a high throughput is essential. + +You may want to fine-tune your update daemon to use shorter intervals +(see 'man 8 update'). Shorter intervals are better because the update +interruptions are shorter when not so much write requests can pile up. + +The plextor 4plexplus drive (PX-4XCE) and newer models, newer pioneer +models as well as CD-writers with large buffers don't suffer from this +errors. Here the default is to switch off overlap reading. + +If you cannot get good samples from your drives you might consider an +alternative program. Monty's cdparanoia program goes to great lengths +in order to seperate the good bits from the bad ones. + +2. The index scanner has caused timeouts on my toshiba 3401 due to fast + random accesses. + +3. Retrieval of media catalog numbers and International Standard Recording + Codes may fail due to firmware bugs. + +Audio Format Conversion +======================= +Currently wav, sun (au-pcm), Apple/SGI aiff/aifc, and raw formats are supported. + +I try to write correct wav files (little endian samples), but some +cd-writers might swap them, which would result in sort of white noise +instead of the original sounds. icedax has an endianness detector +for these cases, but as for all automatics, it might fail on bizarre samples. + +Hint: icedax can be forced to use a given input endianness with the +-C option (arguments are 'little', 'big' or 'guess'). + +The sun format is a pcm variant, and uses big endian samples. +The other more common sun format with logarithmically scaled samples (au) +is not supported but can be obtained from sox's conversion. + +The raw format is like the sun format except it has no header. I +changed the endianness to big endian samples in order to comply +with popular cd burning software like the wodim program. + +The sound converter 'sox' can be used to obtain other sound formats. +(Note however, that the current sox player and a newer sound driver do not +harmonize well, use the player from the wavplay package instead (available +at sunsite)). + + +Feedback +======== + +Tested patches, any hardware information regarding drives as well as success/ +failure reports are always welcome at heiko@colossus.escape.de. + + +known cdda capable drives +========================= +Check out these web pages for uptodate information: + +<http://www.tardis.ed.ac.uk/~psyche/pc/cdrom/CDDA.html> + +and + +<http://www.anime.net/~goemon/linux-cd/cdda-list.html> + +From a news posting from Björn Wiberg + +> The following table was generated using the CDROM.CFG file from Nero +> v3.0.4.2. +> +> It shows different CD-ROM models and what speeds they can do DAE at. I +> guess the values are "safe ones"; i.e. the speeds at which each drive +> can perform DAE reliably. +> +> A value of "0x" means the drive doesn't support DAE. +> +> For your convenience, the maximum data transfer speed of the drives +> (for reading conventional files and data from the CD-ROM) are also +> included. +> +> Hopefully, this will help some of you who are looking for a good +> CD-ROM drive to choose a model which seems fast enough both for data +> and DAE. +> +> The models which support DAE: +> (Sorted by DAE speed, data speed and model) +> +> CD-ROM model DAE Data Interface +> --------------------------------------------------------- +> PLEXTOR CD-ROM PX-32TS 16x 16x SCSI +> TEAC CD-524E 14x 24x IDE +> CREATIVE CD620E 12x 5x IDE +> MITSUMI CD-ROM FX320S !B 12x 32x IDE +> TEAC CD-532E 12x 32x IDE +> HITACHI CDR-8335 12x 24x IDE +> PIONEER CD-ROM DR-A02S 12x 24x IDE +> TEAC CD-ROM CD-532S 12x 14x SCSI +> PIONEER CD-ROM DR-A12X 12x 12x IDE +> PIONEER CD-ROM DR-U06S 12x 12x SCSI +> PLEXTOR CD-ROM PX-20TS 12x 12x SCSI +> MITSUMI CD-ROM FX120T !B 11x 12x IDE +> PIONEER CD-ROM DR-A04S 11x 32x IDE +> PIONEER CD-ROM DR-U12X 10x 12x SCSI +> HITACHI CDR-8330 9x 24x IDE +> SONY CD-ROM CDU711 9x 14x IDE +> MATSHITA CD-ROM CR-584 9x 12x IDE +> MATSHITA CD-ROM CR-586 8x 32x IDE +> CDM-T531 Ver1.041 8x 18x IDE +> TEAC CD-516E 8x 16x IDE +> TOSHIBA CD-ROM XM-6201TA 8x 16x SCSI +> PLEXTOR CD-ROM PX-12CS 8x 12x SCSI +> PLEXTOR CD-ROM PX-12TS 8x 12x SCSI +> PIONEER CD-ROM DR-U10X 8x 10x SCSI +> SONY CD-ROM CDU611 8x 10x IDE +> FUNAI E285X 8x 8x IDE +> MITSUMI CD-ROM FX810T4!B 8x 8x IDE +> SONY CD-ROM CDU511 8x 8x IDE +> SONY CD-ROM CDU571-Q 8x 8x IDE +> TEAC CD-C68E 8x 8x IDE +> MITSUMI CD-ROM FX400E !B 8x 4x IDE +> HITACHI CDR-8130 7x 16x IDE +> MATSHITA CD-ROM CR-585 6x 24x IDE +> CREATIVE CD2422E MC102 6x 12x IDE +> MATSHITA CD-ROM CR-508 6x 12x SCSI +> IBM PD-1 LF-1195 6x 6x IDE +> PLEXTOR CD-ROM PX-6XCS 6x 6x SCSI +> LITEON CD-ROM LTN301 5x 32x IDE +> LITEON CD-ROM LTN242F 5x 24x IDE +> HITACHI CDR-7930 5x 8x IDE +> ASUS CD-S340 4x 34x IDE +> E-IDE CD-ROM 32X/AKU 4x 32x IDE +> ATAPI CDROM 4x 24x IDE +> LITEON CD-ROM LTN244 4x 24x IDE +> PHILIPS PCA248CD 4x 24x IDE +> TEAC CD-524EA 4x 24x IDE +> LITEON CD-ROM LTN202 4x 21x IDE +> ATAPI CD-ROM DRIVE-24X 4x 20x IDE +> CREATIVE CD2423E NC101 4x 20x IDE +> SAMSUNG CD-ROM SCR-2431 4x 20x IDE +> TAE IL CD-ROM CDD-7240J 4x 20x IDE +> TEAC CD-220E 4x 20x IDE +> CREATIVE CD1620E SL970404 4x 16x IDE +> LITEON CD-ROM LTN262 4x 16x IDE +> TEAC CD-ROM CD-516S 4x 16x SCSI +> ATAPI CD-ROM DRIVE 4x 15x IDE +> BCD 16XA CD-ROM 4x 10x IDE +> MATSHITA CD-ROM CR-506 4x 8x SCSI +> SONY CD-ROM CDU311 4x 8x IDE +> MATSHITA CD-ROM CR-504-J 4x 4x SCSI +> MITSBISH CDRW226 4x 4x SCSI +> SONY CD-ROM CDU625-S 4x 4x SCSI +> SONY CD-ROM CDU-76S 4x 4x SCSI +> SONY CD-ROM CDU77E 4x 4x IDE +> PLEXTOR CD-ROM PX-4XCE 4x 4x SCSI +> SONY CD-ROM CDU55E 4x 2x IDE +> PIONEER CD-ROM DR-U24X 3x 24x SCSI +> LITEON CD-ROM LTN204 3x 21x IDE +> PIONEER CD-ROM DR-A01S 3x 20x IDE +> PIONEER CD-ROM DR-A24X 3x 20x IDE +> FUNAI E295X 3x 16x IDE +> PIONEER CD-ROM DR-U03S 3x 12x SCSI +> BTC 24X CD-ROM SLL24 3x 10x IDE +> PLEXTOR CD-ROM PX-8XCS 3x 4x SCSI +> CyberDrv CD-ROM TW240S 3x 3x SCSI +> COMPAQ CRD-8320B 2x 32x IDE +> LG CD-ROM CRD-8320B 2x 32x IDE +> TOSHIBA CD-ROM XM-6202B 2x 32x IDE +> CREATIVE DVD-ROM DVD2240E 2x 24x IDE +> TOSHIBA CD-ROM XM-6102D 2x 24x IDE +> BTC 16X CD-ROM SLL16 1x 10x IDE +> NEC CD-ROM DRIVE:282 2x 8x IDE +> HITACHI GD-2000 2x 4x IDE +> MATSHITA CD-ROM CR-581 2x 4x IDE +> NEC CD-ROM DRIVE:222 2x 4x SCSI +> MATSHITA CD-ROM CR-8004 2x 2x SCSI +> GoldStar CD-ROM CRD-8240B 1x 24x IDE +> TOSHIBA CD-ROM XM-6102B 1x 24x IDE +> CyberDrv IDE CD-ROM 120D 1x 12x IDE +> I DE CD-ROM TW120D 1x 12x IDE +> NEC CD-ROM DRIVE:464 1x 12x SCSI +> TORiSAN CD-ROM CDR_U112 1x 12x IDE +> TOSHIBA CD-ROM XM-5701TA 1x 12x SCSI +> TOSHIBA CD-ROM XM-5702B 1x 12x IDE +> CyberDrv SCSI CD-ROM 120S 1x 10x IDE +> NEC CD-ROM DRIVE:463 1x 10x SCSI +> COMPAQ DVD-ROM SD-M1002 1x 8x IDE +> MATSHITA CD-ROM CR-583 1x 8x IDE +> NEC CD-ROM DRIVE:462 1x 8x SCSI +> TEAC CD-58E 1x 8x IDE +> OPTICS_S 8622 SCSI 1x 8x SCSI +> TOSHIBA CD-ROM XM-5602B 1x 8x IDE +> TOSHIBA CD-ROM XM-3801TA 1x 7x SCSI +> NEC CD-ROM DRIVE:461 1x 6x SCSI +> IBM CDRM00203 1x 6x SCSI +> TEAC CD-46E 1x 6x IDE +> TEAC CD-56E 1x 6x IDE +> TEAC CD-ROM CD-56S 1x 6x SCSI +> TOSHIBA CD-ROM XM-5502TA 1x 6x IDE +> TOSHIBA CD-ROM XM-3701TA 1x 6x SCSI +> NEC CD-ROM DRIVE:502 1x 4x SCSI +> TOSHIBA CD-ROM XM-1502BN 1x 4x IDE +> TOSHIBA CD-ROM XM-5302TA 1x 4x IDE +> TOSHIBA CD-ROM XM-5401TA 1x 4x SCSI +> TOSHIBA CD-ROM XM-5402TA 1x 4x IDE +> TOSHIBA CD-ROM XM-1502B 1x 4x IDE +> TOSHIBA CD-ROM XM-3501TA 1x 4x SCSI +> TOSHIBA CD-ROM XM-5301TA 1x 4x SCSI +> TOSHIBA CD-ROM XM-5201TA 1x 2x SCSI + +known cdda uncapable drives +=========================== + +Pioneer DRM-602X, DRM-604X +Teac CD-55A (panasonic bus) +Philips CM206/10 serial RS-422 + CM207 + CM226/10 serial RS-422 + CDD462/01 serial RS-422 +Orchid CDS3110 + +Additions to the tables above are welcome. + +and now catch your sounds, +Heiko heiko@colossus.escape.de (Original author) +Changes for the Cdrkit project by Christian Fromme <kaner@strace.org>, Eduard Bloch diff --git a/doc/icedax/THANKS b/doc/icedax/THANKS new file mode 100644 index 0000000..801f7df --- /dev/null +++ b/doc/icedax/THANKS @@ -0,0 +1,36 @@ +Cdda2wav development has been funded by + +Project MODE +http://www.mode.net/ + +and + +Fraunhofer Institut für integrierte Schaltungen (FhG-IIS) +http://www.iis.fhg.de/ + +Code for extraction of ISRC and MCN codes as well as MD5 signatures +has been made possible by their contributions, thanks very much. + +Thanks to Rik Swusten of Plextor Europe for supplying a cd burner +for development. + +Thanks to Ricoh for supplying a cd burner for development. + +Thanks to Sanyo for supplying a Burn-Proof cd burner with documentaion +for development. + +More thanks goto +Joerg Schilling (helped a lot to integrate his SCSI library) +Aaron Newsome (which created an account on his machine for me to do testing) +Christopher Montgomery (aka Monty, for his work on jitter correction) +Zygo Blaxell (a lot of code improvements) +Thomas Niederreiter (extensions for cd-writers) +Piercarlo Grandi (rewrote of cdda2wav's man page) +Stewart Addison (suggestions and a fine web page on cdda) +Leland Olds (the cdda2wav debian maintainer) +Francesco Chemolli (getopt_long patches) + +Thanks to all testers and finally Jim McLaughlin for supplying +the first cdda-reader source code (that got me started). + +Heiko Eißfeldt diff --git a/doc/icedax/TODO b/doc/icedax/TODO new file mode 100644 index 0000000..5fb1fdd --- /dev/null +++ b/doc/icedax/TODO @@ -0,0 +1,41 @@ +improved Indexscan without playing sectors +use C2 pointers to reduce speed +Solaris handling with volumed +SunOS/Solaris and 512 byte sectors?? +setuid.c group ids on WinXP?? + +stabilization: +check all exit codes (exit with error if sync failed) +new ioctl support for Solaris, FreeBSD-3.x, FreeBSD-4.x +find cause of ringbuffer assertions (resource temporarily unavailable) + +new features: +enable hidden (audio) track recording +thread support +more sound support +CDIndex, CDDB lookups +prepare for MP3 inclusion (lame) +cut off silence at start and end of track +interpolation for massive read errors + +internal: +get cache setting/set cache to zero/reset cache size at the end... +maybe add something for pioneer cd drives (spin up problems) +develop a new transport to read cdda sectors with complete subchannels +use index0 optionally to cut off the pregap portion +detect type of hidden track (data/audio) +implement capability to add a global shift +enhance cd text: + increase buffer size + add tab semantics + support 16-bit characters + try fallback read text info from program area + +structural: +plug-in infrastructure + +BeOS: cddbp support, sound support +QNX: realtime support RR-scheduler message, sound support in lconfig Makefiles +OS/2: sound support +cygwin: sound support + diff --git a/doc/icedax/cdda_links b/doc/icedax/cdda_links new file mode 100644 index 0000000..0371896 --- /dev/null +++ b/doc/icedax/cdda_links @@ -0,0 +1,4 @@ +http://www.escape.de/icedax/icedax.html +http://www.geocities.com/SiliconValley/Bay/6893/multi.htm +http://www.mp3.com/cdrom.html +http://www.emi.u-bordeaux.fr/~morel/ diff --git a/doc/icedax/tracknames.pl b/doc/icedax/tracknames.pl new file mode 100755 index 0000000..09f0fcf --- /dev/null +++ b/doc/icedax/tracknames.pl @@ -0,0 +1,245 @@ +#!/usr/local/bin/perl +# A quick perl hack to get rename files pulled in with icedax. +# by billo@billo.com +# +use Socket; +use IO::Handle; +use Env qw(USER); +use strict; +no strict 'subs'; # can't get it to stop complaining about SOCK + +my $state = "header"; + +my $global_album = "Artist / Title"; +my $global_title = "Title"; +my $global_artist = "Artist"; +my @global_tracks = ("") x 100; +my $global_ntracks = 0; + +my @track_offsets = (); +my $disc_id = 0; +my $disc_time = 0; + + +if ($#ARGV != 1) +{ + print "usage: cddbhack.pl CDDBHOST PORT < audio.cddb\n"; + exit 0; +} + +while (<STDIN>) +{ + if ($state eq "header") + { + if (/#\s[\s]*(\d[\d]*)$/) + { + push @track_offsets, $1; + } elsif (/#\s[\s]*Disc length:\s(\d[\d]*)/) { + $disc_time = $1; + $state = "discid"; + } + } elsif ($state eq "discid") + { + if (/DISCID=(\w[\w]*)/) + { + $disc_id = $1; + last; + } + } +} + +my $query_string = "cddb query $disc_id " . ($#track_offsets + 1); +foreach my $offset (@track_offsets) +{ + $query_string .= " $offset"; +} +$query_string .= " $disc_time"; + +print "$query_string\n"; + +my $host = $ARGV[0]; +my $port = $ARGV[1]; + +my $iaddr = inet_aton($host); +my $paddr = sockaddr_in($port, $iaddr); + + +socket(SOCK, AF_INET, SOCK_STREAM, getprotobyname('tcp')) or die "socket: $!"; + +connect(SOCK, $paddr) or die "connect: $!"; + +autoflush SOCK 1; + +print "Connected.\n"; + +my ($status, $result) = &resp(\*SOCK); + +if (int($status) != 201) +{ + print "Unexpected status.\n"; + close(\*SOCK); + exit 0; +} + +$host = `hostname`; + +$host =~ s/\n//g; + +&cmd(\*SOCK, "cddb hello $USER $host billo-scan 0.1"); +($status, $result) = &resp(\*SOCK); +if (int($status) != 200) +{ + print "Unexpected status.\n"; + close(\*SOCK); + exit 0; +} + +&cmd(\*SOCK, "$query_string"); +($status, $result) = &resp(\*SOCK); +if (int($status) != 200) +{ + print "Unexpected status.\n"; + close(\*SOCK); + exit 0; +} + +my ($ignore, $cat, $id, @rest) = split (" ", $result); + + + +my $read_string = "cddb read $cat $id"; + +&cmd(\*SOCK, $read_string); +&resp(\*SOCK); +while (<SOCK>) +{ + if (/^\./) + { + # print $_; + # print "last line\n"; + last; + } else { + &process($_); + # print $_; + } +} + +&cmd(\*SOCK, "quit"); +&resp(\*SOCK); + +close(\*SOCK); + +&rename; + +exit 0; + +sub cmd +{ + my ($S, $cmd) = @_; + + print "$cmd\n"; + print $S "$cmd\r\n"; +} + +sub resp +{ + my ($S) = @_; + my ($code, $message); + while (<$S>) + { + if (/^(\d[\d]*)\s.*/) + { + # print "\n$1\n"; + print "$_\n"; + $code = $1; + $message = $_; + last; + } + sleep(1); + } + my @return_array = ($code, $message); + return @return_array; +} + +sub process +{ + my ($line) = @_; + + $_ = $line; + if (/^DTITLE=(.*)$/) + { + $global_album = $1; + $_ = $global_album; + if (m/([^\/][^\/]*)\s\/\s([^\/][^\/\n\r]*)/) + { + $global_artist = $1; + $global_title = $2; + } + print "$global_album\n"; + print "$global_title\n"; + print "$global_artist\n"; + return; + } + if (/^TTITLE(\d[\d]*)=(.*)$/) + { + my $track = $1 + 1; + if ($track > $global_ntracks) + { + $global_ntracks = $track; + } + $global_tracks[$track] = sprintf ("%s-%02d-%s", $global_title, + $track, $2); + $global_tracks[$track] =~ s/\s$//g; + $global_tracks[$track] =~ s/'//g; + $global_tracks[$track] =~ s/\s/_/g; + $global_tracks[$track] =~ s/:/_/g; + $global_tracks[$track] =~ s/\?//g; + $global_tracks[$track] =~ s/\*//g; + $global_tracks[$track] =~ s/\\/_/g; + $global_tracks[$track] =~ s/\s/_/g; + $global_tracks[$track] =~ s/\//_/g; + print "Track match " . $global_tracks[$track] . "\n"; + } +} + +sub rename +{ + my $i = 1; + + for ($i = 1; $i <= $global_ntracks; $i++) + { + my $track_name = $global_tracks[$i]; + if ($track_name ne "") + { + my $file_name = sprintf("audio_%02d.wav", $i); + my $new_file_name = sprintf("$track_name.wav", $i); + + my $mv_cmd = "mv '" . $file_name . "' '" + . $new_file_name . "'"; + print "$mv_cmd\n"; + `echo $mv_cmd >> rename.sh`; + } + } +} + +sub unrename +{ + my $i = 1; + + for ($i = 1; $i <= $global_ntracks; $i++) + { + my $track_name = $global_tracks[$i]; + if ($track_name ne "") + { + my $file_name = sprintf("$track_name.wav", $i); + my $new_file_name = sprintf("audio_%02d.wav", $i); + + my $mv_cmd = "mv '" . $file_name . "' '" + . $new_file_name . "'"; + print "$mv_cmd\n"; + `echo $mv_cmd >> unrename.sh`; + } + } +} + + diff --git a/doc/icedax/tracknames.txt b/doc/icedax/tracknames.txt new file mode 100644 index 0000000..9a94e66 --- /dev/null +++ b/doc/icedax/tracknames.txt @@ -0,0 +1,34 @@ +Date: Fri, 2 Oct 1998 16:58:15 -0400 +From: Bill O'Donnell <billo@billo.com> +To: heiko@colossus.escape.de +Subject: CDDB/icedax quick lookup utility + + +Hello, I just started using icedax to capture CD audio on Linux. +It's working great on my 2.0.22 kernel with NEC CD-ROM DRIVE:273 (ATAPI). + +Anyway, I noticed that you're dumping out cddb query info, but not +doing the query yet, so I hacked a quick perl program to do it. + +If you run with a default extraction like this: + + icedax -B -D /dev/hda + +then run the program included something like this: + + cddbhack.pl ma.us.cddb.com 8880 < audio.cddb + +It looks up the names, and creates a file "rename.sh" which can be +used to rename all the audio_XX.wav files to a nice name. + +Anyway, thought you might find it useful, feel free to include in your +next beta distribution or not. Sorry if I made any stupid perl +mistakes, I only just learned it last week. I would have done it in C +or python but I need to learn perl for another job... + +Cheers, + +-billo + +Bill O'Donnell Independent Software Developer +billo@billo.com http://www.billo.com diff --git a/doc/plattforms/README.aix5l b/doc/plattforms/README.aix5l new file mode 100644 index 0000000..8c697d7 --- /dev/null +++ b/doc/plattforms/README.aix5l @@ -0,0 +1,16 @@ +Cdrkit can be built on AIX 5 using the following instructions. Note that the +SCSI transport has not been tested yet because of missing hardware. + + - install cmake either from source or from binaries downloadable on cmake.org. + Make sure the cmake is in your PATH and it can find its modules. + - GCC compiler (available on gcc.org) is recommended, however the native xlc + compiler should work as well. + +Follow instructions from the INSTALL file. + +If you installed a local version of GNU libiconv and ld is confused and spews +linking errors related to .libiconv, check the linker paths with +"cmake -LA build | grep lib". Probably your local path is not listed there and +you may need to set LDFLAGS make variable. See INSTALL file for details. + + -- Eduard Bloch -- Sun, 26 Nov 2006 23:06:25 +0100 diff --git a/doc/plattforms/README.freebsd b/doc/plattforms/README.freebsd new file mode 100644 index 0000000..6e51a30 --- /dev/null +++ b/doc/plattforms/README.freebsd @@ -0,0 +1,31 @@ +These instructions have been tested with FreeBSD 6.2-PRERELEASE, but +should work on any 6.x release. If you're having trouble (with any +release, not just 6.x), please let us know. + +Building +======== + +You need to have cmake installed. It is available in the ports +collection or from cmake.org. You also need GNU make. It is also in the +ports collection, and can be alternatively obtained from gnu.org. + +Most users have libiconv installed under /usr/local. If you wish to add +support for it (used by genisoimage, and recommended), build with + + gmake CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib + +instead of just plain + + gmake + +Short note on using wodim +========================= + +If you want to use wodim with ATAPI drives, make sure you load the +atapicam module before using wodim. Not even "wodim -scanbus" works +usually if this is not done. The command for loading the atapicam +module is (for root) + + /sbin/kldload atapicam + + -- Lorenz Minder -- Mon Nov 27 23:23:01 CET 2006 diff --git a/doc/plattforms/README.linux b/doc/plattforms/README.linux new file mode 100644 index 0000000..da8f759 --- /dev/null +++ b/doc/plattforms/README.linux @@ -0,0 +1,46 @@ + +Requirements of cdrkit on Linux: + + - Linux kernel 2.4 or newer + - Glibc 2.2 or newer + - libcap library package is required, with development files (headers) + - kernel headers useable with the combination of glibc and kernel, as approved + by the distribution. Do not blindly use random kernel headers, do not + symlink them to /usr/include/linux or /usr/include/asm*. + +Notes about support on Linux: + + - Linux kernel versions between 2.6.8 and 2.6.11 are known to have invasive + SCSI command filtering which makes the use of wodim almost inpossible or + complicated for non-root users. Avoid those kernel versions, unless they + have been patched to disable that filtering. + + - support of generic scsi was limited on 2.4, ie. not available directly with + IDE/ATAPI devices. The ide-scsi driver could be used map ATAPI devices to + SCSI ids, however this driver had other problems. See README.ATAPI for + details. Note that there also the ATAPI:... device access method which uses + deprecated funtionality of kernel 2.4. Don't use it unless it is really + neccessary. The support for it may be removed in future versions of cdrkit. + + - the DMA transfer size is limited with some device controllers and the Linux + kernel 2.6.x (2.6.19 currently) provides no method to retrieve it for + exactly one device. Wodim scans sysfs to retrieve this information, but it + needs to be mounted. Use the ts= option of wodim to limit the transfer size + on problems. + + +Additional comments moved from the wodim.1 manpage (originaly cdrecord.1): + +The sg driver on Linux has several severe bugs: + + - It cannot see if a SCSI command could not be sent at all. + - It cannot get the SCSI status byte. wodim for that reason cannot report + failing SCSI commands in some situations. + - It cannot get real DMA count of transfer. wodim cannot tell you if there is + an DMA residual count. + - It cannot get number of bytes valid in auto sense data. wodim cannot tell + you if device transfers no sense data at all. + - It fetches too few data in auto request sense (CCS/SCSI-2/SCSI-3 needs + >= 18). + + -- Reviewed by Eduard Bloch -- 12/2006 diff --git a/doc/plattforms/README.parallel b/doc/plattforms/README.parallel new file mode 100644 index 0000000..22b9e09 --- /dev/null +++ b/doc/plattforms/README.parallel @@ -0,0 +1,59 @@ +This file is intended to help with ATAPI <-> Parallel Port devices on Linux + +Before you start, read + + http://www.torque.net/parport/paride.html + +Make sure that your parallel port device is set up to EPP mode +from within the BIOS. In many cases it is best to set the PP delay to 0. + +Here is a short explanation how to make the FreeCom Traveller work +in 4x speed on a notebook: + +1.) Set BIOS for parallel port to 'EPP'. + +2.) Load drivers in default mode: + + # modprobe paride + # modprobe <driver for parallel port adaptor> + # modprobe pg + +in case of a FreeCom Traveller this is: + + # modprobe paride + # modprobe friq + # modprobe pg + +3.) Check kernel log for paride messages: + + # dmesg + ... + paride: version 1.04 installed + paride: friq registered as protocol 0 + ... + parport0: PC-style at 0x378 [SPP,PS2,EPP] + parport0: no IEEE-1284 device present. + ... + pg: pg version 1.02, major 97 + pg0: Sharing parport0 at 0x378 + pg0: friq 1.01, Freecom IQ ASIC-2 adapter at 0x378, mode 4 (EPP-32), delay 1 + pg0: CD-R/RW RW8040A, master + ... + +4.) load module again but use different parameters: + 'drive0=IO-Port,Protocol,Unit,Mode,Master/Slave,Delay drive1=...' + if you have only one drive at the parallel port + 'drive0=IO-Port,0,0,-1,-1,Delay' e.g. for Delay = 0: + + # modprobe -r pg + # modprobe pg drive0=0x378,0,0,-1,-1,0 + +5.) Check for optimum delay using for maximum speed using wodim -dummy + +6.) Use the file rc.pp and modify for your needs + +7.) Your CD drive now appears as /dev/pcd? + +Source: README.cdtext from cdrtools package +Edited for cdrkit by Christian Fromme <kaner@strace.org> + diff --git a/doc/plattforms/README.sunos b/doc/plattforms/README.sunos new file mode 100644 index 0000000..6fc3a0d --- /dev/null +++ b/doc/plattforms/README.sunos @@ -0,0 +1,10 @@ + +Cdrkit have been built and partially tested on SunOS 5.8. + +To compile, run "gmake". CMake must be installed (with its modules), the cmake +binary must available in your path. Installing GNU libiconv is also recommended. + +On linking problems with 3rd-party libraries involved, make sure that you have +matching configuration of CFLAGS and LDFLAGS vars. + + -- Eduard Bloch -- Tue, 28 Nov 2006 00:01:47 +0100 diff --git a/doc/plattforms/README.win32 b/doc/plattforms/README.win32 new file mode 100644 index 0000000..1714ed6 --- /dev/null +++ b/doc/plattforms/README.win32 @@ -0,0 +1,31 @@ + +Cdrkit suite can be compiled on Windows XP (Service Pack 2) using cygwin +environment and tools set, available on: + + http://sources.redhat.com/cygwin/ + +and many mirrors. + +To compile on Cygwin, execute setup.exe to install it. You will need to select +cmake, make, libiconv and gcc compiler in the package selection. Also choose +subversion if you wish to fetch the latest development version. + +When done, you can start the Cygwin Shell by the new icon in the Start menu or +on the desktop. Visit cdrkit.org and download a tarball of a recent version and store it under <cygwin_directory>\home\your_user_name. + +Untar the package with tar -z -x -f <tarball>, go into this directory and run +"make", followed by "make install". Ignore messages about clock skew etc. + +NOTE: with some versions of Cygwin or cmake shipped with it, the installation +fails for unknown reason. In this case, you can browse trough the build/ +directory, pick up the .exe files there and read the manpage files in +application directories with the man command ("man wodim/wodim.1"). + +Windows drives are available in paths like /cygdrive/c/, /cygdrive/d/. The +drive IDs can be detected using "wodim -scanbus". See wodim's manpage for +details. + +STANDARD WARNING: test in dummy mode before you really write data to the disks. +Report trouble to Cdrkit maintainers. + + -- Eduard Bloch <blade@debian.org> -- Tue, 12 Sep 2006 10:06:34 +0200 diff --git a/doc/wodim/README.DiskT@2 b/doc/wodim/README.DiskT@2 new file mode 100644 index 0000000..f94e124 --- /dev/null +++ b/doc/wodim/README.DiskT@2 @@ -0,0 +1,67 @@ +New driveropts= option "tattoofile=". Use together with -checkdrive +to write an image of the right size to disk. + + DiskT@2 hints: + + In order to have "DISKTATTOO" listed in the "Driver flags", + the disk currently inserted must be usable for the DiskT@2 feature. + This means that there needs to be enough space on it. + + You need an B&W image with 3744 pixels per line + + Best start with a 3744 x 320 pixel image. + The correct size may be retrieved with + wodim driveropts=tattooinfo -checkdrive + + To get RAW image data: + + - Take 'xv' and save the image in PBM/PGM/PPM (raw) mode + + - use a binary aware (must support unlimited linelength) + editor such as 'ved' and remove the header lines. + These lines look like: + + P5 + # CREATOR: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) + # CREATOR: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) + 3744 144 + 255 + + Now you should have (in case of the file above) a file that + has exactly 539136 Bytes. + + - Note that the tattoo image must be left to right flipped + (a mirror image). + +From a hint from "E. Robert Bogusta" <rob23@tmr.com>: + +Take an image, and do: + + djpeg myface.jpg | ppmtopgm | pnmflip -lr | + pnmscale -xsi 3744 -ysi 320 | sed '1,/255/d' >myface.tattoo + +So: + djpeg extracts ppm from a jpeg. Use your favorite other way of getting +this far is you wish. + + ppmtopgm changes color to grey scale + + pnmflip -lr flips left to right, the small image is faster + + pnmscale makes it 3644x320 regardless of starting size. This may make it +look really odd on the CD if it doesn't start off the right size. More on +this after I try it. + + sed strips from the first line to the line containing 255, which is the +last header line. + +Note that it would be better to use the actual height of the applicable image instead +of the maximum value of 320 and it would be even more correct to create an +image that has the right width/height ratio for the target on CD in order +get an undistorted view of the image on CD. + +For best visibility, use black text on light background. + +Source: README.cdtext from cdrtools package +Edited for cdrkit by Christian Fromme <kaner@strace.org> + diff --git a/doc/wodim/README.WORM b/doc/wodim/README.WORM new file mode 100644 index 0000000..d3e2ace --- /dev/null +++ b/doc/wodim/README.WORM @@ -0,0 +1,10 @@ +CD-R drives are anything but WORM drives, but older drives identify themselves +as WORM drives. +A Worm drive is able to write each sector once at any time without preparation. +A CD-R drives is not and never will be able to do this. +However some old drives identify as WORM drives. + +For this reason the SCSI-3 standard tells CD-R drives simply CD drives +with multi media extensions. + + diff --git a/doc/wodim/README.cdrw b/doc/wodim/README.cdrw new file mode 100644 index 0000000..cda86e9 --- /dev/null +++ b/doc/wodim/README.cdrw @@ -0,0 +1,17 @@ +Using CD-RW media Mini Howto FAQ + +CD-RW drives usually support packet writing, but as there +is currently no usable UDF filesystem support you may only use +the simple wodim approach. + +wodim writes to CD-RW media in exactly the same way as it +does with CD-R. + +You may erase a complete disk in preparation to reuse it. +Check the man page entry for the blank= option of wodim. +Not all drives support all blanking modes. Usually +blank=fast or blank=full are working. + +Source: README.cdtext from cdrtools package +Edited for cdrkit by Christian Fromme <kaner@strace.org> + diff --git a/doc/wodim/README.clone b/doc/wodim/README.clone new file mode 100644 index 0000000..4964730 --- /dev/null +++ b/doc/wodim/README.clone @@ -0,0 +1,27 @@ +Hints for how to copy a CD using the clone method: + +Step 1 (read master CD): + + Call "readcd dev=b,t,l -clone f=somefile" and the files + + somefile + and + somefile.toc + + will be generated. + + If the disk contains many sectors that are unreadable by intention, + call "readcd dev=b,t,l -clone -nocorr f=somefile" + + +Step 2 (write copy): + + Call "wodim dev=b,t,l -raw96r -clone -v somefile" + +If wodim complains that your drive does not support -raw96r, but the +drive is able to do clone writing at all, then wodim will propose you +a different write mode that works with the drive. + +Source: README.clone from cdrtools package +Edited for cdrkit by Christian Fromme <kaner@strace.org> + diff --git a/doc/wodim/README.raw b/doc/wodim/README.raw new file mode 100644 index 0000000..4629f66 --- /dev/null +++ b/doc/wodim/README.raw @@ -0,0 +1,71 @@ +Tips for MMC RAW mode writing. + + This allows to do disk at once recording on Philips drives that + do not support SAO. + + You may write audio tracks in RAW mode. There are some new + and most likely transient options: + + -raw16 Write 2352 Bytes sectors + P+Q Subchannel + + -raw96r Write 2352 Bytes sectors + P+W Subchannel (R-W in raw mode) + + -raw96p Write 2352 Bytes sectors + P+W Subchannel (R-W in packed mode) + + NOTE that the MMC standard does not allow -dummy in RAW mode. + There may be drives which allow it but don't bother if it does not work. + + Indices are fully supported in RAW mode. + + MCN & ISRC are not yet supported in RAW mode, they are silently discarded. + + If you find other problems in RAW mode or if you find + new bugs introduced in old write modes, please send a bug report. + + wodim now checks the properties of the writer. If a specific write + mode is not supported by the writer, wodim warns you and makes + a suggestion for a similar alternate write mode. + + With the curent structure of wodim, it is not possible to silently + e.g. change the write mode from -dao to -raw96r + + MMC compliant drives are automatically scanned for supported write modes. + This should help to make wodim work without manual static configuration. + My hope is still to have no need to know all drive properties in + advance, so new drives will continue to work as long as they + are standard compliant enough for wodim. + +EXAMPLES: + + wodim dev=1,0 -v -raw96r *.wav + + will write a audio CD in raw mode using (computed) 2448 byte sectors + with raw P-W subchannels. This works e.g. with Plextor drives. + + + wodim dev=1,0 -v -raw16 *.wav + + will write a audio CD in raw mode using (computed) 2368 byte sectors + with raw P+Q subchannels. This works e.g. with Philips drives. + + + NOTE: The input sector size always is 2352 bytes for audio. + +IMPORTANT: + + - if the drive supports RAW/R96R among with other raw write modes, + use -raw96r + + - if the drive does _only_ supports RAW/R16, use -raw16 + + - ... else if the drive supports RAW/R96P, use -raw96p + + The packed raw mode (RAW/R96P) is buggy in Plextor drives and + the RAW/R16 mode is buggy in TEAC drives. Plextor creates + unreadable disks and TEAC hangs the drive. + + For this reason, it is important to select the raw writing + mode accoding to the notes above. + +Source: README.raw from cdrtools package +Edited for cdrkit by Christian Fromme <kaner@strace.org> |