CD/DVD drive detected as read only, command line and GUI programs

Bug #1896804 reported by chris gibbons
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
brasero (Ubuntu)
New
Undecided
Unassigned

Bug Description

Disks utility program and command line only seeing the drive as read only. unable to write data to the disk. all works OK in Windows 10.

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: brasero 3.12.2-6ubuntu1
ProcVersionSignature: Ubuntu 5.4.0-31.35-generic 5.4.34
Uname: Linux 5.4.0-31-generic x86_64
NonfreeKernelModules: lkp_Ubuntu_5_4_0_31_35_generic_70 nvidia_modeset nvidia
ApportVersion: 2.20.11-0ubuntu27
Architecture: amd64
CasperMD5CheckResult: skip
CurrentDesktop: ubuntu:GNOME
Date: Wed Sep 23 17:47:26 2020
InstallationDate: Installed on 2020-02-04 (232 days ago)
InstallationMedia: Ubuntu 18.04.3 LTS "Bionic Beaver" - Release amd64 (20190805)
ProcEnviron:
 LANGUAGE=en_GB:en
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_GB.UTF-8
 SHELL=/bin/bash
SourcePackage: brasero
UpgradeStatus: Upgraded to focal on 2020-05-07 (138 days ago)

Revision history for this message
chris gibbons (chrisgibbons) wrote :
Revision history for this message
Thomas Schmitt (scdbackup) wrote :

Hi,

i understand from the category "brasero package" that you inspect the drive
by Brasero.

Which burn backend is it using (cdrecord, wodim, libburn ) ?
What kind of medium did you try (CD-R, DVD+R, DVD-R, DVD+RW, BD-R, ...) ?
Which task of Brasero do you want to perform (Audio project, Data project,
Burn image, ...) ?
What kind of files shall be used as input ?
By what message does Brasero tell you that the medium is read-only ?

What do you get from

  xorriso -devices

and if the desired target drive is listed (as e.g. /dev/sr0)

  xorriso -outdev /dev/sr0 -toc

Have a nice day :)

Thomas

Revision history for this message
Thomas Schmitt (scdbackup) wrote :

I forgot to ask for putting in the desired medium before performing

  xorriso -outdev /dev/sr0 -toc

Revision history for this message
chris gibbons (chrisgibbons) wrote : Re: [Bug 1896804] Re: CD/DVD drive detected as read only, command line and GUI programs

Hi Thomas.

this is the output from running "xorriso -outdev /dev/sr0 -toc"

xorriso 1.5.2 : RockRidge filesystem manipulator, libburnia project.

libburn : SORRY : Asynchronous SCSI error on waiting after START UNIT
(+ LOAD): See MMC specs: Sense Key 6 "Drive event", ASC 28 ASCQ 81.
xorriso : FAILURE : Cannot acquire drive '/dev/sr0'
xorriso : aborting : -abort_on 'FAILURE' encountered 'FAILURE'

I used the program Brasero, but all programs that write to the drive
will not see it as recordable drive.
if i use the program Disks to show all drives, /dev/sr0 is detected as
read only. CD-R and DVD-R, makes no differance what disk is in the
drive.

hope this helps.
regards
Chris

On Thu, 2020-09-24 at 07:09 +0000, Thomas Schmitt wrote:
> I forgot to ask for putting in the desired medium before performing
>
> xorriso -outdev /dev/sr0 -toc
>

Revision history for this message
Thomas Schmitt (scdbackup) wrote :

Hi,

> Sense Key 6 "Drive event", ASC 28 ASCQ 81.

This SCSI error reply is not listed in SCSI specs SPC or MMC or in the
summary of T10 committee
  https://www.t10.org/lists/asc-num.htm#ASC_28

So the drive's firmware programmers were overly creative.

If it was ASCQ 0 or 2, then libburn would tolerate it:
  6 28 00 NOT READY TO READY CHANGE, MEDIUM MAY HAVE CHANGED
  6 28 02 FORMAT-LAYER MAY HAVE CHANGED
but the other ASCQs of ASC 28 were too obscure to me to be tolerable.

I now made a GNU xorriso tarball with a libburn which tolerates any Drive
event error with ASC 28 so that you can drill deeper into the drive behavior.

(I have to think whether this change is good as permanent solution. The list
 of key 6 errors looks in part fatal like
   6 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED
   6 3B 0F END OF MEDIUM REACHED
 but in part retryable. My program change relies on the hope that all ASC 28
 codes are harmless.)

------------------------------------------------------------------------

You will need the dependency packages of pseudo-package "build-essential"
  https://packages.ubuntu.com/xenial/build-essential
then download

  https://www.gnu.org/software/xorriso/xorriso-1.5.3.tar.gz

and copy it to a directory of your choice, e.g. to
  /home/chris/xorriso

Then build it by

  cd /home/chris/xorriso
  tar xzf xorriso-1.5.3.tar.gz
  cd xorriso-1.5.3
  ./configure --prefix=/usr && make

On a modern machine the "make" part should be done in half a minute.
Afterwards there should be an executable program
  ./xorriso/xorriso

You may use it in place by its relative address

  ./xorriso/xorriso -outdev /dev/sr0 -toc

or by its absolute address

  /home/chris/xorriso/xorriso-1.5.3/xorriso/xorriso

Your Ubuntu xorriso will stay installed and your package manager cannot
get confused by the newly made xorriso. (It is quite large because it contains
own copies of libburn, libisofs, libisoburn, and libjte.)

------------------------------------------------------------------------

Have a nice day :)

Thomas

Revision history for this message
Thomas Schmitt (scdbackup) wrote :

The line with the absolute address was meant to be:

  /home/chris/xorriso/xorriso-1.5.3/xorriso/xorriso -outdev /dev/sr0 -toc

Revision history for this message
chris gibbons (chrisgibbons) wrote :
Download full text (3.6 KiB)

Thanks Thomas.
Will give it a go later today.

Regards
Chris

On Thu, 24 Sep 2020, 11:30 Thomas Schmitt, <email address hidden>
wrote:

> Hi,
>
> > Sense Key 6 "Drive event", ASC 28 ASCQ 81.
>
> This SCSI error reply is not listed in SCSI specs SPC or MMC or in the
> summary of T10 committee
> https://www.t10.org/lists/asc-num.htm#ASC_28
>
> So the drive's firmware programmers were overly creative.
>
> If it was ASCQ 0 or 2, then libburn would tolerate it:
> 6 28 00 NOT READY TO READY CHANGE, MEDIUM MAY HAVE CHANGED
> 6 28 02 FORMAT-LAYER MAY HAVE CHANGED
> but the other ASCQs of ASC 28 were too obscure to me to be tolerable.
>
> I now made a GNU xorriso tarball with a libburn which tolerates any Drive
> event error with ASC 28 so that you can drill deeper into the drive
> behavior.
>
> (I have to think whether this change is good as permanent solution. The
> list
> of key 6 errors looks in part fatal like
> 6 29 00 POWER ON, RESET, OR BUS DEVICE RESET OCCURRED
> 6 3B 0F END OF MEDIUM REACHED
> but in part retryable. My program change relies on the hope that all ASC
> 28
> codes are harmless.)
>
> ------------------------------------------------------------------------
>
> You will need the dependency packages of pseudo-package "build-essential"
> https://packages.ubuntu.com/xenial/build-essential
> then download
>
> https://www.gnu.org/software/xorriso/xorriso-1.5.3.tar.gz
>
> and copy it to a directory of your choice, e.g. to
> /home/chris/xorriso
>
> Then build it by
>
> cd /home/chris/xorriso
> tar xzf xorriso-1.5.3.tar.gz
> cd xorriso-1.5.3
> ./configure --prefix=/usr && make
>
> On a modern machine the "make" part should be done in half a minute.
> Afterwards there should be an executable program
> ./xorriso/xorriso
>
> You may use it in place by its relative address
>
> ./xorriso/xorriso -outdev /dev/sr0 -toc
>
> or by its absolute address
>
> /home/chris/xorriso/xorriso-1.5.3/xorriso/xorriso
>
> Your Ubuntu xorriso will stay installed and your package manager cannot
> get confused by the newly made xorriso. (It is quite large because it
> contains
> own copies of libburn, libisofs, libisoburn, and libjte.)
>
> ------------------------------------------------------------------------
>
> Have a nice day :)
>
> Thomas
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1896804
>
> Title:
> CD/DVD drive detected as read only, command line and GUI programs
>
> Status in brasero package in Ubuntu:
> New
>
> Bug description:
> Disks utility program and command line only seeing the drive as read
> only. unable to write data to the disk. all works OK in Windows 10.
>
> ProblemType: Bug
> DistroRelease: Ubuntu 20.04
> Package: brasero 3.12.2-6ubuntu1
> ProcVersionSignature: Ubuntu 5.4.0-31.35-generic 5.4.34
> Uname: Linux 5.4.0-31-generic x86_64
> NonfreeKernelModules: lkp_Ubuntu_5_4_0_31_35_generic_70 nvidia_modeset
> nvidia
> ApportVersion: 2.20.11-0ubuntu27
> Architecture: amd64
> CasperMD5CheckResult: skip
> CurrentDesktop: ubuntu:GNOME
> Date: Wed Sep 23 17:47:26 2020
> InstallationDate: Install...

Read more...

Revision history for this message
chris gibbons (chrisgibbons) wrote :

Hi Thomas.
 have followed your instructions. still no good.
this is the terminal readout.
chris@chris-A320M-S2H-V2:~/xorriso/xorriso-1.5.3$ ./xorriso/xorriso
-outdev /dev/sr0 -toc
GNU xorriso 1.5.3 : RockRidge filesystem manipulator, libburnia
project.

libburn : SORRY : Asynchronous SCSI error on waiting after START UNIT
(+ LOAD): [6 28 81] Drive event. Unknown ASCQ with drive event ASC 28.
xorriso : FAILURE : Cannot acquire drive '/dev/sr0'
xorriso : aborting : -abort_on 'FAILURE' encountered 'FAILURE'

i have attached a screen print.

regards
Chris

On Thu, 2020-09-24 at 10:31 +0000, Thomas Schmitt wrote:
> The line with the absolute address was meant to be:
>
> /home/chris/xorriso/xorriso-1.5.3/xorriso/xorriso -outdev /dev/sr0
> -toc
>

Revision history for this message
Thomas Schmitt (scdbackup) wrote :

Hi,

> libburn : SORRY : Asynchronous SCSI error on waiting after START UNIT
> (+ LOAD) [6 28 81] Drive event. Unknown ASCQ with drive event ASC 28.

Grr. A higher level intervened.

In line 198 of file

  ~/xorriso/xorriso-1.5.3/libburn/spc.c

there is

                        if (key == 0x6 && asc == 0x28 && ascq == 0x00)

which should be shortened to

                        if (key == 0x6 && asc == 0x28)

Do you feel apt to make this code change and then run

  make

again ?
(Else i would upload a new tarball.)

This time i simulated the drive reply 0x6, 0x28, 0x81 in the waiting loop
from where the message stems. Without " && ascq == 0x00" in line 198 it
works for me. So now it is up to your drive to tell me where else this
unexpected error code creates mistrust, or what other interesting replies
it has to offer.

Have a nice day :)

Thomas

Revision history for this message
chris gibbons (chrisgibbons) wrote :

Thanks for getting back to me.
I have not done this before, but will have a go and let you know.

Regards
Chris

On Thu, 24 Sep 2020, 17:20 Thomas Schmitt, <email address hidden>
wrote:

> Hi,
>
> > libburn : SORRY : Asynchronous SCSI error on waiting after START UNIT
> > (+ LOAD) [6 28 81] Drive event. Unknown ASCQ with drive event ASC 28.
>
> Grr. A higher level intervened.
>
> In line 198 of file
>
> ~/xorriso/xorriso-1.5.3/libburn/spc.c
>
> there is
>
> if (key == 0x6 && asc == 0x28 && ascq == 0x00)
>
> which should be shortened to
>
> if (key == 0x6 && asc == 0x28)
>
> Do you feel apt to make this code change and then run
>
> make
>
> again ?
> (Else i would upload a new tarball.)
>
> This time i simulated the drive reply 0x6, 0x28, 0x81 in the waiting loop
> from where the message stems. Without " && ascq == 0x00" in line 198 it
> works for me. So now it is up to your drive to tell me where else this
> unexpected error code creates mistrust, or what other interesting replies
> it has to offer.
>
> Have a nice day :)
>
> Thomas
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1896804
>
> Title:
> CD/DVD drive detected as read only, command line and GUI programs
>
> Status in brasero package in Ubuntu:
> New
>
> Bug description:
> Disks utility program and command line only seeing the drive as read
> only. unable to write data to the disk. all works OK in Windows 10.
>
> ProblemType: Bug
> DistroRelease: Ubuntu 20.04
> Package: brasero 3.12.2-6ubuntu1
> ProcVersionSignature: Ubuntu 5.4.0-31.35-generic 5.4.34
> Uname: Linux 5.4.0-31-generic x86_64
> NonfreeKernelModules: lkp_Ubuntu_5_4_0_31_35_generic_70 nvidia_modeset
> nvidia
> ApportVersion: 2.20.11-0ubuntu27
> Architecture: amd64
> CasperMD5CheckResult: skip
> CurrentDesktop: ubuntu:GNOME
> Date: Wed Sep 23 17:47:26 2020
> InstallationDate: Installed on 2020-02-04 (232 days ago)
> InstallationMedia: Ubuntu 18.04.3 LTS "Bionic Beaver" - Release amd64
> (20190805)
> ProcEnviron:
> LANGUAGE=en_GB:en
> PATH=(custom, no user)
> XDG_RUNTIME_DIR=<set>
> LANG=en_GB.UTF-8
> SHELL=/bin/bash
> SourcePackage: brasero
> UpgradeStatus: Upgraded to focal on 2020-05-07 (138 days ago)
>
> To manage notifications about this bug go to:
>
> https://bugs.launchpad.net/ubuntu/+source/brasero/+bug/1896804/+subscriptions
>

Revision history for this message
chris gibbons (chrisgibbons) wrote :

Hi Thomas.

did the alteration to spc.c and ran make. ububnu is still seeing the
drive as read only. see the output below.

chris@chris-A320M-S2H-V2:~/xorriso/xorriso-1.5.3$ ./xorriso/xorriso
-outdev /dev/sr0 -toc
GNU xorriso 1.5.3 : RockRidge filesystem manipulator, libburnia
project.

libburn : SORRY : Timeout exceed (30000 ms). Retry canceled.

libburn : SORRY : Command: READ DISC INFORMATION #63,[2 04 00] : 51 00
00 00 00 00 00 00 22 00 : dxfer_len= 34
xorriso : NOTE : Disc status unsuitable for writing
Drive current: -outdev '/dev/sr0'
Media current: is not recognizable
Media status : is not recognizable

xorriso : NOTE : Tolerated problem event of severity 'SORRY'
Drive current: -outdev '/dev/sr0'
Drive access : exclusive:unrestricted
Drive type : vendor 'HL-DT-ST' product 'DVDRAM GH20NS10' revision
'EL00'
Drive id : 'K1386NK4932 '
Media current: is not recognizable
Media status : is not recognizable

Media blocks : 0 readable , 0 writable , 0 overall
TOC layout : Idx , sbsector , Size , Volume Id
xorriso : SORRY : Cannot obtain Table Of Content
xorriso : NOTE : Tolerated problem event of severity 'SORRY'
xorriso : NOTE : -return_with SORRY 32 triggered by problem severity
SORRY

Regards
Chris

On Thu, 2020-09-24 at 16:09 +0000, Thomas Schmitt wrote:
> Hi,
>
> > libburn : SORRY : Asynchronous SCSI error on waiting after START
> > UNIT
> > (+ LOAD) [6 28 81] Drive event. Unknown ASCQ with drive event ASC
> > 28.
>
> Grr. A higher level intervened.
>
> In line 198 of file
>
> ~/xorriso/xorriso-1.5.3/libburn/spc.c
>
> there is
>
> if (key == 0x6 && asc == 0x28 && ascq ==
> 0x00)
>
> which should be shortened to
>
> if (key == 0x6 && asc == 0x28)
>
> Do you feel apt to make this code change and then run
>
> make
>
> again ?
> (Else i would upload a new tarball.)
>
> This time i simulated the drive reply 0x6, 0x28, 0x81 in the waiting
> loop
> from where the message stems. Without " && ascq == 0x00" in line 198
> it
> works for me. So now it is up to your drive to tell me where else
> this
> unexpected error code creates mistrust, or what other interesting
> replies
> it has to offer.
>
> Have a nice day :)
>
> Thomas
>

Revision history for this message
Thomas Schmitt (scdbackup) wrote :

Hi,

well, at least we got over the strange error code.

> libburn : SORRY : Timeout exceed (30000 ms). Retry canceled.
> libburn : SORRY : Command: READ DISC INFORMATION #63,[2 04 00] : 51 00
> 00 00 00 00 00 00 22 00 : dxfer_len= 34

The command READ DISC INFORMATION was retried 63 times. The last failure
was because of a timeout of 30 seconds.
The failed command does not cause much effort in the drive. It is just an
inquiry about the overall state of the loaded medium. Normally it is done
within less than a millisecond.

The drive seems to have announced that there is a medium loaded.
Else libburn would not have had interest in the medium state.

As it seems now, this drive is quite unusable. See below for a deeper
inspection of what is going on between it and libburn.

> Drive type : vendor 'HL-DT-ST' product 'DVDRAM GH20NS10' revision 'EL00'

Googling "GH20NS10" "EL00" shows that this drive is around since 2007.
How old is yours ? When was last it was re-cabled or moved to another box ?

Do you have an opportunity to test it with MS-Windows without touching the
hardware ? It would be quite astonishing if it worked right now with the
same medium loaded as with your above xorriso run.

--------------------------------------------------------------------------

Let's break out the big gear and add command -scsi_log "on" to the xorriso
run. Because the output on standard error channel will be very verbous,
we catch it in a file in /tmp while still showing it on terminal:

  ./xorriso/xorriso -scsi_log on -outdev /dev/sr0 -toc 2>&1 \
  | tee -i /tmp/xorriso.log

(I write this as two lines with a "\" at the end of the first, because the
 bug tracker breaks up oversized lines. You may write it in one line without
 that "\":

  ./xorriso/xorriso -scsi_log on -outdev /dev/sr0 -toc 2>&1 | tee -i /tmp/xorriso.log

)

This will log the SCSI commands and their replies as they go forth and back
between libburn and the drive.
Add the emerging file
  /tmp/xorriso.log
as attachment to your next comment.

If the attachment is rejected for any reason, send the file to
  <email address hidden>
as mail body or as attachment.

It will be interesting to see all error replies and the timing of command
execution.

--------------------------------------------------------------------------

Have a nice day :)

Thomas

Revision history for this message
Thomas Schmitt (scdbackup) wrote :

Correction:
The single command READ DISC INFORMATION probably did not timeout, but was repeated
with intermediate waiting until 30 seconds had elapsed. So the drive probably reacts swiftly but
always says that it is not yet ready.

Revision history for this message
chris gibbons (chrisgibbons) wrote :

Hi Thomas.

sorry that it has taken a while to get back to you.
the drive failed completely, would not read or write.
i have perchased another drive, and that is workig ok.
the srange this is that if you use the Disks program in utilities. it
shows the drive as read only. this is what got me thinking that ubuntu
was at fault.

thank you for your time and assistance.

many thanks
Chris

On Fri, 2020-09-25 at 09:01 +0000, Thomas Schmitt wrote:
> Correction:
> The single command READ DISC INFORMATION probably did not timeout,
> but was repeated
> with intermediate waiting until 30 seconds had elapsed. So the drive
> probably reacts swiftly but
> always says that it is not yet ready.
>

Revision history for this message
Thomas Schmitt (scdbackup) wrote :

Hi,

sorry for your drive.

But good for Linux burn programs that MS-Windows does not know something
essential about drive error messages which we Linuxers don't know.

> the srange this is that if you use the Disks program in utilities.

That's probably a message from the kernel via systemd and lsblk.
Although the Linux kernel is willing to apply disk write commands to
overwritable media in optical drives, it mostly treats them as CD-ROM.

That's why there are burn programs in userspace which send SCSI commands
directly to the drive, circumventing the buffered block device layers of
the kernel.

And that's why much of the kernel's cdrom and sr driver code had few
motivation to follow the technical evolution from CD to DVD and BD.
(The relation of cdrom and sr is funny enough. cdrom was meant as
 abstraction of the various hunchbacked CD drives of the mid 1990s with
 proprietary controllers and command sets. sr represents for cdrom the
 then rare SCSI drives which are now the only survivors at PATA, SATA
 and USB. Meanwhile code execution hops forth and back between both
 drivers which are actually only one.)

Well, now i have to think what to do with my code change to tolerate all
6,28,XX error codes ...

Have a nice day :)

Thomas

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.