Yeeeeah, mam to!
Kód:
S.M.A.R.T: supported, enabled, self-test, error-logging
press any key to continue...
S.M.A.R.T. data ckecksum: OK
AttrID: 1 - Value: 69 - Worst: 62
AttrID: 3 - Value: 97 - Worst: 96
AttrID: 4 - Value: 100 - Worst: 100
AttrID: 5 - Value: 100 - Worst: 100
AttrID: 7 - Value: 76 - Worst: 60
AttrID: 9 - Value: 100 - Worst: 100
AttrID: 10 - Value: 100 - Worst: 100
AttrID: 12 - Value: 100 - Worst: 100
AttrID: 194 - Value: 32 - Worst: 57 (teplota)
AttrID: 195 - Value: 69 - Worst: 62
AttrID: 197 - Value: 100 - Worst: 100
AttrID: 198 - Value: 100 - Worst: 100
AttrID: 199 - Value: 200 - Worst: 200
AttrID: 200 - Value: 100 - Worst: 253
AttrID: 202 - Value: 100 - Worst: 253
zatim nemam SMART dekodovanej kompletne, ale to hlavni co me zajima, je teplota. BTW tech 57 stupnu se mi povedlo kdyz sem predelaval komp a nemel sem bocnice, takze suplikem netahnul vubec vzduch...
No takze kdyby to nekoho zajimalo, tak to funguje asi takle
1) poslani ATA prikazu SmartReadData s kodem B0h, podkodem D0h a signaturou C24Fh
IDE_exec_command(_ide_primary_io_base,drive,0xB0,0 ,0xD0,0xC24F,0,0,0,data_buffer);
funkci
Byte IDE_exec_command(DWord io_base, Byte drv, Byte cmd, Byte data, Byte feats, Word c, Byte h, Byte s, Byte scnt, Word *p_buffer)
2) zpracovani nactenych dat - 512B pomoci struktur
Kód:
typedef struct { // ATA/ATAPI-7 SMART ATTRIBUTE data structure, get by ATA
Byte ID __attribute__((packed)); // 00 - valid v
Word Status __attribute__((packed)); // 01 - 02 - bi
Byte Value __attribute__((packed)); // 03 - valid v
Byte Worst __attribute__((packed)); // 04
DWord Current __attribute__((packed)); // 05 - 08
Byte VendorSpecific[3] __attribute__((packed)); // 09 - 11
} IDE_SMART_ATTRIBUTE;
typedef struct { // ATA/ATAPI-7 SMART data structure, get by ATA command B0
Word DataStructureRevision __attribute__((packed)); // 000 - 001
IDE_SMART_ATTRIBUTE Attributes[30] __attribute__((packed)); // 002
Byte OffLineDataColStatus __attribute__((packed)); // 362
Byte SelfTestExecStatus __attribute__((packed)); // 363
Word TTime4OffLineDataCol __attribute__((packed)); // 364 - 365
Byte VendorSpecific2 __attribute__((packed)); // 366
Byte OffLineDataColCap __attribute__((packed)); // 367
Word SMARTCapability __attribute__((packed)); // 368 - 369
Byte ErrorLoggingCap __attribute__((packed)); // 370
Byte VendorSpecific3 __attribute__((packed)); // 371
Byte ShortSelfTestRecPTime __attribute__((packed)); // 372
Byte ExtSelfTestRecPTime __attribute__((packed)); // 373
Byte ConvSelfTestRecPTime __attribute__((packed)); // 374
Byte Reserved1[11] __attribute__((packed)); // 375 - 385
Byte VendorSpecific4[125] __attribute__((packed)); // 386 - 510
Byte Checksum __attribute__((packed)); // 511
} IDE_SMART_DATA;
Dulezite je pole Attributes, kde muze byt az 30 atributu, zalezi na vyrobci
ve strukture je atributu je pak dulezite ID, pokud je nenulove, je atribut platny, celkem je definovano az 255 atributu, z toho napr. 194 je udaj teplote. Buhuzel se mi nepodarilo sehnat nakou novejsi SMART specifikaci, takze vyznam atributu zistuju z ruznych zdrojaku co sem nasel na netu.
No ted kdyz sem nakouknul pod poklicku ATA a SMART tak zas vidim o neco dale a muzu rict jen ze vim ze nic nevim. Ten SMART ma tuny dalsich features tykajicich se treba logovani, sem nemel sajna. Skoda ze se jich zatim moc nevyuziva...