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...