New command -scsi_dev_family, new -as cdrecord option drive_scsi_dev_family=

This commit is contained in:
2016-03-18 13:55:09 +00:00
parent e51a00f000
commit 3664cab771
19 changed files with 337 additions and 119 deletions

View File

@ -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