New command -scsi_dev_family, new -as cdrecord option drive_scsi_dev_family=
This commit is contained in:
parent
0cc08e00c0
commit
027e401ef9
@ -28,6 +28,7 @@ isoburn_get_mount_params;
|
||||
isoburn_igopt_attach_jte;
|
||||
isoburn_igopt_destroy;
|
||||
isoburn_igopt_detach_jte;
|
||||
isoburn_igopt_get_appended_as_apm;
|
||||
isoburn_igopt_get_appended_as_gpt;
|
||||
isoburn_igopt_get_data_start;
|
||||
isoburn_igopt_get_disc_label;
|
||||
@ -42,6 +43,7 @@ isoburn_igopt_get_out_charset;
|
||||
isoburn_igopt_get_over_mode;
|
||||
isoburn_igopt_get_over_ugid;
|
||||
isoburn_igopt_get_part_flags;
|
||||
isoburn_igopt_get_part_like_isohybrid;
|
||||
isoburn_igopt_get_partition_img;
|
||||
isoburn_igopt_get_prep_partition;
|
||||
isoburn_igopt_get_pvd_times;
|
||||
@ -55,6 +57,7 @@ isoburn_igopt_get_tail_blocks;
|
||||
isoburn_igopt_get_untranslated_name_len;
|
||||
isoburn_igopt_get_write_type;
|
||||
isoburn_igopt_new;
|
||||
isoburn_igopt_set_appended_as_apm;
|
||||
isoburn_igopt_set_appended_as_gpt;
|
||||
isoburn_igopt_set_disc_label;
|
||||
isoburn_igopt_set_efi_bootp;
|
||||
@ -67,6 +70,7 @@ isoburn_igopt_set_out_charset;
|
||||
isoburn_igopt_set_over_mode;
|
||||
isoburn_igopt_set_over_ugid;
|
||||
isoburn_igopt_set_part_flag;
|
||||
isoburn_igopt_set_part_like_isohybrid;
|
||||
isoburn_igopt_set_partition_img;
|
||||
isoburn_igopt_set_prep_partition;
|
||||
isoburn_igopt_set_pvd_times;
|
||||
@ -287,6 +291,7 @@ Xorriso_option_rollback;
|
||||
Xorriso_option_rom_toc_scan;
|
||||
Xorriso_option_rr_reloc_dir;
|
||||
Xorriso_option_scdbackup_tag;
|
||||
Xorriso_option_scsi_dev_family;
|
||||
Xorriso_option_scsi_log;
|
||||
Xorriso_option_session_log;
|
||||
Xorriso_option_setfacli;
|
||||
|
@ -207,6 +207,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
||||
m->displacement_sign= 0;
|
||||
m->read_fs= 0;
|
||||
m->drives_exclusive= 1;
|
||||
m->linux_scsi_dev_family= 0;
|
||||
m->early_stdio_test= 0;
|
||||
m->cache_num_tiles= 0;
|
||||
m->cache_tile_blocks= 0;
|
||||
|
@ -329,10 +329,11 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
|
||||
aquire_flag|= 64;
|
||||
if(flag & 128)
|
||||
aquire_flag|= 256;
|
||||
burn_preset_device_open(xorriso->drives_exclusive, 0, 0);
|
||||
burn_preset_device_open(xorriso->drives_exclusive |
|
||||
(xorriso->linux_scsi_dev_family << 2), 0, 0);
|
||||
burn_allow_drive_role_4(1 | (xorriso->early_stdio_test & 14));
|
||||
ret= isoburn_drive_aquire(&dinfo, libburn_adr, aquire_flag);
|
||||
burn_preset_device_open(1, 0, 0);
|
||||
burn_preset_device_open(1 | (xorriso->linux_scsi_dev_family << 2), 0, 0);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if(ret<=0) {
|
||||
if(flag & 128)
|
||||
@ -3404,3 +3405,10 @@ int Xorriso_pretend_full_disc(struct XorrisO *xorriso, int flag)
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_scsi_dev_family(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
burn_preset_device_open(xorriso->drives_exclusive | (xorriso->linux_scsi_dev_family << 2), 0, 0);
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
@ -54,6 +54,7 @@ int Xorriso_cdrskin_help(struct XorrisO *xorriso, int flag)
|
||||
"\t-version\tprint version information and exit emulation",
|
||||
"\t--devices\tprint list of available MMC drives and exit emulation",
|
||||
"\tdev=target\tpseudo-SCSI target to use as CD-Recorder",
|
||||
"\tdrive_scsi_dev_family=sr|scd|sg\t\tselect Linux device type",
|
||||
"\t-v\t\tincrement verbose level by one",
|
||||
"\t-V\t\tincrement SCSI command transport verbose level by one",
|
||||
"\t-checkdrive\tcheck if a driver for the drive is present",
|
||||
@ -126,7 +127,7 @@ int Xorriso_cdrskin(struct XorrisO *xorriso, char *whom, int argc, char **argv,
|
||||
"gracetime=",
|
||||
|
||||
"assert_write_lba=", "fifo_start_at=", "dev_translation=",
|
||||
"drive_scsi_dev_family=", "fallback_program=",
|
||||
"fallback_program=",
|
||||
"tao_to_sao_tsize=",
|
||||
|
||||
"direct_write_amount=", "msifile=",
|
||||
@ -346,6 +347,11 @@ no_volunteer:;
|
||||
cpt= strchr(argpt, '=') + 1;
|
||||
Xorriso_option_modesty_on_drive(xorriso, cpt, 0);
|
||||
|
||||
} else if(strncmp(argpt, "-drive_scsi_dev_family=", 23) == 0 ||
|
||||
strncmp(argpt, "drive_scsi_dev_family=", 22) == 0) {
|
||||
cpt= strchr(argpt, '=') + 1;
|
||||
Xorriso_option_scsi_dev_family(xorriso, cpt, 0);
|
||||
|
||||
} else if(strncmp(argpt, "-stdio_sync=", 12)==0 ||
|
||||
strncmp(argpt, "stdio_sync=", 11)==0) {
|
||||
cpt= strchr(argpt, '=') + 1;
|
||||
|
@ -1090,7 +1090,8 @@ int Xorriso_mount(struct XorrisO *xorriso, char *dev, int adr_mode,
|
||||
strncmp(dev, "mmc:", 4) != 0)
|
||||
sprintf(libburn_adr, "stdio:%s", dev);
|
||||
burn_preset_device_open(
|
||||
xorriso->drives_exclusive && !(xorriso->mount_opts_flag & 1), 0, 0);
|
||||
(xorriso->drives_exclusive && !(xorriso->mount_opts_flag & 1)) |
|
||||
(xorriso->linux_scsi_dev_family << 2), 0, 0);
|
||||
aquire_flag= 1;
|
||||
if((xorriso->toc_emulation_flag & 2) && adr_mode == 3)
|
||||
aquire_flag|= 16;
|
||||
@ -1099,7 +1100,7 @@ int Xorriso_mount(struct XorrisO *xorriso, char *dev, int adr_mode,
|
||||
if(xorriso->toc_emulation_flag & 8)
|
||||
aquire_flag|= 512;
|
||||
ret= isoburn_drive_aquire(&dinfo, libburn_adr, aquire_flag);
|
||||
burn_preset_device_open(1, 0, 0);
|
||||
burn_preset_device_open(1 | (xorriso->linux_scsi_dev_family << 2), 0, 0);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if(ret <= 0)
|
||||
{ret= 0; goto ex;}
|
||||
|
@ -1710,6 +1710,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
||||
" those lists empty. Defaulty entry in \"risky\" is \"/dev\".",
|
||||
" -grow_blindly \"off\"|predicted_nwa",
|
||||
" Switch between modifying and blind growing.",
|
||||
" -scsi_dev_family \"default\"|\"sr\"|\"scd\"|\"sg\"",
|
||||
" Linux specific: Choose device file type.",
|
||||
" -read_speed number[\"k/s\"|\"m/s\"|\"[x]CD\"|\"[x]DVD\"|\"[x]BD\"]",
|
||||
" Set the read speed. Default is \"none\" = do not set speed",
|
||||
" before reading.",
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
|
||||
|
||||
Copyright 2007-2015 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
Copyright 2007-2016 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
|
||||
Provided under GPL version 2 or later.
|
||||
|
||||
@ -779,6 +779,28 @@ int Xorriso_option_scdbackup_tag(struct XorrisO *xorriso, char *listname,
|
||||
}
|
||||
|
||||
|
||||
/* Command -scsi_dev_family */
|
||||
int Xorriso_option_scsi_dev_family(struct XorrisO *xorriso, char *mode,
|
||||
int flag)
|
||||
{
|
||||
if(strcmp(mode, "default") == 0)
|
||||
xorriso->linux_scsi_dev_family= 0;
|
||||
else if(strcmp(mode, "sr") == 0)
|
||||
xorriso->linux_scsi_dev_family= 1;
|
||||
else if(strcmp(mode, "scd") == 0)
|
||||
xorriso->linux_scsi_dev_family= 2;
|
||||
else if(strcmp(mode, "sg") == 0)
|
||||
xorriso->linux_scsi_dev_family= 4;
|
||||
else {
|
||||
sprintf(xorriso->info_text, "-scsi_dev_family: unknown family '%s'", mode);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
Xorriso_scsi_dev_family(xorriso, 0);
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/* Option -scsi_log */
|
||||
int Xorriso_option_scsi_log(struct XorrisO *xorriso, char *mode, int flag)
|
||||
{
|
||||
|
@ -541,7 +541,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
||||
"prog","prog_help","publisher","quoted_not_list","quoted_path_list",
|
||||
"read_fs","read_speed","reassure","report_about",
|
||||
"report_el_torito","report_system_area","rockridge",
|
||||
"rom_toc_scan","rr_reloc_dir","scsi_log",
|
||||
"rom_toc_scan","rr_reloc_dir","scsi_dev_family","scsi_log",
|
||||
"session_log","sh_style_result","signal_handling","sleep",
|
||||
"speed","split_size","status","status_history_max",
|
||||
"stdio_sync","stream_recording","system_id","temp_mem_limit","toc_of",
|
||||
@ -680,6 +680,7 @@ int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
|
||||
"ecma119_map",
|
||||
"disk_dev_ino", "rom_toc_scan", "calm_drive", "ban_stdio_write",
|
||||
"early_stdio_test", "data_cache_size",
|
||||
"scsi_dev_family",
|
||||
|
||||
"* Character sets:",
|
||||
"charset", "local_charset",
|
||||
@ -1721,6 +1722,10 @@ next_command:;
|
||||
(*idx)+= 2;
|
||||
ret= Xorriso_option_scdbackup_tag(xorriso, arg1, arg2, 0);
|
||||
|
||||
} else if(strcmp(cmd, "scsi_dev_family") == 0) {
|
||||
(*idx)++;
|
||||
ret= Xorriso_option_scsi_dev_family(xorriso, arg1, 0);
|
||||
|
||||
} else if(strcmp(cmd, "scsi_log") == 0) {
|
||||
(*idx)++;
|
||||
ret= Xorriso_option_scsi_log(xorriso, arg1, 0);
|
||||
|
@ -2775,6 +2775,8 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
static char channel_prefixes[4][4]= {".","R","I","M"};
|
||||
static char load_names[][20]= {"auto", "session", "track", "lba", "volid"};
|
||||
static int max_load_mode= 4;
|
||||
static char scsi_family[8][8]=
|
||||
{"default", "sr", "scd", "st", "sg", "", "", ""};
|
||||
struct Xorriso_lsT *paths, *leafs, *s, *plst, *vlst;
|
||||
|
||||
Xorriso_alloc_meM(sfe, char, 5 * SfileadrL + 80);
|
||||
@ -3750,6 +3752,12 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
}
|
||||
}
|
||||
|
||||
is_default= (xorriso->linux_scsi_dev_family == 0);
|
||||
sprintf(line, "-scsi_dev_family %s\n",
|
||||
scsi_family[xorriso->linux_scsi_dev_family & 7]);
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
do_single= 0;
|
||||
dev_filter= filter;
|
||||
if(dev_filter != NULL) {
|
||||
|
@ -9,7 +9,7 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH XORRECORD 1 "Version 1.4.3, Feb 05, 2016"
|
||||
.TH XORRECORD 1 "Version 1.4.3, Mar 18, 2016"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
@ -527,6 +527,25 @@ Afterwards end emulation without performing any drive operation.
|
||||
Only if used as first command line argument this option
|
||||
prevents reading and interpretation of startup files. See section FILES below.
|
||||
.TP
|
||||
\fBdrive_scsi_dev_family=sr|sdc|sg|default\fR
|
||||
GNU/Linux specific:
|
||||
.br
|
||||
By default, cdrskin tries to map Linux drive addresses to /dev/sr* before
|
||||
they get opened for operating the drive. This coordinates well with
|
||||
other use cases of optical drives, like mount(8). But since year 2010
|
||||
all /dev/sr* share a global lock which allows only one drive to process
|
||||
an SCSI command while all others have to wait for its completion.
|
||||
This yields awful throughput if more than one drive is writing or reading
|
||||
simultaneously.
|
||||
.br
|
||||
The global lock is not applied to device files /dev/sg* and also not with
|
||||
the system calls read(2), write(2). But ioctl(SG_IO) is affected, which is
|
||||
needed to perform the SCSI commands for optical burning.
|
||||
.br
|
||||
So for simultaneous burn runs on modern GNU/Linux it is advisable to use
|
||||
drive_scsi_dev_family="sg". The drive addresses may then well be given as
|
||||
/dev/sr* but will nevertheless get used as /dev/sg*.
|
||||
.TP
|
||||
\fB--grow_overwriteable_iso\fR
|
||||
Enable emulation of multi\-session writing on overwriteable media which
|
||||
contain an ISO 9660 filesystem. This emulation is learned from growisofs \-M
|
||||
@ -589,7 +608,8 @@ reaches a given low percentage value.
|
||||
This can ease the load on operating system and drive controller and thus help
|
||||
with achieving better input bandwidth if disk and burner are not on independent
|
||||
controllers (like hda and hdb). It may also help with simultaneous burns on
|
||||
different burners with Linux kernels like 3.16. On the other hand it increases
|
||||
different burners with Linux kernels like 3.16, if one has reason not to fix
|
||||
the problem by drive_scsi_dev_family="sg". On the other hand it increases
|
||||
the risk of buffer underflow and thus reduced write speed.
|
||||
.br
|
||||
Some burners are not suitable because they
|
||||
|
@ -498,6 +498,23 @@ File: xorrecord.info, Node: NonCdrecord, Next: ExDevices, Prev: Verbous, Up:
|
||||
Only if used as first command line argument this option prevents
|
||||
reading and interpretation of startup files. See section FILES
|
||||
below.
|
||||
drive_scsi_dev_family=sr|sdc|sg|default
|
||||
GNU/Linux specific:
|
||||
By default, cdrskin tries to map Linux drive addresses to /dev/sr*
|
||||
before they get opened for operating the drive. This coordinates
|
||||
well with other use cases of optical drives, like mount(8). But
|
||||
since year 2010 all /dev/sr* share a global lock which allows only
|
||||
one drive to process an SCSI command while all others have to wait
|
||||
for its completion. This yields awful throughput if more than one
|
||||
drive is writing or reading simultaneously.
|
||||
The global lock is not applied to device files /dev/sg* and also
|
||||
not with the system calls read(2), write(2). But ioctl(SG_IO) is
|
||||
affected, which is needed to perform the SCSI commands for optical
|
||||
burning.
|
||||
So for simultaneous burn runs on modern GNU/Linux it is advisable
|
||||
to use drive_scsi_dev_family="sg". The drive addresses may then
|
||||
well be given as /dev/sr* but will nevertheless get used as
|
||||
/dev/sg*.
|
||||
--grow_overwriteable_iso
|
||||
Enable emulation of multi-session writing on overwriteable media
|
||||
which contain an ISO 9660 filesystem. This emulation is learned
|
||||
@ -553,8 +570,9 @@ modesty_on_drive=parameter[:parameters]
|
||||
thus help with achieving better input bandwidth if disk and burner
|
||||
are not on independent controllers (like hda and hdb). It may also
|
||||
help with simultaneous burns on different burners with Linux
|
||||
kernels like 3.16. On the other hand it increases the risk of
|
||||
buffer underflow and thus reduced write speed.
|
||||
kernels like 3.16, if one has reason not to fix the problem by
|
||||
drive_scsi_dev_family="sg". On the other hand it increases the
|
||||
risk of buffer underflow and thus reduced write speed.
|
||||
Some burners are not suitable because they report buffer fill with
|
||||
granularity too coarse in size or time, or expect their buffer to
|
||||
be filled to the top before they go to full speed.
|
||||
@ -851,9 +869,9 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
|
||||
|
||||
* --devices get list of drives: DriveAddr. (line 8)
|
||||
* --grow_overwriteable_iso emulate ISO 9660 multi-session: NonCdrecord.
|
||||
(line 12)
|
||||
(line 29)
|
||||
* --multi_if_possible apply -multi if medium is suitable: NonCdrecord.
|
||||
(line 32)
|
||||
(line 49)
|
||||
* --no_rc do not execute xorriso startup files: NonCdrecord. (line 8)
|
||||
* -atip inquire medium state: Inquire. (line 14)
|
||||
* -checkdrive inquire drive CD capabilities: Inquire. (line 11)
|
||||
@ -866,7 +884,7 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
|
||||
* -inq inquire drive identifiers: Inquire. (line 8)
|
||||
* -isosize obtain track size from ISO 9660 superblock: SetBurn.
|
||||
(line 137)
|
||||
* -modesty_on_drive keep drive buffer hungry: NonCdrecord. (line 56)
|
||||
* -modesty_on_drive keep drive buffer hungry: NonCdrecord. (line 73)
|
||||
* -msinfo retrieve multi-session info: Inquire. (line 43)
|
||||
* -multi keep media appendable after burn run: SetBurn. (line 89)
|
||||
* -nopad disable adding of bytes to end of track: SetBurn. (line 151)
|
||||
@ -881,17 +899,19 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
|
||||
(line 113)
|
||||
* blank= make media re-usabable or format media: SetBurn. (line 28)
|
||||
* dev= address the drive to be used: DriveAddr. (line 21)
|
||||
* dvd_obs= set write transaction payload size: NonCdrecord. (line 49)
|
||||
* drive_scsi_dev_family= Linux device type to be used: NonCdrecord.
|
||||
(line 12)
|
||||
* dvd_obs= set write transaction payload size: NonCdrecord. (line 66)
|
||||
* fs= set program fifo size: SetBurn. (line 174)
|
||||
* minbuf= keep drive buffer hungry: SetBurn. (line 205)
|
||||
* padsize= add bytes to end of track: SetBurn. (line 144)
|
||||
* speed= set write speed: SetBurn. (line 189)
|
||||
* stdio_sync= control stdio buffer: NonCdrecord. (line 98)
|
||||
* stdio_sync= control stdio buffer: NonCdrecord. (line 116)
|
||||
* stream_recording= try to get full speed on DVD-RAM, BD: NonCdrecord.
|
||||
(line 39)
|
||||
(line 56)
|
||||
* tsize= set a fixed track size: SetBurn. (line 126)
|
||||
* write_start_address= set block address for write start: NonCdrecord.
|
||||
(line 92)
|
||||
(line 110)
|
||||
|
||||
|
||||
File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
@ -905,20 +925,22 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
* Accessing drive, wait for stdin, -waiti: SetBurn. (line 113)
|
||||
* Bugs, reporting: Bugreport. (line 6)
|
||||
* Data track, announce, -data: SetBurn. (line 157)
|
||||
* Defect management, control, stream_recording=: NonCdrecord. (line 39)
|
||||
* Defect management, control, stream_recording=: NonCdrecord. (line 56)
|
||||
* Drive, address, dev=: DriveAddr. (line 21)
|
||||
* Drive, get list of, --devices: DriveAddr. (line 8)
|
||||
* Drive, inquire CD capabilities, -checkdrive: Inquire. (line 11)
|
||||
* Drive, inquire identifiers, -inq: Inquire. (line 8)
|
||||
* Drive, Linux device type, drive_scsi_dev_family: NonCdrecord.
|
||||
(line 12)
|
||||
* Eject, the tray, -eject: SetBurn. (line 211)
|
||||
* Examples: Examples. (line 6)
|
||||
* Fifo, set size, fs=: SetBurn. (line 174)
|
||||
* Full speed, on DVD-RAM and BD, stream_recording=: NonCdrecord.
|
||||
(line 39)
|
||||
(line 56)
|
||||
* Media types, _definiton: Standards. (line 23)
|
||||
* Media, blank, blank=: SetBurn. (line 28)
|
||||
* Media, format, blank=: SetBurn. (line 28)
|
||||
* Media, keep appendable, --multi_if_possible: NonCdrecord. (line 32)
|
||||
* Media, keep appendable, --multi_if_possible: NonCdrecord. (line 49)
|
||||
* Media, keep appendable, -multi: SetBurn. (line 89)
|
||||
* Media, make re-usable, blank=: SetBurn. (line 28)
|
||||
* medium content, inquire, -toc: Inquire. (line 22)
|
||||
@ -926,7 +948,7 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
* MMC, _definiton: Standards. (line 6)
|
||||
* multi-session info, retrieve, -msinfo: Inquire. (line 43)
|
||||
* Multi-session, emulate ISO 9660, --grow_overwriteable_iso: NonCdrecord.
|
||||
(line 12)
|
||||
(line 29)
|
||||
* Options, overview, -help: Verbous. (line 30)
|
||||
* Overwritable media, _definiton: Standards. (line 30)
|
||||
* Padding, at end of track, padsize=: SetBurn. (line 144)
|
||||
@ -941,21 +963,21 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
* Track size, obtain from ISO 9660, -isosize: SetBurn. (line 137)
|
||||
* Track size, set fixed, tsize=: SetBurn. (line 126)
|
||||
* Track, _definiton: Standards. (line 13)
|
||||
* Transaction size, set, dvd_obs=: NonCdrecord. (line 49)
|
||||
* Transaction size, set, dvd_obs=: NonCdrecord. (line 66)
|
||||
* Tray, eject, -eject: SetBurn. (line 211)
|
||||
* Verbosity, increase, -v: Verbous. (line 16)
|
||||
* Verbosity, SCSI commands, -V: Verbous. (line 20)
|
||||
* Version, report, -version: Verbous. (line 8)
|
||||
* Write simulation , control, -dummy: SetBurn. (line 106)
|
||||
* Write start address, set, write_start_address=: NonCdrecord.
|
||||
(line 92)
|
||||
(line 110)
|
||||
* Write type, SAO/DAO, -dao: SetBurn. (line 172)
|
||||
* Write type, SAO/DAO, -sao: SetBurn. (line 168)
|
||||
* Write type, TAO, -tao: SetBurn. (line 162)
|
||||
* Write, buffer syncing, stdio_sync=: NonCdrecord. (line 98)
|
||||
* Write, buffer syncing, stdio_sync=: NonCdrecord. (line 116)
|
||||
* Write, drive buffer, -immed: SetBurn. (line 208)
|
||||
* Write, drive buffer, minbuf=: SetBurn. (line 205)
|
||||
* Write, drive buffer, modesty_on_drive=: NonCdrecord. (line 56)
|
||||
* Write, drive buffer, modesty_on_drive=: NonCdrecord. (line 73)
|
||||
* xorriso, mkisofs emulation: Xorriso. (line 6)
|
||||
* xorriso, options: Options. (line 6)
|
||||
|
||||
@ -973,21 +995,21 @@ Node: Inquire7618
|
||||
Node: SetBurn10487
|
||||
Node: Verbous20938
|
||||
Node: NonCdrecord22488
|
||||
Node: Examples28246
|
||||
Node: ExDevices28907
|
||||
Node: ExMedium29125
|
||||
Node: ExBlank29388
|
||||
Node: ExFormat29609
|
||||
Node: ExDeformat30127
|
||||
Node: ExIsoSingle30394
|
||||
Node: ExIsoMulti30678
|
||||
Node: ExIsoFly32312
|
||||
Node: ExAfio32983
|
||||
Node: Files33981
|
||||
Node: Seealso34537
|
||||
Node: Bugreport34900
|
||||
Node: Legal35491
|
||||
Node: CommandIdx36420
|
||||
Node: ConceptIdx39696
|
||||
Node: Examples29314
|
||||
Node: ExDevices29975
|
||||
Node: ExMedium30193
|
||||
Node: ExBlank30456
|
||||
Node: ExFormat30677
|
||||
Node: ExDeformat31195
|
||||
Node: ExIsoSingle31462
|
||||
Node: ExIsoMulti31746
|
||||
Node: ExIsoFly33380
|
||||
Node: ExAfio34051
|
||||
Node: Files35049
|
||||
Node: Seealso35605
|
||||
Node: Bugreport35968
|
||||
Node: Legal36559
|
||||
Node: CommandIdx37488
|
||||
Node: ConceptIdx40905
|
||||
|
||||
End Tag Table
|
||||
|
@ -50,7 +50,7 @@
|
||||
@c man .\" First parameter, NAME, should be all caps
|
||||
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
@c man .\" other parameters are allowed: see man(7), man(1)
|
||||
@c man .TH XORRECORD 1 "Version 1.4.3, Feb 05, 2016"
|
||||
@c man .TH XORRECORD 1 "Version 1.4.3, Mar 18, 2016"
|
||||
@c man .\" Please adjust this date whenever revising the manpage.
|
||||
@c man .\"
|
||||
@c man .\" Some roff macros, for reference:
|
||||
@ -732,6 +732,27 @@ Afterwards end emulation without performing any drive operation.
|
||||
Only if used as first command line argument this option
|
||||
prevents reading and interpretation of startup files. See section FILES below.
|
||||
@c man .TP
|
||||
@item drive_scsi_dev_family=sr|sdc|sg|default
|
||||
@kindex drive_scsi_dev_family= Linux device type to be used
|
||||
@cindex Drive, Linux device type, drive_scsi_dev_family
|
||||
GNU/Linux specific:
|
||||
@*
|
||||
By default, cdrskin tries to map Linux drive addresses to /dev/sr* before
|
||||
they get opened for operating the drive. This coordinates well with
|
||||
other use cases of optical drives, like mount(8). But since year 2010
|
||||
all /dev/sr* share a global lock which allows only one drive to process
|
||||
an SCSI command while all others have to wait for its completion.
|
||||
This yields awful throughput if more than one drive is writing or reading
|
||||
simultaneously.
|
||||
@*
|
||||
The global lock is not applied to device files /dev/sg* and also not with
|
||||
the system calls read(2), write(2). But ioctl(SG_IO) is affected, which is
|
||||
needed to perform the SCSI commands for optical burning.
|
||||
@*
|
||||
So for simultaneous burn runs on modern GNU/Linux it is advisable to use
|
||||
drive_scsi_dev_family="sg". The drive addresses may then well be given as
|
||||
/dev/sr* but will nevertheless get used as /dev/sg*.
|
||||
@c man .TP
|
||||
@item @minus{}@minus{}grow_overwriteable_iso
|
||||
@kindex @minus{}@minus{}grow_overwriteable_iso emulate ISO 9660 multi-session
|
||||
@cindex Multi-session, emulate ISO 9660, @minus{}@minus{}grow_overwriteable_iso
|
||||
@ -805,7 +826,8 @@ reaches a given low percentage value.
|
||||
This can ease the load on operating system and drive controller and thus help
|
||||
with achieving better input bandwidth if disk and burner are not on independent
|
||||
controllers (like hda and hdb). It may also help with simultaneous burns on
|
||||
different burners with Linux kernels like 3.16. On the other hand it increases
|
||||
different burners with Linux kernels like 3.16, if one has reason not to fix
|
||||
the problem by drive_scsi_dev_family="sg". On the other hand it increases
|
||||
the risk of buffer underflow and thus reduced write speed.
|
||||
@*
|
||||
Some burners are not suitable because they
|
||||
|
@ -9,7 +9,7 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH XORRISO 1 "Version 1.4.3, Feb 05, 2016"
|
||||
.TH XORRISO 1 "Version 1.4.3, Mar 18, 2016"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
@ -304,6 +304,12 @@ the path of their block device or of their generic character device. E.g.
|
||||
.br
|
||||
\-dev /dev/sg2
|
||||
.br
|
||||
By default xorriso will try to map the given address to /dev/hd* and /dev/sr*.
|
||||
The command \-scsi_dev_family can redirect the mapping from sr to scd or sg.
|
||||
The latter does not suffer from the concurrency problems which plague /dev/sr
|
||||
of Linux kernels since version 3. But it does not yield the same addresses
|
||||
which are used by mount(8) or by open(2) for read(2).
|
||||
.br
|
||||
On FreeBSD the device files have names like
|
||||
.br
|
||||
\-dev /dev/cd0
|
||||
@ -678,6 +684,26 @@ apply. See above paragraph "Libburn drives".
|
||||
An empty address string "" gives up the current output drive
|
||||
without acquiring a new one. No writing is possible without an output drive.
|
||||
.TP
|
||||
\fB\-scsi_dev_family\fR "default"|"sr"|"scd"|"sg"
|
||||
GNU/Linux specific:
|
||||
.br
|
||||
By default, xorriso tries to map Linux drive addresses to /dev/sr* before
|
||||
they get opened for operating the drive. This coordinates well with
|
||||
other use cases of optical drives, like mount(8). But since year 2010
|
||||
all /dev/sr* share a global lock which allows only one drive to process
|
||||
an SCSI command while all others have to wait for its completion.
|
||||
This yields awful throughput if more than one drive is writing or reading
|
||||
simultaneously.
|
||||
The global lock is not applied to device files /dev/sg* and also not if
|
||||
the xorriso drive address is prepended by "stdio:".
|
||||
.br
|
||||
So for simultaneous burn runs on modern GNU/Linux it is advisable to perform
|
||||
\-scsi_dev_family "sg" before any \-dev, \-indev, or \-outdev. The drive addresses
|
||||
may then well be given as /dev/sr* but will nevertheless get used as /dev/sg*.
|
||||
.br
|
||||
If you decide so, consider to put the command into a global startup file like
|
||||
/etc/opt/xorriso/rc.
|
||||
.TP
|
||||
\fB\-grow_blindly\fR "off"|predicted_nwa
|
||||
If predicted_nwa is a non\-negative number then perform blind growing rather
|
||||
than modifying if \-indev and \-outdev are set to different drives.
|
||||
@ -2940,9 +2966,11 @@ reaches a given low percentage value.
|
||||
.br
|
||||
This can ease the load on operating system and drive controller and thus help
|
||||
with achieving better input bandwidth if disk and burner are not on independent
|
||||
controllers (like hda and hdb). It may also help with simultaneous burns on
|
||||
different burners with Linux kernels like 3.16. On the other hand it increases
|
||||
the risk of buffer underflow and thus reduced write speed.
|
||||
controllers (like hda and hdb). It may also help with throughput problems of
|
||||
simultaneous burns on different burners with Linux kernels like 3.16, if one
|
||||
has reason not to fix the problem by \-scsi_dev_family "sg".
|
||||
On the other hand it increases the risk of buffer underflow and thus
|
||||
reduced write speed.
|
||||
.br
|
||||
Some burners are not suitable because they
|
||||
report buffer fill with granularity too coarse in size or time,
|
||||
|
@ -1998,6 +1998,12 @@ int Xorriso_option_rr_reloc_dir(struct XorrisO *xorriso, char *name, int flag);
|
||||
/* @since 0.4.4 */
|
||||
int Xorriso_option_scdbackup_tag(struct XorrisO *xorriso, char *list_path,
|
||||
char *record_name, int flag);
|
||||
|
||||
/* Command -scsi_dev_family */
|
||||
/* @since 1.4.4 */
|
||||
int Xorriso_option_scsi_dev_family(struct XorrisO *xorriso, char *mode,
|
||||
int flag);
|
||||
|
||||
/* Command -scsi_log */
|
||||
/* @since 0.5.0 */
|
||||
int Xorriso_option_scsi_log(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
@ -278,6 +278,12 @@ character device. E.g.
|
||||
-dev /dev/sr0
|
||||
-dev /dev/hdc
|
||||
-dev /dev/sg2
|
||||
By default xorriso will try to map the given address to /dev/hd* and
|
||||
/dev/sr*. The command -scsi_dev_family can redirect the mapping from sr
|
||||
to scd or sg. The latter does not suffer from the concurrency problems
|
||||
which plague /dev/sr of Linux kernels since version 3. But it does not
|
||||
yield the same addresses which are used by mount(8) or by open(2) for
|
||||
read(2).
|
||||
On FreeBSD the device files have names like
|
||||
-dev /dev/cd0
|
||||
On NetBSD:
|
||||
@ -626,6 +632,23 @@ acquire the drive.
|
||||
An empty address string "" gives up the current output drive
|
||||
without acquiring a new one. No writing is possible without an
|
||||
output drive.
|
||||
-scsi_dev_family "default"|"sr"|"scd"|"sg"
|
||||
GNU/Linux specific:
|
||||
By default, xorriso tries to map Linux drive addresses to /dev/sr*
|
||||
before they get opened for operating the drive. This coordinates
|
||||
well with other use cases of optical drives, like mount(8). But
|
||||
since year 2010 all /dev/sr* share a global lock which allows only
|
||||
one drive to process an SCSI command while all others have to wait
|
||||
for its completion. This yields awful throughput if more than one
|
||||
drive is writing or reading simultaneously. The global lock is not
|
||||
applied to device files /dev/sg* and also not if the xorriso drive
|
||||
address is prepended by "stdio:".
|
||||
So for simultaneous burn runs on modern GNU/Linux it is advisable
|
||||
to perform -scsi_dev_family "sg" before any -dev, -indev, or
|
||||
-outdev. The drive addresses may then well be given as /dev/sr*
|
||||
but will nevertheless get used as /dev/sg*.
|
||||
If you decide so, consider to put the command into a global startup
|
||||
file like /etc/opt/xorriso/rc.
|
||||
-grow_blindly "off"|predicted_nwa
|
||||
If predicted_nwa is a non-negative number then perform blind
|
||||
growing rather than modifying if -indev and -outdev are set to
|
||||
@ -2491,9 +2514,11 @@ according to the setting of command -acl.
|
||||
This can ease the load on operating system and drive controller and
|
||||
thus help with achieving better input bandwidth if disk and burner
|
||||
are not on independent controllers (like hda and hdb). It may also
|
||||
help with simultaneous burns on different burners with Linux
|
||||
kernels like 3.16. On the other hand it increases the risk of
|
||||
buffer underflow and thus reduced write speed.
|
||||
help with throughput problems of simultaneous burns on different
|
||||
burners with Linux kernels like 3.16, if one has reason not to fix
|
||||
the problem by -scsi_dev_family "sg". On the other hand it
|
||||
increases the risk of buffer underflow and thus reduced write
|
||||
speed.
|
||||
Some burners are not suitable because they report buffer fill with
|
||||
granularity too coarse in size or time, or expect their buffer to
|
||||
be filled to the top before they go to full speed.
|
||||
@ -5096,7 +5121,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -chown sets ownership in ISO image: Manip. (line 43)
|
||||
* -chown_r sets ownership in ISO image: Manip. (line 47)
|
||||
* -clone copies ISO directory tree: Insert. (line 170)
|
||||
* -close controls media closing: SetWrite. (line 371)
|
||||
* -close controls media closing: SetWrite. (line 373)
|
||||
* -close_damaged closes damaged track and session: Writing. (line 164)
|
||||
* -close_filter_list bans filter registration: Filter. (line 50)
|
||||
* -commit writes pending ISO image: Writing. (line 27)
|
||||
@ -5125,7 +5150,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
(line 57)
|
||||
* -drive_class controls drive accessability: Loading. (line 73)
|
||||
* -du show directory size in ISO image: Navigate. (line 75)
|
||||
* -dummy controls write simulation: SetWrite. (line 363)
|
||||
* -dummy controls write simulation: SetWrite. (line 365)
|
||||
* -dus show directory size in ISO image: Navigate. (line 78)
|
||||
* -dusx show directory size on disk: Navigate. (line 85)
|
||||
* -dux show directory size on disk: Navigate. (line 81)
|
||||
@ -5149,13 +5174,13 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -follow softlinks and mount points: SetInsert. (line 69)
|
||||
* -format formats media: Writing. (line 87)
|
||||
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 210)
|
||||
* -fs sets size of fifo: SetWrite. (line 366)
|
||||
* -fs sets size of fifo: SetWrite. (line 368)
|
||||
* -getfacl shows ACL in ISO image: Navigate. (line 60)
|
||||
* -getfacl_r shows ACL in ISO image: Navigate. (line 66)
|
||||
* -getfattr shows xattr in ISO image: Navigate. (line 69)
|
||||
* -getfattr_r shows xattr in ISO image: Navigate. (line 72)
|
||||
* -gid sets global ownership: SetWrite. (line 271)
|
||||
* -grow_blindly overides next writeable address: AqDrive. (line 43)
|
||||
* -grow_blindly overides next writeable address: AqDrive. (line 60)
|
||||
* -hardlinks controls handling of hard links: Loading. (line 134)
|
||||
* -help prints help text: Scripting. (line 19)
|
||||
* -hfsplus enables production of HFS+ partition: SetWrite. (line 14)
|
||||
@ -5211,7 +5236,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -out_charset sets output character set: SetWrite. (line 263)
|
||||
* -overwrite enables overwriting in ISO: SetInsert. (line 131)
|
||||
* -pacifier controls pacifier text form: Emulation. (line 166)
|
||||
* -padding sets amount or mode of image padding: SetWrite. (line 394)
|
||||
* -padding sets amount or mode of image padding: SetWrite. (line 396)
|
||||
* -page set terminal geometry: DialogCtl. (line 18)
|
||||
* -paste_in copies file into disk file: Restore. (line 114)
|
||||
* -pathspecs sets meaning of = with -add: SetInsert. (line 115)
|
||||
@ -5250,6 +5275,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -rom_toc_scan searches for sessions: Loading. (line 278)
|
||||
* -rr_reloc_dir sets name of relocation directory: SetWrite. (line 144)
|
||||
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 179)
|
||||
* -scsi_dev_family choose Linux device file type: AqDrive. (line 43)
|
||||
* -scsi_log reports SCSI commands: Scripting. (line 143)
|
||||
* -session_log logs written sessions: Scripting. (line 134)
|
||||
* -session_string composes session info line: Inquiry. (line 73)
|
||||
@ -5272,7 +5298,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -split_size enables large file splitting: SetInsert. (line 143)
|
||||
* -status shows current settings: Scripting. (line 44)
|
||||
* -status_history_max curbs -status history: Scripting. (line 52)
|
||||
* -stdio_sync controls stdio buffer: SetWrite. (line 356)
|
||||
* -stdio_sync controls stdio buffer: SetWrite. (line 358)
|
||||
* -stream_recording controls defect management: SetWrite. (line 303)
|
||||
* -system_id sets system id: SetWrite. (line 199)
|
||||
* -tell_media_space reports free space: Inquiry. (line 97)
|
||||
@ -5288,7 +5314,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
* -volid sets volume id: SetWrite. (line 162)
|
||||
* -volset_id sets volume set id: SetWrite. (line 182)
|
||||
* -volume_date sets volume timestamp: SetWrite. (line 205)
|
||||
* -write_type chooses TAO or SAO/DAO: SetWrite. (line 387)
|
||||
* -write_type chooses TAO or SAO/DAO: SetWrite. (line 389)
|
||||
* -x enables automatic execution order of arguments: ArgSort. (line 16)
|
||||
* -xattr controls handling of xattr (EA): Loading. (line 178)
|
||||
* -zisofs controls zisofs production: SetWrite. (line 274)
|
||||
@ -5453,6 +5479,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
* Jigdo Template Extraction, -jigdo: Jigdo. (line 33)
|
||||
* Jigdo Template Extraction, _definition: Jigdo. (line 6)
|
||||
* LBA, _definition: Drives. (line 17)
|
||||
* Linux device type, -scsi_dev_family: AqDrive. (line 43)
|
||||
* List delimiter, _definition: Processing. (line 9)
|
||||
* Local Character Set, _definition: Charset. (line 11)
|
||||
* MBR bootable/active flag, enforce: Bootable. (line 306)
|
||||
@ -5484,7 +5511,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
* Navigate, set ISO working directory, -cd: Navigate. (line 7)
|
||||
* Navigate, tell disk working directory, -pwdx: Navigate. (line 21)
|
||||
* Navigate, tell ISO working directory, -pwd: Navigate. (line 19)
|
||||
* Next writeable address, -grow_blindly: AqDrive. (line 43)
|
||||
* Next writeable address, -grow_blindly: AqDrive. (line 60)
|
||||
* Output Character Set, _definition: Charset. (line 26)
|
||||
* Overwriteable media, _definition: Media. (line 14)
|
||||
* Ownership, global in ISO image, -uid: SetWrite. (line 268)
|
||||
@ -5578,24 +5605,24 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
* Verify, preset -check_media, -check_media_defaults: Verify. (line 40)
|
||||
* Write, block size, -dvd_obs: SetWrite. (line 314)
|
||||
* Write, bootability, -boot_image: Bootable. (line 65)
|
||||
* Write, buffer syncing, -stdio_sync: SetWrite. (line 356)
|
||||
* Write, close media, -close: SetWrite. (line 371)
|
||||
* Write, buffer syncing, -stdio_sync: SetWrite. (line 358)
|
||||
* Write, close media, -close: SetWrite. (line 373)
|
||||
* Write, compliance to specs, -compliance: SetWrite. (line 56)
|
||||
* Write, defect management, -stream_recording: SetWrite. (line 303)
|
||||
* Write, disable Rock Ridge, -rockridge: SetWrite. (line 51)
|
||||
* Write, drive buffer, -modesty_on_drive: SetWrite. (line 320)
|
||||
* Write, enable HFS+, -hfsplus: SetWrite. (line 14)
|
||||
* Write, enable Joliet, -joliet: SetWrite. (line 10)
|
||||
* Write, fifo size, -fs: SetWrite. (line 366)
|
||||
* Write, fifo size, -fs: SetWrite. (line 368)
|
||||
* Write, free space, -tell_media_space: Inquiry. (line 97)
|
||||
* Write, log problematic disk files, -errfile_log: Scripting. (line 116)
|
||||
* Write, log written sessions, -session_log: Scripting. (line 134)
|
||||
* Write, padding image, -padding: SetWrite. (line 394)
|
||||
* Write, padding image, -padding: SetWrite. (line 396)
|
||||
* Write, pending ISO image, -commit: Writing. (line 27)
|
||||
* Write, predict image size, -print_size: Inquiry. (line 85)
|
||||
* Write, set speed, -speed: SetWrite. (line 285)
|
||||
* Write, simulation, -dummy: SetWrite. (line 363)
|
||||
* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 387)
|
||||
* Write, simulation, -dummy: SetWrite. (line 365)
|
||||
* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 389)
|
||||
* xattr, control handling, -xattr: Loading. (line 178)
|
||||
* xattr, set in ISO image, -setfattr: Manip. (line 103)
|
||||
* xattr, set in ISO image, -setfattr_list: Manip. (line 117)
|
||||
@ -5613,54 +5640,54 @@ Node: Model3406
|
||||
Node: Media6310
|
||||
Node: Methods8997
|
||||
Node: Drives11583
|
||||
Node: Extras15160
|
||||
Node: Processing19628
|
||||
Node: Dialog23263
|
||||
Node: Commands24952
|
||||
Node: ArgSort26629
|
||||
Node: AqDrive28123
|
||||
Node: Loading31178
|
||||
Node: Insert51285
|
||||
Node: SetInsert61869
|
||||
Node: Manip71188
|
||||
Node: CmdFind80971
|
||||
Node: Filter99274
|
||||
Node: Writing103896
|
||||
Node: SetWrite114053
|
||||
Node: Bootable136997
|
||||
Node: Jigdo160791
|
||||
Node: Charset165050
|
||||
Node: Exception168377
|
||||
Node: DialogCtl174506
|
||||
Node: Inquiry177108
|
||||
Node: Navigate185558
|
||||
Node: Verify193853
|
||||
Node: Restore203730
|
||||
Node: Emulation212343
|
||||
Node: Scripting222753
|
||||
Node: Frontend230535
|
||||
Node: Examples240170
|
||||
Node: ExDevices241348
|
||||
Node: ExCreate242009
|
||||
Node: ExDialog243309
|
||||
Node: ExGrowing244580
|
||||
Node: ExModifying245389
|
||||
Node: ExBootable245899
|
||||
Node: ExCharset246454
|
||||
Node: ExPseudo247350
|
||||
Node: ExCdrecord248277
|
||||
Node: ExMkisofs248597
|
||||
Node: ExGrowisofs249954
|
||||
Node: ExException251108
|
||||
Node: ExTime251566
|
||||
Node: ExIncBackup252024
|
||||
Node: ExRestore256050
|
||||
Node: ExRecovery256996
|
||||
Node: Files257568
|
||||
Node: Seealso258902
|
||||
Node: Bugreport259617
|
||||
Node: Legal260208
|
||||
Node: CommandIdx261220
|
||||
Node: ConceptIdx278262
|
||||
Node: Extras15525
|
||||
Node: Processing19993
|
||||
Node: Dialog23628
|
||||
Node: Commands25317
|
||||
Node: ArgSort26994
|
||||
Node: AqDrive28488
|
||||
Node: Loading32589
|
||||
Node: Insert52696
|
||||
Node: SetInsert63280
|
||||
Node: Manip72599
|
||||
Node: CmdFind82382
|
||||
Node: Filter100685
|
||||
Node: Writing105307
|
||||
Node: SetWrite115464
|
||||
Node: Bootable138508
|
||||
Node: Jigdo162302
|
||||
Node: Charset166561
|
||||
Node: Exception169888
|
||||
Node: DialogCtl176017
|
||||
Node: Inquiry178619
|
||||
Node: Navigate187069
|
||||
Node: Verify195364
|
||||
Node: Restore205241
|
||||
Node: Emulation213854
|
||||
Node: Scripting224264
|
||||
Node: Frontend232046
|
||||
Node: Examples241681
|
||||
Node: ExDevices242859
|
||||
Node: ExCreate243520
|
||||
Node: ExDialog244820
|
||||
Node: ExGrowing246091
|
||||
Node: ExModifying246900
|
||||
Node: ExBootable247410
|
||||
Node: ExCharset247965
|
||||
Node: ExPseudo248861
|
||||
Node: ExCdrecord249788
|
||||
Node: ExMkisofs250108
|
||||
Node: ExGrowisofs251465
|
||||
Node: ExException252619
|
||||
Node: ExTime253077
|
||||
Node: ExIncBackup253535
|
||||
Node: ExRestore257561
|
||||
Node: ExRecovery258507
|
||||
Node: Files259079
|
||||
Node: Seealso260413
|
||||
Node: Bugreport261128
|
||||
Node: Legal261719
|
||||
Node: CommandIdx262731
|
||||
Node: ConceptIdx279846
|
||||
|
||||
End Tag Table
|
||||
|
@ -50,7 +50,7 @@
|
||||
@c man .\" First parameter, NAME, should be all caps
|
||||
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
@c man .\" other parameters are allowed: see man(7), man(1)
|
||||
@c man .TH XORRISO 1 "Version 1.4.3, Feb 05, 2016"
|
||||
@c man .TH XORRISO 1 "Version 1.4.3, Mar 18, 2016"
|
||||
@c man .\" Please adjust this date whenever revising the manpage.
|
||||
@c man .\"
|
||||
@c man .\" Some roff macros, for reference:
|
||||
@ -434,6 +434,12 @@ the path of their block device or of their generic character device. E.g.
|
||||
@*
|
||||
-dev /dev/sg2
|
||||
@*
|
||||
By default xorriso will try to map the given address to /dev/hd* and /dev/sr*.
|
||||
The command -scsi_dev_family can redirect the mapping from sr to scd or sg.
|
||||
The latter does not suffer from the concurrency problems which plague /dev/sr
|
||||
of Linux kernels since version 3. But it does not yield the same addresses
|
||||
which are used by mount(8) or by open(2) for read(2).
|
||||
@*
|
||||
On FreeBSD the device files have names like
|
||||
@*
|
||||
-dev /dev/cd0
|
||||
@ -890,6 +896,29 @@ apply. See above paragraph "Libburn drives".
|
||||
An empty address string "" gives up the current output drive
|
||||
without acquiring a new one. No writing is possible without an output drive.
|
||||
@c man .TP
|
||||
@item -scsi_dev_family "default"|"sr"|"scd"|"sg"
|
||||
@kindex -scsi_dev_family choose Linux device file type
|
||||
@cindex Linux device type, -scsi_dev_family
|
||||
GNU/Linux specific:
|
||||
@*
|
||||
By default, xorriso tries to map Linux drive addresses to /dev/sr* before
|
||||
they get opened for operating the drive. This coordinates well with
|
||||
other use cases of optical drives, like mount(8). But since year 2010
|
||||
all /dev/sr* share a global lock which allows only one drive to process
|
||||
an SCSI command while all others have to wait for its completion.
|
||||
This yields awful throughput if more than one drive is writing or reading
|
||||
simultaneously.
|
||||
The global lock is not applied to device files /dev/sg* and also not if
|
||||
the xorriso drive address is prepended by "stdio:".
|
||||
@*
|
||||
So for simultaneous burn runs on modern GNU/Linux it is advisable to perform
|
||||
-scsi_dev_family "sg" before any -dev, -indev, or -outdev. The drive addresses
|
||||
may then well be given as /dev/sr* but will nevertheless get used as
|
||||
the matching /dev/sg*.
|
||||
@*
|
||||
If you decide so, consider to put the command into a global startup file like
|
||||
/etc/opt/xorriso/rc.
|
||||
@c man .TP
|
||||
@item -grow_blindly "off"|predicted_nwa
|
||||
@kindex -grow_blindly overides next writeable address
|
||||
@cindex Next writeable address, -grow_blindly
|
||||
@ -3446,9 +3475,11 @@ reaches a given low percentage value.
|
||||
@*
|
||||
This can ease the load on operating system and drive controller and thus help
|
||||
with achieving better input bandwidth if disk and burner are not on independent
|
||||
controllers (like hda and hdb). It may also help with simultaneous burns on
|
||||
different burners with Linux kernels like 3.16. On the other hand it increases
|
||||
the risk of buffer underflow and thus reduced write speed.
|
||||
controllers (like hda and hdb). It may also help with throughput problems of
|
||||
simultaneous burns on different burners with Linux kernels like 3.16, if one
|
||||
has reason not to fix the problem by -scsi_dev_family "sg".
|
||||
On the other hand it increases the risk of buffer underflow and thus
|
||||
reduced write speed.
|
||||
@*
|
||||
Some burners are not suitable because they
|
||||
report buffer fill with granularity too coarse in size or time,
|
||||
|
@ -282,6 +282,8 @@ struct XorrisO { /* the global context of xorriso */
|
||||
|
||||
int drives_exclusive; /* burn_preset_device_open() param exclusive */
|
||||
|
||||
int linux_scsi_dev_family; /* 0= default, 1= sr, 2= scd, (3= st), 4= sg */
|
||||
|
||||
int early_stdio_test; /* For burn_allow_drive_role_4():
|
||||
bit1= Test whether a stdio drive can be opened for
|
||||
read-write resp. read-only resp. write only.
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2016.03.15.203626"
|
||||
#define Xorriso_timestamP "2016.03.18.135548"
|
||||
|
@ -622,6 +622,8 @@ int Xorriso_hfsplus_bless(struct XorrisO *xorriso, char *path,
|
||||
|
||||
int Xorriso_pretend_full_disc(struct XorrisO *xorriso, int flag);
|
||||
|
||||
int Xorriso_scsi_dev_family(struct XorrisO *xorriso, int flag);
|
||||
|
||||
|
||||
int Xorriso_apply_sort_file(struct XorrisO *xorriso, char *path, int flag);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user