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