 | SMART Information, insbesondere Temperatur |  |
Verfasst am: Di 26. Jul 2005, 13:25 |
|
|
Sheridan |
TV-Junkie |

 |
|
Anmeldungsdatum: 01.03.2005 |
Beiträge: 123 |
Wohnort: Tübingen |
|
|
|
 |
 |
 |
|
Hallo,
nachdem es unseren SFWH (SuperFirmWareHackern) gelungen ist, direkt mit
der IDE-Platte zu kommunizieren, frage ich mich gerade, ob man dann
nicht auch die SMART Informationen auslesen kann und so v.a. die
Temperatur der Platte und vielleicht auch noch, ob es ihr noch gut
geht, auslesen kann?
Nur mal so als Idee, falls Euch nichts mehr einfällt, was man programmieren könnte
Viele Grüße,
Michael
PS: vielleicht kann man da aus den smartmontools von Linux was abgucken. |
|
_________________ TF5500PVR,
Firmware 10.06.2005, 250 GB Samsung HA250JC, NiceDisplay 1.6b2,
ImproBox 1.44RC15a, Jag's EPG 2.7b7, TSR-Commander 1.2, ProgressBarKeys
8.4bAPI1.22, MatrixSaver 1.7, ReZap 1.8, Automove 1.6a (in dieser
Startreihenfolge) |
|
|
|
Verfasst am: Di 26. Jul 2005, 22:53 |
|
|
Acade |
Software-Guru |

 |
|
Anmeldungsdatum: 19.04.2005 |
Beiträge: 80 |
Wohnort: Bayern |
|
|
|
 |
 |
 |
|
|
|
|
|
Verfasst am: Mi 27. Jul 2005, 0:14 |
|
|
FireBird |
Software-Guru |

 |
|
Anmeldungsdatum: 09.04.2004 |
Beiträge: 395 |
Wohnort: Wien |
|
|
|
 |
 |
 |
|
Mir
ist es heute gelungen, Sektoren der Harddisk auszulesen (aufgrund
meiner 0 TAP- und sehr geringen C-Kenntnisse, ein mühsamer Prozess).
Seltsamer weise bringt das „Device Identify“-Command die Kommunikation
mit der Platte zum Stillstand, obwohl es das selbe PIO-Protokoll wie
das „Read Sectors“-Command verwendet. „Smart Read Data“ liefert zwar
etwas zurück, ob das sinnvoll ist, werde ich erst morgen prüfen.
Wer bastelt noch mit?
MfG. FireBird |
|
|
|
|
 | |  |
Verfasst am: Mi 27. Jul 2005, 7:45 |
|
|
steve0564 |
Guru |

 |
|
Anmeldungsdatum: 14.07.2004 |
Beiträge: 1423 |
Wohnort: Oberland / Bayern |
|
|
|
 |
 |
 |
|
So
ein Toptool sollte aber auf jedenfall auch als Standalonetap kommen.
Inwieweit bestimmte Funktionen dann ich ein bestehendes TAP integriert
werden, ist eine andere Sache.  |
|
_________________ LG
Steve
TF 5500 (FW:
10.06.2005) + Samsung SV1604N; nur FTA; Taps: Improbox Premium
V1.44RC13c; Jaq's EPG V2.7 Beta 7; NiceDisplay V1.6 beta 1; Automove
V1.6a |
|
|
|
 | |  |
Verfasst am: Mi 27. Jul 2005, 12:04 |
|
|
DeadBeef |
TAP-Guru |

|
|
Anmeldungsdatum: 28.03.2005 |
Beiträge: 118 |
Wohnort: am Schwäbischen Meer |
|
|
|
 |
 |
 |
|
FireBird hat folgendes geschrieben:: |
Mir
ist es heute gelungen, Sektoren der Harddisk auszulesen (aufgrund
meiner 0 TAP- und sehr geringen C-Kenntnisse, ein mühsamer Prozess).
Seltsamer weise bringt das „Device Identify“-Command die Kommunikation
mit der Platte zum Stillstand, obwohl es das selbe PIO-Protokoll wie
das „Read Sectors“-Command verwendet. „Smart Read Data“ liefert zwar
etwas zurück, ob das sinnvoll ist, werde ich erst morgen prüfen.
Wer bastelt noch mit? |
Benutzst Du die richtige Registeradresse für IDE-Daten (0xb0012d20)?
Ich bin dabei den Ablauf für das Auslesen der Device ID in der FW in C-Code umzuwandeln. Da gibt es jede Menge Warteschleifen.
Gruß
DeadBeef |
|
|
|
|
 | |  |
Verfasst am: Mi 27. Jul 2005, 12:18 |
|
|
FireBird |
Software-Guru |

 |
|
Anmeldungsdatum: 09.04.2004 |
Beiträge: 395 |
Wohnort: Wien |
|
|
|
 |
 |
 |
|
DeadBeef hat folgendes geschrieben:: |
Benutzst Du die richtige Registeradresse für IDE-Daten (0xb0012d20)? |
Ja, wobei es ein Word-Register ab 0xb0012d22
ist. Alles andere liefert, zumindest bei meinen Versuchen, nicht alle
Daten, da offensichtlich doppelt so viele Lesezugriffe produziert
werden als dann in der Variable landet. Detto haben alle anderen
Register nur Byte-Größe.
MfG. FireBird |
|
|
|
|
 | |  |
Verfasst am: Mi 27. Jul 2005, 13:45 |
|
|
DeadBeef |
TAP-Guru |

|
|
Anmeldungsdatum: 28.03.2005 |
Beiträge: 118 |
Wohnort: am Schwäbischen Meer |
|
|
|
 |
 |
 |
|
Zitat: |
Ja,
wobei es ein Word-Register ab 0xb0012d22 ist. Alles andere liefert,
zumindest bei meinen Versuchen, nicht alle Daten, da offensichtlich
doppelt so viele Lesezugriffe produziert werden als dann in der
Variable landet. Detto haben alle anderen Register nur Byte-Größe. |
Die FW liest die Device ID byteweise aus dem Register mit der Adresse 0xb0012d20, wenn ich mich nicht täusche.
Gruß
DeadBeef |
|
|
|
|
 | |  |
Verfasst am: Mi 27. Jul 2005, 14:01 |
|
|
FireBird |
Software-Guru |

 |
|
Anmeldungsdatum: 09.04.2004 |
Beiträge: 395 |
Wohnort: Wien |
|
|
|
 |
 |
 |
|
Mache
einmal ein paar Praxistests. Ich habe mit meiner Routine (die auf
Deiner setHddSpinDown basiert) erfolgreich einen Sektor ausgelesen und
die SMART-Info ist auch gültig (meine Platte hatte gestern 56°C). Die
Geschichte ist aber noch wackelig, da man, wie Du auch festgestellt
hast, eine Menge wait states einbauen muß.
Das seltsame war nur, dass die HDD nach einem "Device Identify"
nicht mehr aus dem Busy herauskam. Grundlagenforschung ist also noch
angesagt. Wenn das läuft, sollte der Acoustic Mode auch kein Thema mehr
sein.
MfG. FireBird |
|
|
|
|
Verfasst am: Mi 27. Jul 2005, 17:56 |
|
|
masterarca |
Erfahrener Benutzer |

 |
|
Anmeldungsdatum: 26.08.2003 |
Beiträge: 60 |
Wohnort: Mühldorf |
|
|
|
 |
 |
 |
|
Hi Gurus!
Ich versteh ja nur Bahnhof von dem was ihr da schreibt aber ich freue mich schon auf die Ergebnisse!!
Ohne euch Programierer wäre der Topf nur die hälfte wert!!
Viele Grüße, Alex |
|
|
|
|
Verfasst am: Mi 27. Jul 2005, 17:58 |
|
|
Eber |
TAP-Guru |

 |
|
Anmeldungsdatum: 07.05.2004 |
Beiträge: 1970 |
Wohnort: Mainz |
|
|
|
 |
 |
 |
|
FireBird hat folgendes geschrieben:: |
Wenn das läuft, sollte der Acoustic Mode auch kein Thema mehr sein.
MfG. FireBird |
Das würde vielen "Plattenupgradern" einiges an Schrauberei ersparen !!!
Viele Grüße
Eber |
|
|
|
|
 | |  |
Verfasst am: Mi 27. Jul 2005, 18:09 |
|
|
steviec |
Dauerglotzer |

 |
|
Anmeldungsdatum: 07.06.2005 |
Beiträge: 393 |
|
|
|
|
 |
 |
 |
|
Eber hat folgendes geschrieben:: |
Das würde vielen "Plattenupgradern" einiges an Schrauberei ersparen !!!
Viele Grüße
Eber |
Stimmt, ich habe nämlich vergessen meine Platte auf leise zu
stellen. Doch ausbauen möchte ich sie deswegen ungern wieder. Da wäre
mir ein solches Tap recht willkommen
Gruß
steviec |
|
_________________ TF 5500 PVR - 250GB Samsung HD 5760 rpm - TAPs: SmartEPG ReDesign, Improbox, Nice Display, ***** 0.72RC1e beta7  |
|
|
|
 | |  |
Verfasst am: Mi 27. Jul 2005, 22:43 |
|
|
DeadBeef |
TAP-Guru |

|
|
Anmeldungsdatum: 28.03.2005 |
Beiträge: 118 |
Wohnort: am Schwäbischen Meer |
|
|
|
 |
 |
 |
|
DeadBeef hat folgendes geschrieben:: |
Die FW liest die Device ID byteweise aus dem Register mit der Adresse 0xb0012d20, wenn ich mich nicht täusche. |
Sorry, ich habe Quatsch geschrieben.
Jetzt habe ich nachgeschaut und gesehen, dass wortweise (4 Bytes) von
der Adresse 0xb0012d20 gelesen wird und nur Halbwörter gespeichert
werden.
Gruß
DeadBeef
EDIT
Die FW-Funktion tut folgendes:
Code: |
// number of words in the device data block (one sector in words)
#define HDD_DATA_SIZE 256
word hddDeviceData[HDD_DATA_SIZE];
//--------------------------------------------------
void busyWait(int loops)
{
while(loops >= 0)
{
loops--;
}
}
//--------------------------------------------------
// getHddId()
// Gets the HDD identity information.
void getHddId()
{
// addresses of IDE controller registers are independent of the FW version.
// command/status register
volatile dword *pCmdStat = (dword*)0xb0012d3c;
// head register
volatile dword *pHead = (dword*)0xb0012d38;
// data register
volatile dword *pData = (dword*)0xb0012d20;
// error register ???
volatile dword *pError = (dword*)0xb0012d58;
dword dummy;
// at this point in FW code it looks like they lock
// two resources (though, interrupts are not locked)
// if(resource2 != locked) return;
// set the head value for whatever reason
*pHead = 0xe0;
dummy = *pError;
busyWait(40);
// issue the identify command
*pCmdStat = 0xec;
dummy = *pError;
busyWait(40);
// at this point it looks like resource2 is unlocked
// if (!succeeded) return;
// read the status
dummy = *pCmdStat;
for(i = 0; i < HDD_DATA_SIZE; i++)
{
// read in the data
hddDeviceData[i] = (word)*pData;
}
dummy = *pError;
busyWait(40);
// read the status
dummy = *pCmdStat;
busyWait(40);
dummy = *pCmdStat;
// unlock resource1 (no further checks)
}
|
MfG
DeadBeef |
|
|
|
|
 | |  |
Verfasst am: Mi 27. Jul 2005, 23:57 |
|
|
jk |
Team topfield.de |

 |
|
Anmeldungsdatum: 14.11.2003 |
Beiträge: 1272 |
Wohnort: Jennerdorf, Österreich |
|
|
|
 |
 |
 |
|
langsam,
da muß doch noch etwas sein mit SMART und dem topf, es gibt doch die
platten bei denen pin 1 getrennt werdern muß weil der topf SMART nicht
zu 100% beherrscht.
irgednwo war da doch ein threat dazu, muß mal suchen.... |
|
_________________ Es gibt Menschen, die in Erfahrungswelten leben, die wir nicht betreten können. (John Steinbeck)
 |
|
|
|
Verfasst am: Do 28. Jul 2005, 0:40 |
|
|
FireBird |
Software-Guru |

 |
|
Anmeldungsdatum: 09.04.2004 |
Beiträge: 395 |
Wohnort: Wien |
|
|
|
 |
 |
 |
|
Der
Pin 1 ist die Reset-Leitung und damals ging es, glaube ich, um ein
Timingproblem mit dem SMART-Feature nach dem Reset. Wir aber greifen
direkt über den Hardwareport auf die Festplatte zu. In diesem Fall
macht es keinen Unterschied, ob die Platte einen Datensektor oder die
SMART-Informationen schickt. |
|
|
|
|
 | |  |
Verfasst am: Do 28. Jul 2005, 10:19 |
|
|
FireBird |
Software-Guru |

 |
|
Anmeldungsdatum: 09.04.2004 |
Beiträge: 395 |
Wohnort: Wien |
|
|
|
 |
 |
 |
|
DeadBeef hat folgendes geschrieben:: |
// error register ???
volatile dword *pError = (dword*)0xb0012d58; |
Es gibt ein Error-Register, dass aber parallel
zum Feature-Register liegt. Damit müsste es auf 0xb0012d24 beheimatet
sein, oder es ist etwas anderes.
Zitat: |
// set the head value for whatever reason
*pHead = 0xe0; |
Im Head-Register steht auch das Device-Flag, mit dem man zwischen Maser und Slave auswählen kann.
Jetzt wäre noch interessant, was es mit resource1 und 2 auf sich hat. Da wird es vermutlich wieder Firmwareabhängig.
Edit: Das Umschalten der AAM-Modes hat gestern funktioniert, auch
wenn ich bei meiner Samsung SV1203 keinen Unterschied gehört habe.
WinAAM hat es aber bestätigt.
MfG. FireBird |
|
|
|
|
 | |  |
Verfasst am: Do 28. Jul 2005, 11:20 |
|
|
ramibi |
Team topfield.de |

 |
|
Anmeldungsdatum: 27.08.2003 |
Beiträge: 5477 |
Wohnort: Saarland |
|
|
|
 |
 |
 |
|
FireBird hat folgendes geschrieben:: |
Edit: Das Umschalten der AAM-Modes hat gestern funktioniert, auch
wenn ich bei meiner Samsung SV1203 keinen Unterschied gehört habe.
WinAAM hat es aber bestätigt. |
Hi FireBird,
das hört sich doch schon mal recht gut an  |
|
_________________ einen lieben Gruss von ramibi
Philips 32PW9534 + Topfield 5000 PVR mit VF-Display+ FW 5.12.05 v. 13.09.2005 + Samsung SV 1604 N + ein "Mark Kumke Display" |
|
|
|
 | |  |
Verfasst am: Do 28. Jul 2005, 22:10 |
|
|
DeadBeef |
TAP-Guru |

|
|
Anmeldungsdatum: 28.03.2005 |
Beiträge: 118 |
Wohnort: am Schwäbischen Meer |
|
|
|
 |
 |
 |
|
[quote="FireBird"]
DeadBeef hat folgendes geschrieben:: |
Edit:
Das Umschalten der AAM-Modes hat gestern funktioniert, auch wenn ich
bei meiner Samsung SV1203 keinen Unterschied gehört habe. WinAAM hat es
aber bestätigt.
|
Ich hatte gar keine Zweifel daran, dass das "blinde" Umschalten vom AAM-Mode klappen würde.
Es wäre natürlich viel schöner, wenn das Auslesen der HDD
Device-Information klappen würde. Dann ist es für den Benutzer
transparenter, ob AAM bereits aktiv ist und welcher AAM-Wert vom
Plattenhersteller empfohlen wird. Ich kann momentan wegen laufender
Aufnahmen an meinem Topf nicht herumexperimentieren.
Gruß
DeadBeef |
|
|
|
|
 | |  |
Verfasst am: Do 28. Jul 2005, 23:29 |
|
|
Bonni |
Guru |

|
|
Anmeldungsdatum: 30.03.2004 |
Beiträge: 1694 |
Wohnort: Hamm (Westf.) |
|
|
|
 |
 |
 |
|
Jungs, wann habt Ihr Linux auf der Kiste laufen, klappt das noch bis Weihnachten?  |
|
_________________ Gruß Bonni
TF5000 - SW 10. Juni 2005 - 2 Quattro LNB - TELEKA SAM 2294N Multiswitch 9:4
Vor dem Fragen schau mal in den Topf Wiki und lies dies |
|
|
|
 | |  |
Verfasst am: Fr 29. Jul 2005, 13:47 |
|
|
Sheridan |
TV-Junkie |

 |
|
Anmeldungsdatum: 01.03.2005 |
Beiträge: 123 |
Wohnort: Tübingen |
|
|
|
 |
 |
 |
|
Ja,
vielleicht könnte man dann auch auf dem USB-Port ein 100 MBit-Netzwerk
anbieten... bräuchte man halt noch nen Adapter, aber den kann sich zur
Not selber löten
Ich denke, es dauert nur noch ein paar Wochen, dann fangen die Jungs
an, die letzten Firmwarefehler selber rauszumachen und HDTV-Support
einzupflegen...
Viele Grüße,
Michael |
|
_________________ TF5500PVR,
Firmware 10.06.2005, 250 GB Samsung HA250JC, NiceDisplay 1.6b2,
ImproBox 1.44RC15a, Jag's EPG 2.7b7, TSR-Commander 1.2, ProgressBarKeys
8.4bAPI1.22, MatrixSaver 1.7, ReZap 1.8, Automove 1.6a (in dieser
Startreihenfolge) |
|
|
|
 | |  |
Verfasst am: Fr 29. Jul 2005, 15:37 |
|
|
Alter Sack |
Alt-Guru |

 |
|
Anmeldungsdatum: 01.01.2005 |
Beiträge: 1590 |
Wohnort: NRW |
|
|
|
 |
 |
 |
|
Sheridan hat folgendes geschrieben:: |
Ja,
vielleicht könnte man dann auch auf dem USB-Port ein 100 MBit-Netzwerk
anbieten... bräuchte man halt noch nen Adapter, aber den kann sich zur
Not selber löten  |
Nichts ist unmöglich ...
Sheridan hat folgendes geschrieben:: |
Ich denke, es dauert nur noch ein paar Wochen, dann fangen die Jungs
an, die letzten Firmwarefehler selber rauszumachen und HDTV-Support
einzupflegen...  |
... das leider schon . |
|
_________________ TF5500PVR - FW 5.12.05 (13.Sep05) - Samsung SP1604N - Alphacrypt 3.05
TAP's: ScreenCapture - Jag'sAutoOff 07:00 - ImproBox - Jag'sEPG - NiceDisplay |
|
|
|
 |
|
|
|