📄 growisofs.c
字号:
* working directory instead of media; * - generalize -M /dev/cdrom=file.iso option, but if file.iso is not * /dev/zero, insist on sane -C argument to be passed prior -M and * double-verify the track starting address; * 5.11: * - authorship statement in -version output; * - make speed_factor floating point and print "Current Write Speed" * factor for informational purposes; * - Pioneer DVR-x06 exhibited degraded performance when recording DVD+; * - Pioneer DVR-x06 failed to complete DVD+ recording gracefully; * - alter set-root-uid behaviour under Linux from "PAM-junky" to more * conservative one; * 5.12: * - single Pioneer DVR-x06 user reported that very small fraction of * his recordings get terminted with "LONG WRITE IN PROGRESS," even * though growisofs explicitly reserves for this condition... It * turned out that at those rare occasions unit reported a lot of free * buffer space, which growisofs treated as error condition. It's not * clear if it's firmware deficiency, but growisofs reserves even for * this apparently rare condition now. * - [major] issue with MODE SENSE/SELECT on SANYO derivatives, such as * Optorite, is addressed; * - Linux can't open(2) a socket by /dev/fd/N, replace it with dup(2); * - more relaxed command line option parsing and simultaneously a * zealous check to make sure that no mkisofs options are passed * along with -[ZM] /dev/cdrom=image; * - report I/O error if input stream was less than 64K; * - -M /dev/cdrom=/dev/zero didn't relocate the lead-out in DVD-RW * Restricted Overwrite; * 5.13: * - workarounds for Panasonic/MATSUSHITA DVD-RAM LF-D310; * - Solaris: media load upon start-up; * 5.14: * - LG GSA-4040B failed to auto-format DVD+RW blanks; * - '| growisofs -Z /dev/cdrom=/dev/fd/0' failed with "already carries * isofs" even when running interactively, so I check on /dev/tty * instead of isatty(0); * - error output was confusing when overburn condition was raised in * dry-run mode; * - more sane default drain buffer size to minimize system load when * unit fails to return usable buffer utilization statistics under * "LONG WRITE IN PROGRESS" condition; * - progress indicator process was orphaned if -Z /dev/cdrom=file.iso * terminated prematurely; * - -overburn -Z /dev/cdrom=file.iso printed two "ignored" messages; * - Solaris: use large-file API in setup_fds; * - HP-UX: HP-UX support is contributed by HP; * - block signals in the beginning of recording, formally it shouldn't * be necessary, but is apparently needed for some units (is it?); * - prepare code for -speed even in DVD+ context, need a test-case... * - TEAC DV-W50D and Lite-On LDW-811S failed to set recording velocity, * deploy GET PERFORMANCE/SET STREAMING commands; * - Lite-On LDW-811S returns 0s in Write Speed descriptors in page 2A, * this would cause a problem if DVD+ speed control was implemented; * 5.15: * - confusing output when DAO mode is manually engaged and DVD-RW media * is minimally blanked; * - complement -use-the-force-luke=dao[:size] to arrange for piping * non-iso images in DAO mode (size is to be expressed in 2KB chunks); * - Pioneer DVR-x06 apparently needs larger timeout to avoid "the LUN * appears to be stuck" message in the beginning of DAO recording; * - HP-UX: fix-up umount code; * - HP-UX: make sure user doesn't pass /dev/rscsi/cXtYlZ, they should * stick to /dev/rdsk/cXtYdZ; * - implement -use-the-force-luke=seek:N -Z /dev/dvd=image to arrange * for 'builtin_dd if=image of=/dev/dvd obs=32k seek=N/16' (note that * N is expected to be expressed in 2KB chunks); * - skip overwrite check for blank media to avoid read errors at start, * which reportedly may cause bus reset in some configurations; * - make get_mmc_profile load media, explicit media load used to be on * per platform basis, while it doesn't have to; * - postpone handle_events till after dry-run checkpoint; * - error reporting revised; * - Optorite seems to insist on resuming suspended DVD+RW format, at * least it's apparently the only way to get *reliable* results * (formally this contradicts specification, which explicitly states * that format is to be resumed automatically and transparently); * - FreeBSD: FreeBSD 5-CURRENT since 2003-08-24, including 5.2 fails * to pull sense data automatically, at least for ATAPI transport, * so I reach for it myself (it's apparently a kernel bug, which * eventually will be fixed, but I keep the workaround code just in * case); * - -speed option in DVD+ context is enabled, upon release tested with * Plextor PX-708A; * - make builtin_dd print amount of transferred data, together with * -use-the-force-luke=seek:N it's easier to maintain "tar-formatted" * rewritable media; * 5.16: * - brown-bag bug in "LONG WRITE IN PROGRESS" code path; * 5.17: * - Linux: fix for /proc/sys/dev/cdrom/check_media set to 1; * - HP-UX: INQUIRY buffer is required to be 128 bytes. Well, "required" * is wrong word in this context, as it's apparently a kernel bug * addressed in PHKL_30038 (HPUX 11.11) and PHKL_30039 (HPUX 11.23). * This "change" affects all dvd+rw-tools, but I don't bump their * version numbers for this, as it's an "ugly" workaround for an * *external* problem; * - switch to GET PERFORMANCE even for current write speed (most * notably required for NEC and derivatives); * - the above change required adaptations for Pioneer and LG units, * which don't/fail to provide current write speed through GET * PERFORMANCE despite the fact that the command is mandatory; * - HP-UX: retain root privileges in setup_fds, SIOC_IO requires them; * - fix for COMMAND SEQUENCE ERROR in the beginning of DVD-recording; * - drop privileges prior mkisofs -version; * 5.18: * - refuse to run if ${SUDO_COMMAND} is set; * - minimize amount of compiler warnings on 64-bit platforms; * - skip count-down if no_tty_check is set; * - -use-the-force-luke=tracksize:size option by suggestion from K3b; * - Linux: fix for "Bad file descriptor" with DVD+RW kernel patch; * 5.19: * - IRIX: IRIX 6.x port is added; * - Solaris: get rid of media reload, which made it possible to improve * volume manager experience as well; * - address speed verification issues with NEC ND-2500 and Plextor * PX-708A; * - make DVD-RAM work in "poor-man" mode; * - average write speed report at the end of recording; * - LG GSA-4081B fails to "SET STREAMING" with "LBA OUT OF RANGE" for * DVD+RW media, but not e.g. DVD-R; * 5.20: * - DVD-RAM reload if recorded with -poor-man; * - -use-the-force-luke=wrvfy for WRITE AND VERIFY(10); * - "flushing cache" takes forever, from 5.19-1; * - HP-UX: inconsistency between /dev/rdsk and /dev/rscsi names; * - handle non-fatal OPC errors; * - DVD+R Double Layer support; * - -use-the-force-luke=4gms to allow ISO9660 directory structures * to cross 4GB boundary, the option is effective only with DVD+R DL * and for data to be accessible under Linux isofs a kernel patch is * required; * - more sane sanity check for -use-the-force-luke=tracksize:N; * - -use-the-force-luke=break:size to set Layer Break position for * Double Layer recordings; * - speed verification issue with 8x AccessTek derivatives addressed; * - -use-the-force-luke=noload to leave tray ejected at the end; * - allow to resume incomplete sessions recorded with -M option; * - Layer Break position sanity check with respect to dataset size; * - #if directive to get rid of sudo check at compile time with * 'make WARN=-DI_KNOW_ALL_ABOUT_SUDO'; * 5.21: * - Linux: fix for kernel version 2.6>=8, 2.6.8 itself is deficient, * but the problem can be worked around by installing this version * set-root-uid; * 6.0: * - fix for DVD+R recordings in Samsung TS-H542A; * - DVD-R Dual Layer DAO and Incremental support; * - versioning harmonization; * - multi-threaded(*) design; * *) apparently strace-ing NPTL processes can disrupt synchroni- * zation between threads and cause a deadlock condition. If * you ought to strace growisofs, make sure it's started with * LD_ASSUME_KERNEL environment variable set to 2.4. * - asynchronous ring buffer implementation; * - Win32/Mingw32 port [for platform-specific notes see * http://fy.chalmers.se/~appro/linux/DVD+RW/tools/win32/]; * - refine Pioneer strategies; * - WRITE procedure to recognize "IN PROCESS OF BECOMING READY" * [observed on newer Lite-On 1693S firmware and NEC]; * - allow for more intuitive interpretation of -speed factor with * units returning minimal velocity other than 1x; * - -use-the-force-luke=noopc to skip OPC altogether; * - implement 50% check for DVD-R DL; * - demote failure to change speed to warning; * 6.1: * - FreeBSD: improve backward binary compatibility; * - Linux: default rlimit for locked pages is way too small [note * that in order to allocate ring buffer larger than default 32MB * through command line option, you have to increase memorylocked * limit accordingly prior application start]; * - make -use-the-force-luke=noload, which leaves tray open, work; * - DEFAULT_BUF_SIZE_MB is a macro, which can be redefined at * compile time with 'make WARN=-DDEFAULT_BUF_SIZE_MB=[16|64]' to * change the default ring buffer size; * -
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -