burncd(8) CD-RW blanking problem

From: Lefteris Chatzibarbas <lefcha_at_hellug.gr>
Date: Sat, 6 Dec 2003 19:48:59 +0200
Hello,

I have a problem when blanking a CD-RW (I think the problem first
appeared when I started using ATAng but I am not sure).  System is:

  FreeBSD bsd 5.2-BETA FreeBSD 5.2-BETA #0: Sat Dec  6 11:15:34 EET 2003
  root_at_bsd:/usr/obj/usr/src/sys/CUSTOM  i386
  
My CD-R/RW device is a TEAC CD-W524E:

  acd1: <CD-W524E/1.0A> CDRW drive at ata1 as slave
  acd1: read 6890KB/s (6890KB/s) write 4134KB/s (4134KB/s), 1404KB buffer, UDMA33
  acd1: Reads: CDR, CDRW, CDDA stream, packet
  acd1: Writes: CDR, CDRW, test write, burnproof
  acd1: Audio: play, 256 volume levels
  acd1: Mechanism: ejectable tray, unlocked
  acd1: Medium: no/blank disc

The command I use to blank a CD-RW disc is:

  # burncd -f /dev/acd1 -s 10 blank

The problem is that the "blanking CD, please wait.." message is printed,
the CD-RW is blanked succesfully, but burncd never returns.

After a little searching it seems that the program cannot get out of the
while() loop at line 198 of src/usr.sbin/burncd/burncd.c:

       while (1) {
		sleep(1);
		if (ioctl(fd, CDRIOCGETPROGRESS, &pct) == -1)
			err(EX_IOERR,"ioctl(CDRIOGETPROGRESS)");
		if (pct > 0 && !quiet)
			fprintf(stderr,
				"%sing CD - %d %% done     \r",
				blank == CDR_B_ALL ?
				"eras" : "blank", pct);
		if (pct == 100 || (pct == 0 && last > 90))
			break;
		last = pct;
	}

The pct variable is always 0, even after the blanking of the CD-RW is
finished (according to the device's LEDs), so the program falls into an
infinite loop.

Of course, hitting ^C exits burncd...

Does anyone else has this problem? Is it specific to my CD-R/RW device?

Thanks
Received on Sat Dec 06 2003 - 08:36:23 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:32 UTC