тест на парковку
| Цитата | t isn't too pretty to rely on such unreliable timing anyways. I'm >>>>not too crazy about spinning the disk down either, it's useless wear >>>>compared to just parking the head. >>> >>>Fully agreed, and that's the approach the IBM Windows driver seems to >>>take - you just hear the disk park its head when the sensor kicks in >>>(you can hear it) - the disk does not spin down when this happens. >>> >>>Could this be some reserved ATA command that only works with certain# >>>drives? >> >>Perhaps the IDLE or IDLEIMMEDIATE commands imply a head parking, that >>would make sense. As you say, you can hear a drive parking its head. >>Here's a test case, it doesn't sound like it's parking the hard here. > > > ATA7 defines a park maneuvre, I don't know how well supported it is yet > though. You can test with this little app, if it says 'head parked' it > works. If not, it has just idled the drive.
|
| Код | #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <string.h> #include <sys/ioctl.h> #include <linux/hdreg.h> int main(int argc, char *argv[]) { unsigned char buf[8]; int fd; if (argc < 2) { printf("%s <dev>\n", argv[0]); return 1; } fd = open(argv[1], O_RDONLY); if (fd == -1) { perror("open"); return 1; } memset(buf, 0, sizeof(buf)); buf[0] = 0xe1; buf[1] = 0x44; buf[3] = 0x4c; buf[4] = 0x4e; buf[5] = 0x55; if (ioctl(fd, HDIO_DRIVE_TASK, buf)) { perror("ioctl"); return 1; } if (buf[3] == 0xc4) printf("head parked\n"); else printf("head not parked %x\n", buf[3]); close(fd); return 0; }
|
Еще интересное по HDIOCTL http://developer.osdl.org/dev/robustmutexes/src/fusyn.hg/Documentation/ioctl/hdio.txt @ вот патчик =) http://www.uwsg.iu.edu/hypermail/linux/kernel/0612.1/0568.html
|