Re: LIBATA told me it's broken

From: Robert Hancock
Date: Tue Mar 10 2009 - 19:55:59 EST


Norman Diamond wrote:
Sorry the kernel is 2.6.24.3 but I can't use a newer one
yet because TASKFILEs broke in newer ones. This time I
booted with kernel parameter hda=noprobe so the hard disk
went to LIBATA instead of IDE. The breakage shown below
is in LIBATA.

If LIBATA is fixed in newer kernel versions please say. If there's a version of Slax where LIBATA works then maybe
I can recompile its kernel without IDE.

There have been a ton of changes in libata since 2.6.24, it's hard to say whether anything has changed along the way that would affect this. The easiest way to find out is to try a newer kernel.


struct sg_io_hdr sg_io;
uint8_t cdb[16];
uint8_t sense[32];
uint8_t buffer[0x20000]; // length = 256 * 512
memset(&sg_io, 0, sizeof sg_io);
memset(&cdb, 0, sizeof cdb);
memset(&sense, 0, sizeof sense);
memset(&buffer, 0xe5, sizeof buffer);
cdb[0] = 0x8a; // WRITE (16)
cdb[6] = 0x0f;
cdb[7] = 0xff;
cdb[8] = 0xff;
cdb[9] = 0x00; // start = 0x0fffff00
cdb[12] = 0x01;
cdb[13] = 0x00; // count = 0x0100
sg_io.interface_id = 'S';
sg_io.cmdp = cdb;
sg_io.cmd_len = sizeof cdb;
sg_io.dxferp = buffer;
sg_io.dxfer_len = 256 * 512;
sg_io.dxfer_direction = SG_DXFER_TO_DEV;
sg_io.sbp = sense;
sg_io.mx_sb_len = sizeof sense;
sg_io.timeout = 2000;
fd = open("/dev/sda", O_WRONLY); // succeeded
ioctl(fd, SG_IO, &sg_io); // ioctl succeeded
// but LIBATA failed

CHECK CONDITION
sense:
72 0b 14 00 00 00 00 0c 00 0a 80 00 00 00 00 00
0f ff ff 00

Anything in dmesg?


/dev/sda is a 250GB SATA drive but Dell's Intel ICH7M
presents it as ATA. Ranges before and after the magic
LBA28 boundary wrote perfectly.



--------------------------------------
Power up the Internet with Yahoo! Toolbar.
http://pr.mail.yahoo.co.jp/toolbar/

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/