Bug 115049 - CD Burn Error in ubuntu 5.10 + k3b.
Summary: CD Burn Error in ubuntu 5.10 + k3b.
Status: RESOLVED FIXED
Alias: None
Product: k3b
Classification: Applications
Component: general (show other bugs)
Version: 0.12.x
Platform: Ubuntu Linux
: NOR wishlist
Target Milestone: ---
Assignee: Sebastian Trueg
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-10-25 10:49 UTC by A G
Modified: 2006-11-16 10:26 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
nerolinux burn speed (74.40 KB, image/png)
2005-11-24 12:43 UTC, A G
Details
k3b-doesnt-burn-even-with-same-speed-as-nerolinux.png (114.66 KB, image/png)
2005-11-24 12:51 UTC, A G
Details

Note You need to log in before you can comment on or make changes to this bug.
Description A G 2005-10-25 10:49:23 UTC
Version:            (using KDE KDE 3.4.0)
Installed from:    Ubuntu Packages
OS:                Linux

Hi,

While trying to burn the files in ubuntu 5.10 + k3b, I
am getting following error. Can anyone please help?

I used both k3b and sudo k3b.

"System
-----------------------
K3b Version: 0.12

KDE Version: 3.4.3
QT Version:  3.3.4
Kernel:      2.6.12-9-386
Devices
-----------------------
SONY CD-RW  CRX230E QYS1 (/dev/hda, ) at /media/cdrom0
[CD-R; CD-RW; CD-ROM] [CD-ROM; CD-R; CD-RW] [SAO; TAO;
RAW; SAO/R96P; SAO/R96R; RAW/R16; RAW/R96P; RAW/R96R]

K3b
-----------------------
Size of filesystem calculated: 283602

Used versions
-----------------------
mkisofs: 2.1-unofficial-iconv
cdrecord: 2.1.1a01

cdrecord
-----------------------
/usr/bin/X11/cdrecord: Warning: Running on
Linux-2.6.12-9-386
/usr/bin/X11/cdrecord: There are unsettled issues with
Linux-2.5 and newer.
/usr/bin/X11/cdrecord: If you have unexpected
problems, please try Linux-2.4 or Solaris.
/usr/bin/X11/cdrecord: Operation not permitted.
WARNING: Cannot set RR-scheduler
/usr/bin/X11/cdrecord: Permission denied. WARNING:
Cannot set priority using setpriority().
/usr/bin/X11/cdrecord: WARNING: This causes a high
risk for buffer underruns.
scsidev: '/dev/hda'
devname: '/dev/hda'
scsibus: -2 target: -2 lun: -2
Warning: Open by 'devname' is unintentional and not
supported.
Linux sg driver version: 3.5.27
Error: Cannot gain SYS_RAWIO capability.Is cdrecord
installed SUID root?
: Operation not permitted
/usr/bin/X11/cdrecord: Warning: using inofficial
version of libscg (ubuntu-0.8ubuntu1 '@(#)scsitransp.c
1.91 04/06/17 Copyright 1988,1995,2000-2004 J.
Schilling').
SCSI buffer size: 64512
Cdrecord-Clone 2.01.01a01 (i686-pc-linux-gnu)
Copyright (C) 1995-2004 Joerg Schilling
NOTE: this version of cdrecord is an inofficial
(modified) release of cdrecord
      and thus may have bugs that are not present in
the original version.
      Please send bug reports and support requests to
<cdrtools@packages.debian.org>.
      The original author should not be bothered with
problems of this version.
TOC Type: 3 = CD-ROM XA mode 2
Using libscg version 'ubuntu-0.8ubuntu1'.
Driveropts: 'burnfree'
atapi: 1
Device type    : Removable CD-ROM
Version        : 0
Response Format: 2
Capabilities   : 
Vendor_info    : 'SONY    '
Identifikation : 'CD-RW  CRX230E  '
Revision       : 'QYS1'
Device seems to be: Generic mmc CD-RW.
Current: 0x000A
Profile: 0x000A (current)
Profile: 0x0009 
Profile: 0x0008 
Profile: 0x0002 
Using generic SCSI-3/mmc   CD-R/CD-RW driver
(mmc_cdr).
Driver flags   : MMC-3 SWABAUDIO BURNFREE FORCESPEED 
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R
RAW/R16 RAW/R96P RAW/R96R
Drive buf size : 1422080 = 1388 KB
FIFO size      : 4194304 = 4096 KB
/usr/bin/X11/cdrecord: Operation not permitted.
WARNING: Cannot set RR-scheduler
/usr/bin/X11/cdrecord: Permission denied. WARNING:
Cannot set priority using setpriority().
/usr/bin/X11/cdrecord: WARNING: This causes a high
risk for buffer underruns.
Error: Cannot gain SYS_RAWIO capability.Is cdrecord
installed SUID root?
: Operation not permitted
/usr/bin/X11/cdrecord: Trying to use high speed medium
on low speed writer.
/usr/bin/X11/cdrecord: fifo had 64 puts and 0 gets.
/usr/bin/X11/cdrecord: fifo was 0 times empty and 1
times full, min fill was 0%.
Track 01: data   553 MB        
Total size:      636 MB (63:01.38) = 283604 sectors
Lout start:      636 MB (63:03/29) = 283604 sectors
Current Secsize: 2048
ATIP info from disk:
  Indicated writing power: 2
  Reference speed: 6
  Is not unrestricted
  Is erasable
  Disk sub type: High speed Rewritable (CAV) media (1)
  ATIP start of lead in:  -12374 (97:17/01)
  ATIP start of lead out: 359849 (79:59/74)
  1T speed low:  4 1T speed high: 10
  2T speed low:  2 2T speed high: 10
  power mult factor: 2 6
  recommended erase/write power: 5
  A1 values: 24 2C DC
  A2 values: 14 A4 4A
  A3 values: 02 D2 80
Disk type:    Phase change
Manuf. index: 69
Manufacturer: Moser Baer India Limited
Manufacturer is guessed because of the orange forum
embargo.
The orange forum likes to get money for recent
information.
The information for this media may not be correct.
Blocks total: 359849 Blocks current: 359849 Blocks
remaining: 76245
Forcespeed is OFF.
BURN-Free was never needed.

cdrecord command:
-----------------------
/usr/bin/X11/cdrecord.mmap -v gracetime=2 dev=/dev/hda
speed=52 -tao driveropts=burnfree -eject -multi -xa
-tsize=283602s - 

mkisofs
-----------------------
283602
INFO: UTF-8 character encoding detected by locale
settings.
 Assuming UTF-8 encoded filenames on source
filesystem,
 use -input-charset to override.
  0.18% done, estimate finish Sat Oct 22 15:00:09 2005
  0.36% done, estimate finish Sat Oct 22 14:41:49 2005
  0.53% done, estimate finish Sat Oct 22 14:35:44 2005
  0.71% done, estimate finish Sat Oct 22 14:32:32 2005

mkisofs command:
-----------------------
/usr/bin/X11/mkisofs -gui -graft-points -volid K3b
data project -volset  -appid K3B THE CD KREATOR (C)
1998-2005 SEBASTIAN TRUEG AND THE K3B TEAM -publisher 
-preparer  -sysid LINUX -volset-size 1 -volset-seqno 1
-sort /tmp/kde-amitg/k3bvAzoaa.tmp -rational-rock
-hide-list /tmp/kde-amitg/k3bz8ENrc.tmp -joliet
-hide-joliet-list /tmp/kde-amitg/k3brifzta.tmp
-full-iso9660-filenames -iso-level 2 -path-list
/tmp/kde-amitg/k3bVkhsgb.tmp "

~A.
Comment 1 Thiago Macieira 2005-10-26 04:20:14 UTC
Your CD is not empty.

This is not a bug and bugs.kde.org is not a help forum -> closing.
Comment 2 A G 2005-10-26 13:03:49 UTC
Point 1. My CD was empty. It is a re-recordable CD whose contents were erased. konquorer didnt show anything on it - with show hidden files option enabled.

Point 2. If what you say is correct, then the bug is as follows: "The user should be given a proper error message telling what the exact problem is. "Cannot set priority using setpriority()" and such error are a definite no-no."

Point 3. k3b can give the option to completely erase the cd before buring if such was the case - something similar to nero.

Point 4. There are lots of forums that I checked before posting this problem. No one seem to give correct answer. A simple implementation of point 2 would save everyone's time and energy.

Point 5. Perhaps you can setup a proper search engine, something like google, which will be actually helpful, so that people neednt waste their time and energy loggin the bugs.
Comment 3 Thiago Macieira 2005-10-27 12:16:07 UTC
Points 2 and 3 are implemented. But, for whatever reason, cdrecord can't record, giving the "cannot setpriority()" warning and no other useful data. I concluded that the disk wasn't empty because of the numbers shown, but apparently I was wrong too.

I can't explain any better than that. It looks like cdrecord is the guilty party here.

Sebastian, can you understand the cdrecord output better?
Comment 4 A G 2005-10-28 06:07:00 UTC
I didnt see any bugs database on the k3b site.

But I hope that Sebastian you are talking of and "Sebastian Trueg Maintainer and Lead Developer" on k3b site are the same.
Comment 5 A G 2005-11-24 06:37:11 UTC
This is not INVALID.

Comment 6 Matt Rogers 2005-11-24 06:46:35 UTC
please request that ubuntu/debian change the way they package cdrecord if you don't want to see the setpriority errors in the output that k3b will show you from cdrecord. 

From what I can tell, there is no error in k3b here and the operation performed on your media was successful. 
Comment 7 A G 2005-11-24 06:53:38 UTC
Unfortunately, the operation failed. When I tried to check the cd contents in konquorer, it didnt show me anything.
I have opened a bug with ubuntu.
I hope that this problem gets solved, ir-respective of whether the root cause lies with k3b or kde or ubuntu.

I have started using nerolinux and have also recommended it to quite a few friends. I hope not that k3b loses to nero. But currently nerolinux does the job i need.
Comment 8 Sebastian Trueg 2005-11-24 10:28:49 UTC
At which speed does nero burn the cd?
Did you use the exact same medium and writer with nero?
Comment 9 A G 2005-11-24 12:33:53 UTC
Nerolinux burns at 4X (600 KB/s).
Comment 10 A G 2005-11-24 12:43:29 UTC
Created attachment 13631 [details]
nerolinux burn speed
Comment 11 A G 2005-11-24 12:51:52 UTC
Created attachment 13632 [details]
k3b-doesnt-burn-even-with-same-speed-as-nerolinux.png

write method = auto.
Comment 12 A G 2005-11-25 09:26:11 UTC
check this person's comment -->
http://www.zdnet.co.uk/talkback/?PROCESS=show&ID=20052357&AT=39237495-39024180t-30000029c

My experience with Mandriva (Mandrake) is that it is very reluctant to write to removable media. I managed once to burn a CD with Mandriva2006 but subsequent attempts failed. K3b occasionally announced that it had completed the burn but in every case the disk proved to be blank
Writing to a floppy with Konqueror is impossible but mtools and tar work from the command line.
Comment 13 Christoph Burger-Scheidlin 2006-10-08 18:29:53 UTC
What is the status of this? Can it be closed?

A G, do you still have this problem?
Comment 14 A G 2006-10-09 07:38:46 UTC
I donno. Did you try reproducing?

steps are as follows:
1. use re recordable CD and burn something in windows using nero.
2. Boot to kubuntu drapper and try to burn something on the cd using k3b.

Expected result:
- user should be told that the cd contains data. Proceed further?
  - on yes, erase the previous containt and record on the cd.
  - on no, abort the operation.
Comment 15 Sebastian Trueg 2006-10-09 10:24:31 UTC
anyway, cdrecord refuses to burn a high speed medium n a low speed writer. it is not a k3b problem.
Comment 16 A G 2006-10-09 12:49:32 UTC
what is the meaning of "high speed medium n a low speed writer"?
how did you get to know that its "high speed medium n a low speed writer"?

if nerolinux can burn as expected, so should k3b.
what's with such statement/attitude that "it is not a k3b problem"?
Comment 17 Sebastian Trueg 2006-10-09 13:42:11 UTC
On Monday 09 October 2006 12:49, A G wrote:
> how did you get to know that its "high speed medium n a low speed writer"?


cdrecord output.

> if nerolinux can burn as expected, so should k3b.


well, I could add an option to force continuing in such situations. Do you 
think that would be a good idea? I don't think that it would be good to have 
this a a default, though.
Comment 18 Christoph Burger-Scheidlin 2006-10-09 14:41:03 UTC
If you want to allow forcing, then probably k3b needs to detect the error of cdrecord (not sure if cdrecord has a unique return value for that case), since forcing only makes sense on some situations. I think that if you allow forcing, then there needs to be some explanation what went wrong (i.e. that the writer does not support the medium, the cdrecord error seems unclear) and that forcing the process could possibly not lead to a success. I believe that forcing is a good idea particularly for those people that already have the medium and could not use it anyways, so a wrong burn will not be too bad.
Comment 19 Sebastian Trueg 2006-10-09 16:39:23 UTC
Agreed. So this is what I will do: 
1. Add an advanced force option that has a whatsthis info telling something 
about non.compatible media and such
2. Add a suggesstion to enale the force option in bad medium situations
3. Maybe add a warning when forcing is enabled (depends on cdrecord's output)
Comment 20 Christoph Burger-Scheidlin 2006-11-15 19:57:33 UTC
Set this to be a wish, since it is not really a bug. The reason for this is that k3b correctly reflects what the underlying burn program (cdrecord) is reporting and thus refuses to burn.

An option to force burning on a Medium which is not suitable for the burner installed is a wish for an additional feature (and also conditioned on cdrecord supporting such a forced operation).

Marking as NEW, because Sebastian has stated in comment 19 what he will do.

As a side note, regarding comment 16, you do not even need to read the cdrecord output from the log, just look at the screenshot you posted.
Comment 21 Sebastian Trueg 2006-11-16 10:26:48 UTC
SVN commit 605299 by trueg:

Added a "force" setting which makes K3b use the -force paramter with cdrecord and cdrdao. 
This allows to for example write to high speed media on low speed writers.

BUG: 115049


 M  +4 -1      libk3b/core/k3bglobalsettings.cpp  
 M  +10 -0     libk3b/core/k3bglobalsettings.h  
 M  +5 -0      libk3b/projects/k3bcdrdaowriter.cpp  
 M  +7 -0      libk3b/projects/k3bcdrecordwriter.cpp  
 M  +16 -4     src/option/k3bburningoptiontab.cpp  
 M  +1 -0      src/option/k3bburningoptiontab.h  


--- trunk/extragear/multimedia/k3b/libk3b/core/k3bglobalsettings.cpp #605298:605299
@@ -23,7 +23,8 @@
     m_burnfree(true),
     m_overburn(false),
     m_useManualBufferSize(false),
-    m_bufferSize(4)
+    m_bufferSize(4),
+    m_force(false)
 {
 }
 
@@ -38,6 +39,7 @@
   m_overburn = c->readBoolEntry( "Allow overburning", false );
   m_useManualBufferSize = c->readBoolEntry( "Manual buffer size", false );
   m_bufferSize = c->readNumEntry( "Fifo buffer", 4 );
+  m_force = c->readBoolEntry( "Force unsafe operations", false );
 
   c->setGroup( lastG );
 }
@@ -53,6 +55,7 @@
   c->writeEntry( "Allow overburning", m_overburn );
   c->writeEntry( "Manual buffer size", m_useManualBufferSize );
   c->writeEntry( "Fifo buffer", m_bufferSize );
+  c->writeEntry( "Force unsafe operations", m_force );
 
   c->setGroup( lastG );
 }
--- trunk/extragear/multimedia/k3b/libk3b/core/k3bglobalsettings.h #605298:605299
@@ -42,11 +42,20 @@
   bool useManualBufferSize() const { return m_useManualBufferSize; }
   int bufferSize() const { return m_bufferSize; }
 
+  /**
+   * If force is set to true K3b will continue in certain "unsafe" situations.
+   * The most common being a medium not suitable for the writer in terms of
+   * writing speed.
+   * Compare cdrecord's parameter -force
+   */
+  bool force() const { return m_force; }
+
   void setEjectMedia( bool b ) { m_eject = b; }
   void setBurnfree( bool b ) { m_burnfree = b; }
   void setOverburn( bool b ) { m_overburn = b; }
   void setUseManualBufferSize( bool b ) { m_useManualBufferSize = b; }
   void setBufferSize( int size ) { m_bufferSize = size; }
+  void setForce( bool b ) { m_force = b; }
 
  private:
   bool m_eject;
@@ -54,6 +63,7 @@
   bool m_overburn;
   bool m_useManualBufferSize;
   int m_bufferSize;
+  bool m_force;
 };
 
 
--- trunk/extragear/multimedia/k3b/libk3b/projects/k3bcdrdaowriter.cpp #605298:605299
@@ -289,6 +289,11 @@
       emit infoMessage( i18n("Cdrdao %1 does not support disabling burnfree.").arg(m_cdrdaoBinObject->version), WARNING );
   }
   
+  if( k3bcore->globalSettings()->force() ) {
+    *m_process << "--force";
+    emit infoMessage( i18n("'Force unsafe operations' enabled."), WARNING );
+  }
+
   bool manualBufferSize =
     k3bcore->globalSettings()->useManualBufferSize();
   if( manualBufferSize ) {
--- trunk/extragear/multimedia/k3b/libk3b/projects/k3bcdrecordwriter.cpp #605298:605299
@@ -222,6 +222,11 @@
     else
       emit infoMessage( i18n("Writer does not support buffer underrun free recording (Burnfree)"), WARNING );
   }
+
+  if( k3bcore->globalSettings()->force() ) {
+    *m_process << "-force";
+    emit infoMessage( i18n("'Force unsafe operations' enabled."), WARNING );
+  }
   
   if( m_cue ) {
     m_process->setWorkingDirectory(QUrl(m_cueFile).dirPath());
@@ -725,9 +730,11 @@
 	break;
       case HIGH_SPEED_MEDIUM:
 	emit infoMessage( i18n("Found a high-speed medium not suitable for the writer being used."), ERROR );
+	emit infoMessage( i18n("Use the 'force unsafe operations' option to ignore this."), ERROR );
 	break;
       case LOW_SPEED_MEDIUM:
 	emit infoMessage( i18n("Found a low-speed medium not suitable for the writer being used."), ERROR );
+	emit infoMessage( i18n("Use the 'force unsafe operations' option to ignore this."), ERROR );
 	break;
       case MEDIUM_ERROR:
 	emit infoMessage( i18n("Most likely the burning failed due to low-quality media."), ERROR );
--- trunk/extragear/multimedia/k3b/src/option/k3bburningoptiontab.cpp #605298:605299
@@ -66,16 +66,18 @@
   bufferLayout->setSpacing( KDialog::spacingHint() );
 
   m_checkBurnfree = K3bStdGuiItems::burnproofCheckbox( groupWritingApp );
-  m_checkOverburn = new QCheckBox( i18n("Allow &overburning (not supported by cdrecord <= 1.10)"), groupWritingApp );
+  m_checkOverburn = new QCheckBox( i18n("Allow overburning (&not supported by cdrecord <= 1.10)"), groupWritingApp );
+  m_checkForceUnsafeOperations = new QCheckBox( i18n("Force unsafe operations"), groupWritingApp );
   m_checkManualWritingBufferSize = new QCheckBox( i18n("&Manual writing buffer size") + ":", groupWritingApp );
   m_editWritingBufferSize = new KIntNumInput( 4, groupWritingApp );
   m_editWritingBufferSize->setSuffix( " " + i18n("MB") );
   m_checkAllowWritingAppSelection = new QCheckBox( i18n("Manual writing application &selection"), groupWritingApp );
   bufferLayout->addMultiCellWidget( m_checkBurnfree, 0, 0, 0, 2 );
   bufferLayout->addMultiCellWidget( m_checkOverburn, 1, 1, 0, 2 );
-  bufferLayout->addWidget( m_checkManualWritingBufferSize, 2, 0 );
-  bufferLayout->addWidget( m_editWritingBufferSize, 2, 1 );
-  bufferLayout->addMultiCellWidget( m_checkAllowWritingAppSelection, 3, 3, 0, 2 );
+  bufferLayout->addMultiCellWidget( m_checkForceUnsafeOperations, 2, 2, 0, 2 );
+  bufferLayout->addWidget( m_checkManualWritingBufferSize, 3, 0 );
+  bufferLayout->addWidget( m_editWritingBufferSize, 3, 1 );
+  bufferLayout->addMultiCellWidget( m_checkAllowWritingAppSelection, 4, 4, 0, 2 );
   bufferLayout->setColStretch( 2, 1 );
 
   QGroupBox* groupMisc = new QGroupBox( 2, Qt::Vertical, i18n("Miscellaneous"), this );
@@ -101,6 +103,7 @@
   QToolTip::add( m_checkAllowWritingAppSelection, i18n("Allow to choose between cdrecord and cdrdao") );
   QToolTip::add( m_checkAutoErasingRewritable, i18n("Automatically erase CD-RWs and DVD-RWs without asking") );
   QToolTip::add( m_checkEject, i18n("Do not eject the burn medium after a completed burn process") );
+  QToolTip::add( m_checkForceUnsafeOperations, i18n("Force K3b to continue some operations otherwise deemed as unsafe") );
 
   QWhatsThis::add( m_checkAllowWritingAppSelection, i18n("<p>If this option is checked K3b gives "
                                                          "the possibility to choose between cdrecord "
@@ -136,6 +139,13 @@
 				      "burning and does not want the tray to be open all the time."
 				      "<p>However, on Linux systems a freshly burned medium has to be reloaded. Otherwise "
 				      "the system will not detect the changes and still treat it as an empty medium.") );
+
+  QWhatsThis::add( m_checkForceUnsafeOperations, i18n("<p>If this option is checked K3b will continue in some situations "
+						      "which would otherwise be deemed as unsafe."
+						      "<p>This setting for example disables the check for medium speed "
+						      "verification. Thus, one can force K3b to burn a high speed medium on "
+						      "a low speed writer."
+						      "<p><b>Caution:</b> Enabling this option may result in damaged media.") );
 }
 
 
@@ -150,6 +160,7 @@
   m_checkBurnfree->setChecked( k3bcore->globalSettings()->burnfree() );
   m_checkEject->setChecked( !k3bcore->globalSettings()->ejectMedia() );
   m_checkOverburn->setChecked( k3bcore->globalSettings()->overburn() );
+  m_checkForceUnsafeOperations->setChecked( k3bcore->globalSettings()->force() );
   m_checkManualWritingBufferSize->setChecked( k3bcore->globalSettings()->useManualBufferSize() );
   if( k3bcore->globalSettings()->useManualBufferSize() )
     m_editWritingBufferSize->setValue( k3bcore->globalSettings()->bufferSize() );
@@ -169,6 +180,7 @@
   k3bcore->globalSettings()->setBurnfree( m_checkBurnfree->isChecked() );
   k3bcore->globalSettings()->setUseManualBufferSize( m_checkManualWritingBufferSize->isChecked() );
   k3bcore->globalSettings()->setBufferSize( m_editWritingBufferSize->value() );
+  k3bcore->globalSettings()->setForce( m_checkForceUnsafeOperations->isChecked() );
 
   // FIXME: remove this once libk3b does not use KConfig anymore for these values
   k3bcore->globalSettings()->saveSettings( c );
--- trunk/extragear/multimedia/k3b/src/option/k3bburningoptiontab.h #605298:605299
@@ -54,6 +54,7 @@
   QCheckBox*    m_checkManualWritingBufferSize;
   KIntNumInput* m_editWritingBufferSize;
   QCheckBox*    m_checkAllowWritingAppSelection;
+  QCheckBox*    m_checkForceUnsafeOperations;
 };