On Fri, Feb 01, 2002 at 10:57:08AM -0800, Ben Fennema wrote:
Ok, give this patch a try.. It should fix the problem.
Ben
diff -u -p -r1.3 main.c --- main.c 2002/01/30 21:39:59 1.3 +++ main.c 2002/02/01 18:48:13 @@ -136,7 +136,7 @@ int quick_setup(int fd, struct cdrw_disc return ret;
blocks = msf_to_lba(di.lead_out_m, di.lead_out_s, di.lead_out_f) - 152; - if (disc->fpacket && !(ti.packet && ti.fp)) + if (disc->fpacket) { /* fixed packets format usable blocks */ blocks = ((blocks + 7) / (disc->packet_size + 7)) * disc->packet_size;
I've just upgraded to the 2.4.18-pre7 patch, applying to the 2.4.17 kernel (is this a problem?), with udftools 1.0.0b1. I needed to add the patch given above. Now formatting still works (still 40 min), but writing UDF structures fails, although cdrwtool still claims it finished succcessfully: # cdrwtool -d /dev/sr1 -t 4 -q using device /dev/sr1 setting speed to 4 4085KB internal buffer setting write speed to 4x Settings for /dev/sr1: Fixed packets, size 32 Mode-2 disc I'm going to do a quick setup of /dev/sr1. The disc is going to be blanked and formatted with one big track. All data on the device will be lost!! Press CTRL-C to cancel now. ENTER to continue. Initiating quick disc blank Disc capacity is 275744 blocks (551488KB/538MB) Formatting track start=0, blocks=16, type=RESERVED start=16, blocks=3, type=VRS start=19, blocks=237, type=USPACE start=256, blocks=1, type=ANCHOR start=257, blocks=31, type=USPACE start=288, blocks=32, type=PVDS start=320, blocks=32, type=LVID start=352, blocks=32, type=STABLE start=384, blocks=1024, type=SSPACE start=1408, blocks=274048, type=PSPACE start=275456, blocks=31, type=USPACE start=275487, blocks=1, type=ANCHOR start=275488, blocks=160, type=USPACE start=275648, blocks=32, type=STABLE start=275680, blocks=32, type=RVDS start=275712, blocks=31, type=USPACE start=275743, blocks=1, type=ANCHOR Writing UDF structures to disc wait_cmd: Invalid argument Command failed: 2a 00 00 00 01 00 00 00 20 00 00 00 - sense 05.24.00 wait_cmd: Invalid argument Command failed: 2a 00 00 00 01 20 00 00 20 00 00 00 - sense 05.24.00 wait_cmd: Invalid argument Command failed: 2a 00 00 00 01 40 00 00 20 00 00 00 - sense 05.24.00 wait_cmd: Invalid argument Command failed: 2a 00 00 00 01 60 00 00 20 00 00 00 - sense 05.24.00 wait_cmd: Invalid argument Command failed: 2a 00 00 00 05 80 00 00 20 00 00 00 - sense 05.24.00 wait_cmd: Invalid argument Command failed: 2a 00 00 00 05 a0 00 00 20 00 00 00 - sense 05.24.00 wait_cmd: Invalid argument Command failed: 2a 00 00 00 05 c0 00 00 20 00 00 00 - sense 05.24.00 wait_cmd: Invalid argument Command failed: 2a 00 00 00 05 e0 00 00 20 00 00 00 - sense 05.24.00 wait_cmd: Invalid argument Command failed: 2a 00 00 00 06 00 00 00 20 00 00 00 - sense 05.24.00 wait_cmd: Invalid argument Command failed: 2a 00 00 00 06 20 00 00 20 00 00 00 - sense 05.24.00 wait_cmd: Invalid argument Command failed: 2a 00 00 04 34 00 00 00 20 00 00 00 - sense 05.24.00 wait_cmd: Invalid argument Command failed: 2a 00 00 04 34 c0 00 00 20 00 00 00 - sense 05.24.00 wait_cmd: Invalid argument Command failed: 2a 00 00 04 34 e0 00 00 20 00 00 00 - sense 05.24.00 wait_cmd: Invalid argument Command failed: 2a 00 00 04 35 00 00 00 20 00 00 00 - sense 05.24.00 Quick setup complete! Predictably, using the CD fails: # pktsetup /dev/pktcdvd0 /dev/sr1 # mount /dev/pktcdvd0 /cdrom -t udf -o rw,noatime mount: /dev/pktcdvd0: can't read superblock Excerpts from the log (from FORMAT_UNIT) look like: ... Feb 5 00:25:59 strider kernel: usb-storage: Command FORMAT_UNIT (6 bytes) Feb 5 00:25:59 strider kernel: usb-storage: 04 17 00 00 00 00 00 00 00 00 00 00 Feb 5 00:25:59 strider kernel: usb-storage: Status = 50 Feb 5 00:25:59 strider kernel: usb-storage: In hp8200e_transport() before usb_rw_block_test() for SCSI_DATA_WRITE. Feb 5 00:25:59 strider kernel: usb-storage: Transferred out 38 of 38 bytes Feb 5 00:25:59 strider kernel: usb-storage: Transferred out 16 of 16 bytes Feb 5 00:25:59 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 75 minutes. Feb 5 00:38:01 strider /USR/SBIN/CRON[1627]: (mail) CMD ( if [ -x /usr/sbin/exim -a -f /etc/exim/exim.conf ]; then /usr/sbin/exim -q ; fi) Feb 5 00:53:01 strider /USR/SBIN/CRON[1649]: (mail) CMD ( if [ -x /usr/sbin/exim -a -f /etc/exim/exim.conf ]; then /usr/sbin/exim -q ; fi) Feb 5 01:05:22 strider kernel: usb-storage: Waited not busy for 3463 steps Feb 5 01:05:22 strider kernel: usb-storage: In hp8200e_transport(), usb_rw_block_test() complete with result=0. Feb 5 01:05:22 strider kernel: usb-storage: Wrote 0000004C bytes Feb 5 01:05:22 strider kernel: usb-storage: scsi cmd done, result=0x0 Feb 5 01:05:22 strider kernel: usb-storage: *** thread sleeping. Feb 5 01:05:22 strider kernel: usb-storage: queuecommand() called Feb 5 01:05:22 strider kernel: usb-storage: *** thread awakened. Feb 5 01:05:22 strider kernel: usb-storage: Command WRITE_10 (10 bytes) Feb 5 01:05:22 strider kernel: usb-storage: 2a 00 00 00 00 00 00 00 20 00 00 00 Feb 5 01:05:22 strider kernel: usb-storage: Status = 50 Feb 5 01:05:22 strider kernel: usb-storage: In hp8200e_transport() before usb_rw_block_test() for SCSI_DATA_WRITE. Feb 5 01:05:22 strider kernel: usb-storage: Transferred out 38 of 38 bytes Feb 5 01:05:22 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 75 minutes. Feb 5 01:05:22 strider kernel: usb-storage: Waited not busy for 1 steps Feb 5 01:05:22 strider kernel: usb-storage: In hp8200e_transport(), usb_rw_block_test() complete with result=0. Feb 5 01:05:22 strider kernel: usb-storage: Wrote 0001004C bytes Feb 5 01:05:22 strider kernel: usb-storage: scsi cmd done, result=0x0 Feb 5 01:05:22 strider kernel: usb-storage: *** thread sleeping. Feb 5 01:05:22 strider kernel: usb-storage: queuecommand() called Feb 5 01:05:22 strider kernel: usb-storage: *** thread awakened. Feb 5 01:05:22 strider kernel: usb-storage: Command WRITE_10 (10 bytes) Feb 5 01:05:22 strider kernel: usb-storage: 2a 00 00 00 01 00 00 00 20 00 00 00 Feb 5 01:05:22 strider kernel: usb-storage: Status = 58 Feb 5 01:05:22 strider kernel: usb-storage: In hp8200e_transport() before usb_rw_block_test() for SCSI_DATA_WRITE. Feb 5 01:05:22 strider kernel: usb-storage: Transferred out 38 of 38 bytes Feb 5 01:05:22 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 75 minutes. Feb 5 01:05:22 strider kernel: usb-storage: In hp8200e_transport(), usb_rw_block_test() complete with result=1. Feb 5 01:05:22 strider kernel: usb-storage: -- transport indicates command failure Feb 5 01:05:22 strider kernel: usb-storage: Issuing auto-REQUEST_SENSE Feb 5 01:05:22 strider kernel: usb-storage: Status = 00 Feb 5 01:05:22 strider kernel: usb-storage: Transferred out 14 of 14 bytes Feb 5 01:05:22 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 0 minutes. Feb 5 01:05:22 strider kernel: usb-storage: Waited not busy for 0 steps Feb 5 01:05:22 strider kernel: usb-storage: In hp8200e_transport() before usb_write_block(), cmnd = 0x3. Feb 5 01:05:22 strider kernel: usb-storage: Transferred out 12 of 12 bytes Feb 5 01:05:22 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 10 minutes. Feb 5 01:05:22 strider kernel: usb-storage: Waited not busy for 1 steps Feb 5 01:05:22 strider kernel: usb-storage: Transferred in 18 of 18 bytes Feb 5 01:05:22 strider kernel: usb-storage: 70 00 05 00 00 00 00 12 00 00 00 00 24 00 00 C0 Feb 5 01:05:22 strider kernel: usb-storage: 00 02 Feb 5 01:05:22 strider kernel: usb-storage: -- Result from auto-sense is 0 Feb 5 01:05:22 strider kernel: usb-storage: -- code: 0x70, key: 0x5, ASC: 0x24, ASCQ: 0x0 Feb 5 01:05:22 strider kernel: usb-storage: Illegal Request: invalid field in CDB Feb 5 01:05:22 strider kernel: usb-storage: scsi cmd done, result=0x2 Feb 5 01:05:22 strider kernel: usb-storage: *** thread sleeping. ... Feb 5 01:05:23 strider kernel: sr1: CDROM (ioctl) reports ILLEGAL REQUEST. Feb 5 01:05:23 strider kernel: usb-storage: queuecommand() called Feb 5 01:05:23 strider kernel: usb-storage: *** thread awakened. Feb 5 01:05:23 strider kernel: usb-storage: Command SYNCHRONIZE_CACHE (10 bytes) Feb 5 01:05:23 strider kernel: usb-storage: 35 02 00 00 00 00 00 00 00 00 00 00 Feb 5 01:05:23 strider kernel: usb-storage: Status = 50 Feb 5 01:05:23 strider kernel: usb-storage: Transferred out 14 of 14 bytes Feb 5 01:05:23 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 0 minutes. Feb 5 01:05:23 strider kernel: usb-storage: Waited not busy for 0 steps Feb 5 01:05:23 strider kernel: usb-storage: In hp8200e_transport() before usb_write_block(), cmnd = 0x35. Feb 5 01:05:23 strider kernel: usb-storage: Transferred out 12 of 12 bytes Feb 5 01:05:23 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 10 minutes. Feb 5 01:05:23 strider kernel: usb-storage: Waited not busy for 0 steps Feb 5 01:05:23 strider kernel: usb-storage: scsi cmd done, result=0x0 Feb 5 01:05:23 strider kernel: usb-storage: *** thread sleeping. Feb 5 01:05:23 strider kernel: usb-storage: queuecommand() called Feb 5 01:05:23 strider kernel: usb-storage: *** thread awakened. Feb 5 01:05:23 strider kernel: usb-storage: Command ALLOW_MEDIUM_REMOVAL (6 bytes) Feb 5 01:05:23 strider kernel: usb-storage: 1e 00 00 00 00 00 00 00 e0 f9 7a c5 Feb 5 01:05:23 strider kernel: usb-storage: Status = 50 Feb 5 01:05:23 strider kernel: usb-storage: Transferred out 14 of 14 bytes Feb 5 01:05:23 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 0 minutes. Feb 5 01:05:23 strider kernel: usb-storage: Waited not busy for 0 steps Feb 5 01:05:23 strider kernel: usb-storage: In hp8200e_transport() before usb_write_block(), cmnd = 0x1e. Feb 5 01:05:23 strider kernel: usb-storage: Transferred out 12 of 12 bytes Feb 5 01:05:23 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 10 minutes. Feb 5 01:05:23 strider kernel: usb-storage: Waited not busy for 0 steps Feb 5 01:05:23 strider kernel: usb-storage: scsi cmd done, result=0x0 Feb 5 01:05:23 strider kernel: usb-storage: *** thread sleeping. Feb 5 01:05:23 strider kernel: usb-storage: queuecommand() called Feb 5 01:05:23 strider kernel: usb-storage: *** thread awakened. Feb 5 01:05:23 strider kernel: usb-storage: Command ALLOW_MEDIUM_REMOVAL (6 bytes) Feb 5 01:05:23 strider kernel: usb-storage: 1e 00 00 00 00 00 7a c5 00 00 00 00 Feb 5 01:05:23 strider kernel: usb-storage: Status = 50 Feb 5 01:05:23 strider kernel: usb-storage: Transferred out 14 of 14 bytes Feb 5 01:05:23 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 0 minutes. Feb 5 01:05:23 strider kernel: usb-storage: Waited not busy for 0 steps Feb 5 01:05:23 strider kernel: usb-storage: In hp8200e_transport() before usb_write_block(), cmnd = 0x1e. Feb 5 01:05:23 strider kernel: usb-storage: Transferred out 12 of 12 bytes Feb 5 01:05:23 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 10 minutes. Feb 5 01:05:23 strider kernel: usb-storage: Waited not busy for 0 steps Feb 5 01:05:23 strider kernel: usb-storage: scsi cmd done, result=0x0 Feb 5 01:05:23 strider kernel: usb-storage: *** thread sleeping. Feb 5 01:08:01 strider /USR/SBIN/CRON[1670]: (mail) CMD ( if [ -x /usr/sbin/exim -a -f /etc/exim/exim.conf ]; then /usr/sbin/exim -q ; fi) cdrwtool -i then gives: # cdrwtool -d /dev/sr1 -t 4 -i using device /dev/sr1 setting speed to 4 4085KB internal buffer setting write speed to 4x wait_cmd: Invalid argument Command failed: bb 00 ff ff 02 c0 00 00 00 00 00 00 - sense 05.24.00 set speed or upon resetting (pulling the USB cord out and back in): # cdrwtool -d /dev/sr1 -t 4 -i using device /dev/sr1 setting speed to 4 4085KB internal buffer setting write speed to 4x DISC INFO: erasable : Yes border = 3 Disc status = 2 number of first track = 1 number of sessions = 1 number of tracks = 1 status of last track = 1 uru = 0 did_v = 1 dbc_v = 0 disc type = 32 disc_id = 5476675 lead_in = 255:255:255 (1166880) lead_out = 74:43:00 (336225) OPC entries = 0 TRACK INFO: Track 1 track_number = 1 session_number = 1 damage = 0 copy = 0 track_mode = 5 Rt = 1 blank = 0 packet = 1 fp = 1 data_mode = 2 lra_v = 0 nwa_v = 0 track_start = 0 next_writable = 4294967295 last_recorded = 0 free_blocks = 0 packet_size = 32 track_size = 275744 (551488KB) That's all for now. Drew ps I'd still like to hear if I must do cdrwtool -q next time and wait the 40 min all over again, or can I avoid that? -- PGP public key available at http://people.debian.org/~dparsons/drewskey.txt Fingerprint: A110 EAE1 D7D2 8076 5FE0 EC0A B6CE 7041 6412 4E4A