⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.html

📁 最新的linux下dvd刻录软件,支持DVD+RW、DVD-RW光盘刻录。
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<NOBR>DVD+RW</NOBR> specification, &quot;true random write with 2KBgranularity&quot; part in particular. Instead they apparently expecthost to apply procedure pretty much equivalent to <NOBR>DVD-RW</NOBR>Restricted Overwrite. To be more specific host seems to be expected tocoalesce 2KB requests and perform aligned writes at native DVD ECCblocksize, which is 32KB. Formally this should not be required, butit's the reality of marketplace:-(<P ALIGN="JUSTIFY">This one really beats me. Sometimes the unitsimply stops writing signaling a vendor specific positioning error,03h/15h/82h to be specific. Especially if the media is newly formatted.Couple of work theories. One is that block buffer cache reordersrequests so that they are not sequential anymore, &quot;FLUSHCACHE&quot; might do the trick. Another one is that under&quot;underrun&quot; condition background formatting kicks off and hasto be explicitly stopped. &quot;Underrun&quot; is in quotes becausethe unit is supposed to handle temporary data stream outagesgracefully. If you run into this (you most likely will), try tocomplement growisofs command line with [undocumented]<TT>-poor-man</TT> option (which has to be first in the command line).This option eliminates request reorders and minimizes possibility for&quot;underrun&quot; condition (by releasing the pressure off VMsubsystem).<P><BR><P ALIGN="JUSTIFY">The original idea was to implement DVD+RW support indrivers/cdrom/cdrom.c. Unfortunately SCSI layer maintains private&quot;writeable&quot; flag controlling the ability to issue WRITEcommands. The flag is impossible to reach for from the Unified CD-ROMdriver. But why am I talking about SCSI when there are only IDE unitsout there (at least for the time being)? Well, as you most likely wantto occasionally burn even CD-R[W] with cdrecord you want it to gothrough ide-scsi emulation layer anyway. So I figured that SCSI CD-ROMdriver is the one to aim for even for DVD+RW.<P ALIGN="JUSTIFY">Unfortunately it was not possible to implement itcompletely in sr_mod.o<TT>:-(</TT> Minor drivers/cdrom/cdrom.cmodification was required to sense the media before decision aboutwhether or not to permit write open. That's because DVD+RW drives aremorphing their behaviour after currently mounted media and it'sessential to identify newly inserted media.<P ALIGN="JUSTIFY">Special comment about &quot;what a dirtyhack!!!&quot; To my great surprise it turned out that time-out value youpass in cdrom_generic_command is simply ignored and time-out is set topre-compiled value of 30 seconds. Unfortunately it's way too low forformatting purposes and I had to do something about it. Alternative to&quot;the dirty hack&quot; was to add another argument to sr_do_ioctland modify all the calls to it... I've chosen to take over those 31unused bits from the &quot;quiet&quot; argument instead of modifyingall the calls (too boring).<P ALIGN="JUSTIFY">But even if time-out value passed down to kernel(with <I>either</I> CDROM_SEND_PACKET or SG_IO ioctl) is taken intoconsideration, it's apparently not interpreted as user-land codeexpects it to. As I figured... There is no documentation onCDROM_SEND_PACKET, but following the common sense most programmers(including myself:-) expect it to be interpreted in at leastplatform-independent manner, such as milliseconds maybe? SG_IO timeoutin turn is <AHREF="http://www.torque.net/sg/p/sg_v3_ho.html#AEN215"><I>documented</I></A>to be measured in milliseconds... Neither of this holds true! Kerneltreats these values as &quot;jiffies,&quot; which is a<B>platform-dependent</B> value representing time elapsed between timerinterrupts. But if we attempt to send down &quot;jiffies,&quot; itmight turn out wrong too [at least for the moment of this writing]. Thecatch is that [IA-32] kernel developers figured it's cool to shorten&quot;jiffy,&quot; but didn't care to provide user-land with actualvalue (well, not of actual interest, too much legacy code to deal with)<I>nor</I> <A HREF="scsi_ioctl-2.5.69.patch">scale</A> timeoutsaccordingly in respect to the legacy value of 10ms.<P ALIGN="JUSTIFY">There is another kernel &quot;deficiency&quot; I raninto while working on the (original version of) dvd+rw-format utility.The drive provides background formatting progress status, butunfortunately it's impossible to access it. That's because progresscounter is returned [in reply to &quot;TEST UNIT READY&quot;] as&quot;NO SENSE/LOGICAL UNIT NOT READY/FORMAT IN PROGRESS&quot; sensebytes but with &quot;GOOD&quot; status. Apparently any sense data with&quot;GOOD&quot; status is discarded by the common SCSI layer.<!--<P ALIGN="JUSTIFY">As you might have noticed the time-out value for&quot;CLOSE SESSION&quot; is 3000 seconds. Does it really take thatlong? It might... Disappointed? Don't be! It might happen <I>only</I>when <I>reformatting</I> used media. Formatting of the <I>blank</I>media doesn't take longer than a couple of minutes. <I>Reformatting</I>in turn takes as long as it takes to nullify whatever you had on themedia which requires corresponding time-outs. But do you <I>have to</I>reformat? Well, only if media contains sensitive data, the new data setis smaller than the current one and (for some reason) will be easierfor potentially rival party to get hold of it (in other words whenthere is a risk for sensitive data to get exposed). Another reason iswhen you want to reuse the media as a master copy for DVD-ROMmanufacturing and want formatted capacity to reflect data set size.Otherwise there is <I>no</I> reason to reformat and as long as youdon't you won't be disappointed with how long does it take to&quot;finalize&quot; the media.--><P ALIGN="JUSTIFY">It was pointed out to me that DVD+RW units work withAcard <A HREF="http://www.acard.com/eng/product/scside.html">SCSI toIDE bridges</A>.<A NAME="plusvsminus"><P><HR WIDTH="50%" ALIGN="LEFT"></A><P ALIGN="JUSTIFY"><B>What does <AHREF="http://www.cdfreaks.com/article/113"><I>plus</I></A> in DVD+RW/+Rstand for?</B> Originally this paragraph started as following:<BLOCKQUOTE><P ALIGN="JUSTIFY">The key feature of DVD+RW/+R media ishigh [spatial] frequency wobbled [pre-]groove with addressinginformation modulated into it. This makes it possible to resumeinterrupted [or deliberately suspended] burning process with accuracyhigh enough for DVD[-ROM] player not to &quot;notice&quot; anything atplayback time. Recovery from buffer underrun condition in DVD-RW/-Rcase in turn is way less accurate procedure, and the problem is thatthe provided accuracy is very much what average player can tolerate.Now given that both provided and tolerated inaccuracies areproportional to respectively writing and reading velocities therebasically no guarantee that DVD-RW/-R recording that suffered frombuffer underrun will be <I>universally</I> playable.</BLOCKQUOTE><P ALIGN="JUSTIFY">Well, it turned out that I was wrong about onething. <!--About projecting CD-R[W] buffer underrun recovery procedureto DVD-R[W] to be specific.--> I failed to recognize that DVD-R[W]groove also provides for <I>adequately</I> accurate recovery frombuffer underrun condition/lossless linking. Not as accurate as DVD+RW,but accurate enough for splices to be playable in virtually anyDVD-ROM/-Video unit. Yet! When it comes to DVD-R[W] recordingspecificaton apparently insists that you choose between<UL><LI>buffer underrun protection and<LI>full DVD-ROM/-Video compatibility.</UL><P ALIGN="JUSTIFY">The specification asserts that the latter isachieved only in Disc-at-once recording mode and only if data-streamwas maintained uninterrupted throughout whole recording. Once again.Even though most vendors implement lossless linking in DAOmode<SUP>(*)</SUP>, <I>full</I> DVD-ROM/-Video compatibility isguaranteed only if recording didn't suffer from buffer underruns. Theproblem is that &quot;offended&quot; sectors are denoted with certainlinking chunk appearing as degraded <I>user data</I>, few bytes, whichare supposed to be &quot;corrected away&quot; by ECCprocedure<SUP>(**)</SUP>. DVD+ splices are in turn only few bits largeand are &quot;accounted&quot; to sync patterns, <I>not to user dataarea</I>. So that even if suffered from buffer underrun, DVD+ sector islogically indistiguishable from DVD-ROM. Which is why it's commonlyreferred to that DVD+RW/+R combine DVD-ROM/-Video compatibility with[unconditional] buffer underrun protection.<P ALIGN="JUSTIFY">As already mentioned, DVD+ groove has&quot;addressing information modulated into it,&quot; ADIP (ADress InPre-groove). This gives you an advantage of writing DVD+RW in trulyarbitrary order, even to virgin surface and practically instantly(after ~40 seconds long initial format procedure). In addition, DVD+RWcan be conveniently written to with 2KB granularity<SUP>(***)</SUP>.DVD-RW in turn can only be <I>overwritten</I> in arbitrary order.Meaning that it either has to be completely formatted first (it takesan hour to format 1x media), or initially written to in a sequentialmanner. And it should also be noted that block overwrite is<I>never</I> an option if DVD-RW media was recorded in [compatible]Disc-at-once or even Incremental mode, only whole disc blanking is.<P ALIGN="JUSTIFY">Unlike DVD-R[W], DVD+R[W] recordings can besuspended at any time without any side effects. Consider followingscenario. You have a lot of data coming in [at lower rate], which is tobe recorded into one file. Meanwhile it turns out that you have toretrieve previously recorded data. This would naturally requiresuspention of recording. Most notably in DVD-R [and naturally DVD-RWSequential] case it would result in a hole in the file being recorded.So called linking area, most commonly 32KB gap, has to be introduced.So that you either have to wait till the file is complete or figure outhow to deal with holey files. Thanks to ADIP, DVD+R recording isresumed from the very point it was suspended at. In DVD-RW RestrictedOverwrite case no gaps are introduced, but if the media was formattedonly minimally, suspension/resuming procedure has to be applied and ittakes ~40 seconds to perform one. In DVD+RW case, suspension/resumingis instant regardless media state.<P ALIGN="JUSTIFY">What does all of the above mean in practice? Well, Iwas actually hoping that readers would [be able to] figure it out bythemselves. Apparently a couple of &quot;guiding&quot; words areneeded... It means that it's trivial to employ DVD+RW for housing oflive and arbitrary file system, no special modifications to target filesystem driver are required... Real-time VBR (Variable Bit Rate) Videorecordings are children's game...<P ALIGN="JUSTIFY">Sometimes DVD+RW/+R recording strategy is referredto as packet writing. I myself am reluctant to call it so (orTAO/SAO/DAO) for the following reason. Despite the fact that DVD-R[W]provides for lossless linking (within a packet/extent only),packets/extents are still denoted with certain linking informationwhich distinguishes it (recording mode in question) from e.g.Disc-at-once. Now the point is that written DVD+RW/+R media, rather itsData Zone, does not contain <I>any</I> linking information and islogically indistinguishable from one written in DVD-R[W] Disc-at-oncemode (or DVD-ROM for that matter).<P ALIGN="JUSTIFY">It's maintained that signal from DVD+ groove (theone essential for recording, not reading) is much stronger, which makesit quite resistant to dust, scratches, etc. <P ALIGN="JUSTIFY">Now we can also discuss differences betweenDouble/Dual Layer implementations. DVD+R Double Layer permits forarbitrary layer break positioning yet maintaining <I>contiguous logicalblock addressing</I>. In other words address of the block following thebreak is always address of the block preceding one plus 1, even forarbitrarily positioned break. <NOBR>DVD-R</NOBR> Dual Layer on theother hand implies unconditionally disjoint logical block addressing[for arbitrarily positioned layer break that is]. This is because blockaddresses as recorded by unit are pre-defined by <NOBR>DVD-dash</NOBR>groove structure. In practice it means that file system layout has toeffectively have a hole, which "covers" twice the space between chosenlayer break position and outermost edge of the recordable area. And ineven more practical terms this means that mastering programs have to beexplicitly adapted for <NOBR>DVD-R</NOBR> layer break positioning.Unlike DVD+plus that is.<P><TABLE BORDER="0" WIDTH="95%" ALIGN="CENTER"><TR VALIGN="TOP" ALIGN="JUSTIFY"><TD><FONT SIZE="-1"><SUP>(*)</SUP></FONT><TD><FONT SIZE="-1">According to <AHREF="ftp://ftp.avc-pioneer.com/Mtfuji_6/Spec/">Mt. Fuji draft</A>buffer underrun protection is not even an option in DVD-R DAO: "If abuffer under-run occurs, the logical unit <B><I>shall</I></B> stopwriting immediately and the logical unit <B><I>shall</I></B> startwriting of Lead-out." Protection is defined in Incremental Sequentialmode and DVD-RW context. By the way, note that earlier versions of thisdraft also discuss DVD+RW. You should be aware that they refer toabandoned version which has very little to do with DVD+RW/+Rimplementation being discussed here.</FONT></TR><TR VALIGN="TOP" ALIGN="JUSTIFY"><TD><FONT SIZE="-1"><SUP>(**)</SUP></FONT><TD><FONT SIZE="-1">ECC redundancy does permit for more degradation,more that this linking chunk that is, so that it hadly affects theplayability.</FONT></TR><TR VALIGN="TOP" ALIGN="JUSTIFY"><TD><FONT SIZE="-1"><SUP>(***)</SUP></FONT><TD><FONT SIZE="-1">DVD &quot;native&quot; block size is 32KB, and 2KBgranularity is nothing but a trick, but you're excused from playing it,i.e. reading 32KB, replacing corresponding 2KB and writing 32KBback.</FONT></TR></TABLE><P><HR><SPACER TYPE="block" WIDTH="100%" HEIGHT="100%"></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -