On Wed, Feb 06, 2002 at 12:32:43AM -0800, Ben Fennema wrote:
The first write succeeded, at least so it claims. If you look at block 16, 17, and 18, do you see anything (use dumpsect)? Can you read anything beyond the first packet? (namely block 256-287, which is the first write the fails)...
The blocks appear to be blank (by the way, dumpsect is absent from udftools 1.0.0b, but I got it from 0.9.5). How many bytes should I read? 4 bytes yields: $ dumpsect /dev/sr1 16 4 16: seek to 64 ok, retval 64 retval= 4 00000010-000: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ $ dumpsect /dev/sr1 17 4 17: seek to 68 ok, retval 68 retval= 4 00000011-000: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ $ dumpsect /dev/sr1 18 4 18: seek to 72 ok, retval 72 retval= 4 00000012-000: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ Sectors 254-257 are similarly full of 0's. Likewise 286-289. Or am I using dumpsect the wrong way?
If you run mkudffs on /dev/pktcdvd0, can you get it to format (you probably need to specify the number of blocks)? Or do you get the same type of errors...
It appeared to run with no extra arguments, put no error messages to stdout: # mkudffs /dev/pktcdvd0 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=16, type=PVDS start=273, blocks=1, type=LVID start=274, blocks=275213, type=PSPACE start=275487, blocks=1, type=ANCHOR start=275488, blocks=239, type=USPACE start=275727, blocks=16, type=RVDS start=275743, blocks=1, type=ANCHOR But I'm not sure about syslog: Feb 6 22:49:07 strider kernel: usb-storage: Command MODE_SELECT_10 (10 bytes) Feb 6 22:49:07 strider kernel: usb-storage: 55 10 00 00 00 00 00 00 14 00 00 00 Feb 6 22:49:07 strider kernel: usb-storage: Status = 50 Feb 6 22:49:07 strider kernel: usb-storage: In hp8200e_transport() before usb_rw_block_test() for SCSI_DATA_WRITE. Feb 6 22:49:07 strider kernel: usb-storage: Transferred out 38 of 38 bytes Feb 6 22:49:07 strider kernel: usb-storage: Transferred out 20 of 20 bytes Feb 6 22:49:07 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 75 minutes. Feb 6 22:49:07 strider kernel: usb-storage: Waited not busy for 0 steps Feb 6 22:49:07 strider kernel: usb-storage: In hp8200e_transport(), usb_rw_block_test() complete with result=0. Feb 6 22:49:07 strider kernel: usb-storage: Wrote 00000050 bytes Feb 6 22:49:07 strider kernel: usb-storage: scsi cmd done, result=0x0 Feb 6 22:49:07 strider kernel: usb-storage: *** thread sleeping. Feb 6 22:49:07 strider kernel: usb-storage: queuecommand() called Feb 6 22:49:07 strider kernel: usb-storage: *** thread awakened. Feb 6 22:49:07 strider kernel: usb-storage: Command SET CD SPEED (12 bytes) Feb 6 22:49:07 strider kernel: usb-storage: bb 00 10 80 0b 00 00 00 00 00 00 00 Feb 6 22:49:07 strider kernel: usb-storage: Status = 50 Feb 6 22:49:07 strider kernel: usb-storage: Transferred out 14 of 14 bytes Feb 6 22:49:07 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 0 minutes. Feb 6 22:49:07 strider kernel: usb-storage: Waited not busy for 0 steps Feb 6 22:49:07 strider kernel: usb-storage: In hp8200e_transport() before usb_write_block(), cmnd = 0xbb. Feb 6 22:49:07 strider kernel: usb-storage: Transferred out 12 of 12 bytes Feb 6 22:49:07 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 10 minutes. Feb 6 22:49:07 strider kernel: usb-storage: In hp8200e_transport(), usb_write_block() complete with result=1. Feb 6 22:49:07 strider kernel: usb-storage: -- transport indicates command failure Feb 6 22:49:07 strider kernel: usb-storage: Issuing auto-REQUEST_SENSE Feb 6 22:49:07 strider kernel: usb-storage: Status = 00 Feb 6 22:49:07 strider kernel: usb-storage: Transferred out 14 of 14 bytes Feb 6 22:49:07 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 0 minutes. Feb 6 22:49:07 strider kernel: usb-storage: Waited not busy for 0 steps Feb 6 22:49:07 strider kernel: usb-storage: In hp8200e_transport() before usb_write_block(), cmnd = 0x3. Feb 6 22:49:07 strider kernel: usb-storage: Transferred out 12 of 12 bytes Feb 6 22:49:07 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 10 minutes. Feb 6 22:49:07 strider kernel: usb-storage: Waited not busy for 0 steps Feb 6 22:49:07 strider kernel: usb-storage: Transferred in 18 of 18 bytes Feb 6 22:49:07 strider kernel: usb-storage: 70 00 05 00 00 00 00 12 00 00 00 00 24 00 00 00 Feb 6 22:49:07 strider kernel: usb-storage: 00 00 Feb 6 22:49:07 strider kernel: usb-storage: -- Result from auto-sense is 0 Feb 6 22:49:07 strider kernel: usb-storage: -- code: 0x70, key: 0x5, ASC: 0x24, ASCQ: 0x0 Feb 6 22:49:07 strider kernel: usb-storage: Illegal Request: invalid field in CDB Feb 6 22:49:07 strider kernel: usb-storage: scsi cmd done, result=0x2 Feb 6 22:49:07 strider kernel: usb-storage: *** thread sleeping. Feb 6 22:49:07 strider kernel: sr1: CDROM (ioctl) reports ILLEGAL REQUEST. Feb 6 22:49:07 strider kernel: pktcdvd: pktcdvd0 couldn't set write speed Feb 6 22:49:07 strider kernel: usb-storage: queuecommand() called Feb 6 22:49:07 strider kernel: usb-storage: *** thread awakened. Feb 6 22:49:07 strider kernel: usb-storage: Command ALLOW_MEDIUM_REMOVAL (6 bytes) ... Setting the write speed seemed to fail. Does mkudffs default to 12x like cdrwtool does? I couldn't see any option to set it to 4x. And I still can't mount the CD (mount: /dev/pktcdvd0: can't read superblock).
You could also try generating a multi-packet chunk of data and writing it to the disc using cdrwtool -f <file> and see if you can get it to write more than just the first packet...
Seems to be a similar problem. netspace-homeadsl.pdf is 292840 bytes. # cdrwtool -d /dev/sr1 -t 4 -f netspace-homeadsl.pdf using device /dev/sr1 setting speed to 4 write file netspace-homeadsl.pdf 4085KB internal buffer setting write speed to 4x writing at lba = 0, blocks = 32 writing at lba = 32, blocks = 32 wait_cmd: Invalid argument Command failed: 2a 00 00 00 00 20 00 00 20 00 00 00 - sense 05.24.00 Log file, from first WRITE_10, is: Feb 6 23:00:56 strider kernel: usb-storage: Command WRITE_10 (10 bytes) Feb 6 23:00:56 strider kernel: usb-storage: 2a 00 00 00 00 00 00 00 20 00 00 00 Feb 6 23:00:56 strider kernel: usb-storage: Status = 50 Feb 6 23:00:56 strider kernel: usb-storage: In hp8200e_transport() before usb_rw_block_test() for SCSI_DATA_WRITE. Feb 6 23:00:56 strider kernel: usb-storage: Transferred out 38 of 38 bytes Feb 6 23:00:56 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 75 minutes. Feb 6 23:00:56 strider kernel: usb-storage: Waited not busy for 1 steps Feb 6 23:00:56 strider kernel: usb-storage: In hp8200e_transport(), usb_rw_block_test() complete with result=0. Feb 6 23:00:56 strider kernel: usb-storage: Wrote 0001003C bytes Feb 6 23:00:56 strider kernel: usb-storage: scsi cmd done, result=0x0 Feb 6 23:00:56 strider kernel: usb-storage: *** thread sleeping. Feb 6 23:00:56 strider kernel: usb-storage: queuecommand() called Feb 6 23:00:56 strider kernel: usb-storage: *** thread awakened. Feb 6 23:00:56 strider kernel: usb-storage: Command SYNCHRONIZE_CACHE (10 bytes) Feb 6 23:00:56 strider kernel: usb-storage: 35 02 00 00 00 00 00 00 00 00 00 00 Feb 6 23:00:56 strider kernel: usb-storage: Status = 58 Feb 6 23:00:56 strider kernel: usb-storage: Transferred out 14 of 14 bytes Feb 6 23:00:56 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 0 minutes. Feb 6 23:00:56 strider kernel: usb-storage: Waited not busy for 0 steps Feb 6 23:00:56 strider kernel: usb-storage: In hp8200e_transport() before usb_write_block(), cmnd = 0x35. Feb 6 23:00:56 strider kernel: usb-storage: Transferred out 12 of 12 bytes Feb 6 23:00:56 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 10 minutes. Feb 6 23:00:56 strider kernel: usb-storage: Waited not busy for 0 steps Feb 6 23:00:56 strider kernel: usb-storage: scsi cmd done, result=0x0 Feb 6 23:00:56 strider kernel: usb-storage: *** thread sleeping. Feb 6 23:00:56 strider kernel: usb-storage: queuecommand() called Feb 6 23:00:56 strider kernel: usb-storage: *** thread awakened. Feb 6 23:00:56 strider kernel: usb-storage: Command WRITE_10 (10 bytes) Feb 6 23:00:56 strider kernel: usb-storage: 2a 00 00 00 00 20 00 00 20 00 00 00 Feb 6 23:00:56 strider kernel: usb-storage: Status = 50 Feb 6 23:00:56 strider kernel: usb-storage: In hp8200e_transport() before usb_rw_block_test() for SCSI_DATA_WRITE. Feb 6 23:00:56 strider kernel: usb-storage: Transferred out 38 of 38 bytes Feb 6 23:00:56 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 75 minutes. Feb 6 23:00:56 strider kernel: usb-storage: In hp8200e_transport(), usb_rw_block_test() complete with result=1. Feb 6 23:00:56 strider kernel: usb-storage: -- transport indicates command failure Feb 6 23:00:56 strider kernel: usb-storage: Issuing auto-REQUEST_SENSE Feb 6 23:00:56 strider kernel: usb-storage: Status = 00 Feb 6 23:00:56 strider kernel: usb-storage: Transferred out 14 of 14 bytes Feb 6 23:00:56 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 0 minutes. Feb 6 23:00:57 strider kernel: usb-storage: Waited not busy for 0 steps Feb 6 23:00:57 strider kernel: usb-storage: In hp8200e_transport() before usb_write_block(), cmnd = 0x3. Feb 6 23:00:57 strider kernel: usb-storage: Transferred out 12 of 12 bytes Feb 6 23:00:57 strider kernel: usb-storage: In usbat_wait_not_busy(), waiting for 10 minutes. Feb 6 23:00:57 strider kernel: usb-storage: Waited not busy for 1 steps Feb 6 23:00:57 strider kernel: usb-storage: Transferred in 18 of 18 bytes Feb 6 23:00:57 strider kernel: usb-storage: 70 00 05 00 00 00 00 12 00 00 00 00 24 00 00 C0 Feb 6 23:00:57 strider kernel: usb-storage: 00 02 Feb 6 23:00:57 strider kernel: usb-storage: -- Result from auto-sense is 0 Feb 6 23:00:57 strider kernel: usb-storage: -- code: 0x70, key: 0x5, ASC: 0x24, ASCQ: 0x0 Feb 6 23:00:57 strider kernel: usb-storage: Illegal Request: invalid field in CDB Feb 6 23:00:57 strider kernel: usb-storage: scsi cmd done, result=0x2
Here's the first (theoretically successful) write...
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
And this one seems to fail.. Know what the Status = XX means?
Status is the (unsigned char) value, formatted as %02X, from: result = usbat_read(us, USBAT_ATA, 0x17, &status); in hp8200e_transport() of usb/storage/shuttle_usbat.c. usbat_read() defers definition of status to usbat_send_control(), where it is called xfer_data. Thence to usb_stor_control_msg(), which is defined in transport.c, where status is now known as "data". It then gets passed to FILL_CONTROL_URB, defined in linux/usb.h, in which the status (what is ultimately an input/output buffer), gets set to (argument d in FILL_CONTROL_URB): us->current_urb->transfer_buffer So I guess the value of status is what comes out in that buffer after the URB has processed the given command. Which doesn't really help in understanding what "status=50" means. Sorry I can't make more sense of it than that, I barely even know what a URB is! 0x50 = 80, 0x58=88, which corresponds to ELIBBAD and ENOTSOCK in errno.h, unless my arithmetic is bad, neither of which really make sense in this context, and aren't remapped to a USB code in linux/usb.h, like some other standard error codes are. Should I ask the usb-storage maintainer to help?
And you can just run cdrwtool -m 275744 (in your case) to run mkudffs.. Once its formated, assuming it's formated ok, you don't need to format again.
Did you mean cdrwtool -u 275744 ? -m just went and ran FORMAT_UNIT again (another 40 minutes gone...) But cdrwtool -u 275744 gets the same problem after the second WRITE_10. Drew -- PGP public key available at http://people.debian.org/~dparsons/drewskey.txt Fingerprint: A110 EAE1 D7D2 8076 5FE0 EC0A B6CE 7041 6412 4E4A