So, ich habe die letzten 2 Tage ausführlich mit dem BIOS rumexperimentiert. Ich war in der Lage, meinen Dell T20 in ein T1700 zu verwandeln.
Erst vorweg die Hardware-Unterschiede:
- Beide Systeme haben identische Mainboards; manche T1700 Versionen haben zusätzlich einen Header für Thunderbolt 2 Support aufgelötet und lassen sich mit einer entsprechenden PCIe-Karte aufrüsten (ein Displayport muss dafür "geopfert" werden). Die T20 Boards haben diesen Header in keiner Version aufgelötet; die Lötstellen sind allerdings vorhanden (ob sie funktionieren, ist fraglich).
- T1700 gibt es auch mit einem Dell 365W Gold Netzteil
- T1700 hat ein anderes Gehäuse, welches sich jedoch (fast) nur optisch unterscheidet. Statt 2x 3,5" Festplatten + ODD-Slot bzw. 2x 2,5" Festplatten oben, gibt es den Käfig nicht und hat stattdessen 2x 5,25". Dies ist auch mit dem T20 zu erreichen - dafür muss lediglich der Käfig entfernt werden.
- T1700 BIOS hat keinen S3-Bug und bietet über dem T20 BIOS nur Vorteile. Es gibt mehr Optionen, mehr Fixes und muss nicht wegen dem S3-Bug auf alte BIOS-Versionen setzen. Primär ist das T1700 auch als Workstation konzipiert, wohingegen der T20 primär als Server ausgelegt ist. Natürlich kann man beide Systeme dennoch als Server und / oder Workstation einsetzen.
Vorteile des Crossflashs:
- Standby (S3) funktioniert auch in den neuesten BIOS-Updates (bis A20 getestet; A21 ist aktuell, aber ungetestet)
- Neue BIOS-Settings konfigurierbar: ASPM (Auto, Off, L1), Cloud Desktop (mit eigenen Untermenüs; für Unternehmen interessant), Intel Smart Connect, Intel Rapid Start, Primary Display (Auto oder iGPU) und Block S3 ist verfügbar (in T20 A09 ist es weg und ohne Funktion via CCTK).
- In den T1700 BIOS Changelogs sind viele Fixes für PCIe- und USB-Probleme gelistet. Ob die Fixes auch im T20 vorhanden sind, ist unklar.
- T1700 BIOS unterstützt offiziell Windows und GPUs und wird daher in solchen Settings von Dell getestet.
- Im Vergleich zum T20 fehlen keine BIOS-Optionen.
- T1700 bietet alternative E-BIOSe für Windows Embedded Support
- BIOS bietet Support für Thunderbolt 2 (Header müsste aufgelötet werden + PCIe-Karte nötig) - für Bastler sicherlich interessant
- Bei Problemen oder RMA lässt sich über die gleiche Prozedur das T20 BIOS aufspielen (vorausgesetzt ihr könnt Windows booten).
Nachteile:
- Garantie erlischt (im Falle eines RMAs unklar, ob Dell Crossflashes detektieren kann und die Herstellergarantie verweigert)
- Verfahren potenziell gefährlich und kann zum Bricken des Mainboards führen. Daher gilt:
alles auf eigene Gefahr! Ihr verliert Garantie-Ansprüche und könnt euer System irreperabel schädigen. Ich übernehme keine Haftung!
Informationen:
Standard-mäßig ist das T20 BIOS (AMI) rundum gut abgesichert gegen Veränderungen: Signed Firmware Updates ist aktiviert und BIOS, SMI und NVRAM gelockt. Mit Standard-Tools, wie z.B. Intel FTK, AMIBCP, AFUWIN bzw. alle anderen AMI-Tools kommt man nicht weit. Es gibt einen PSWD Jumper auf dem Mainboard, den man entfernen kann. Ganz genau weiß ich nicht, welche Locks dadurch entfernt werden. Jedoch scheinen BIOS-Flashs dadurch sehr gelockert zu sein. Ich vermute, dass man dadurch auch das "Signed Firmware Update" umgehen kann und modifzierte BIOSe flashen kann. Zumindest hat dies ein T3500 User in einem englisch-sprachigen Forum berichtet. Zusätzlich gibt es noch einen SERVICE_MODE Jumper, dessen Funktion mir bisher nicht ganz klar ist. Möglich ist jedoch, dass dadurch weitere Schutzmechanismen umgangen werden können.
Es gibt zwei Phasen beim BIOS-Updatet: Phase 1 ist ein Programm, dass das BIOS in einen geschützten Bereich schreibt, einen Flag im NVRAM setzt und dann das System (warm) rebootet. Dabei ist es egal, ob man Phase 1 über Windows, DOS oder über den BIOS Updater gestartet hat. Phase 2 beginnt nach dem Reboot - erst jetzt wird tatsächlich geflasht.
Es gibt Checks sowohl in Phase 1 (korrektes System?), wie auch in Phase 2 (korrektes System? Signiertes BIOS?). Phase 1 kann man mithilfe von Debuggern austricksen.
Phase 2 lässt sich mit dem SERVICE_MODE Jumper lockern. Update vom 15.12.2016: Anscheinend ist es ausreichend, nur der PSWD Jumper zu entfernen, um Phase 2 zu umgehen. SERVICE_MODE muss nicht gesetzt werden - ich habe bisher nicht überprüft, welchen Unterschied SERVICE_MODE ausmacht. Evtl. kann man damit weitere Schutzmechanismen umgehen. Ich habe die Anleitung dementsprechend geupdated.
BIOS, SMI und NVRAM sind übrigens in allen (publizierten) BIOS-Versionen gelockt. Deshalb hat man mit BIOS-Downgrades kein Glück. Man muss den PSWD Jumper rausnehmen oder alternativ (beim Brick z.B.) mit einem externen Flasher arbeiten.
Phase 1:
Lasst erstmal den PSWD Jumper drin, damit ihr bei einem Fehler nicht ausversehen das System zerschießt. Die Flash-Datei (z.B. T1700A19.exe) gleicht in einem einfachen Check ab, ob System-ID (0x0620 für Dell T20, 0x05a6 für Dell T1700) und Kennzeichnung übereinstimmen. Falls ja, wird ein Flash-Update angeboten, falls nicht, bricht das Programm ab. Es wäre hilfreich, wenn jemand mit ausreichenden Kenntnissen einen Patch für die Community erstellen könnte, damit das manuelle Debuggen wegfallen kann. Bis dahin muss man mit einem Programm wie z.B. OllyDbg 2.01 arbeiten.
Öffnet die Datei "T1700A19.exe" und sucht mit OllyDbg 2.01 über "Rechtsklick -> Search -> All Commands..." nach "CMP EAX, 2" und setzt für alle Vorkommen einen Breakpoint. Jetzt geht ihr Breakpoint für Breakpoint durch, bis das BIOS-Update mit der Fehlermeldung "This BIOS-Update is not intended for T20." (oder ähnlich) abbricht. Ihr könnt auf dem Weg bis dorthin Breakpoints deaktivieren (nicht entfernen), die während "Checking System Information" auftauchen. Die halten euch nur auf. Der entscheidende Command befindet sich am letzten Breakpoint, unmittelbar vor Erscheinen der Fehlermeldung. Hier muss der Command von "CMP EAX, 2" auf "CMP EAX, 1" abgeändert werden. Habt ihr das getan, klickt auf "Assemble" und lasst das Programm weiterlaufen. Euer PC sollte nach Beenden des Programms automatisch neustarten, worauf wir dann uns in Phase 2 befinden.
Phase 2:
Wenn der PSWD Jumper nicht entfernt wurde, schlägt das BIOS-Update nach dem Reboot fehl. Das ist so gewollt und deutet daraufhin, das ihr alles richtig gemacht habt. Schaltet den Dell T20 aus, entfernt den PSWD Jumper und wiederholt nun die Schritte in Phase 1. Praktischerweise merkt sich OllyDbg die Breakpoints, weshalb es nun sehr schnell gehen sollte. Außerdem hattet ihr die Chance, euch ein wenig vertraut zu machen mit dem Programm. Nach einem Reboot, sollte nun alles geglückt sein und mit dem entfernten PSWD Jumper das T1700 BIOS erfolgreich geflasht sein. Glückwunsch! Jetzt kann der PC heruntergefahren und der PSWD Jumper wieder gesetzt werden. Ich empfehle an dieser Stelle, über das BIOS-Menü oder über CMOS Reset (Jumper setzen oder kurz Batterie entfernen) die Standard-Einstellungen wiederherzustellen.
Falls ihr eine Fehlermeldung zu Intel ME gekriegt habt während des Flashens, überprüft eure aktuelle Intel ME Version (über F12 "Start-Menü -> Intel MEBx") und gleicht sie ab mit der Intel ME Version des verwendeten BIOS (häufig zu finden in den Changelogs, einfach bei Dell durchstöbern). Falls eure Version zu alt ist, könnt ihr über folgende BIOS-Update Reihenfolge auf die aktuellste Intel ME Firmware flashen und dieses Problem damit lösen: T1700 A19 -> A08 -> A16 -> A18 -> A19. Beim Flash von A08 auf A16 bitte mit A16 BIOS erneut Standard-Einstellungen wiederherstellen.
Dieser Schritt ist i.d.R. nur wichtig für "ältere" Dell T20, die mit BIOS Versionen unter A06 ausgeliefert wurden. Die Aussage zum T20 des Dell Mitarbeiters, dass Intel ME Updates wegen alten Chipsatz Revisionen nicht möglich sei, ist somit falsch
! Mir persönlich wäre auch nicht bekannt, dass der C226 Chipsatz verschiedene Revisionen hätte.
Und wenn man die Update-Reihe abgeschlossen hat noch einmal A20 Flashen (persönlich getestet). Experimentierfreudige auch gerne A21.
Falls ihr keine Fehlermeldung zu Intel ME erhalten habt oder eure Intel ME Version aktueller ist, könnt ihr direkt von A19 auf A20 flashen.
Abschließende Worte:
Ich habe diese Prozedur auf nun vier Dell T20 nun erfolgreich durchgeführt. Mit dabei war ein Dell T20 Revision A00 (November 2014), ein Dell T20 mit Revision A02 (September 2016) und ein Dell T20 von der 288€ Cyberport Aktion (Dezember 2016). Alle Systeme laufen stabil und ohne Probleme mit aktuellster Intel ME Firmware und T1700 A20 BIOS.
Ich denke, dass dieser Mod ein sehr wichtiger Schritt Richtung BIOS-Mods ist, sprich Advanced Menu (RAM, CPU), NVMe Support, Front I/O Panel Warnung rauspatchen etc. Damit könnten wir den Dell T20 nochmal auf eine andere Ebene bringen!
Hat mir auf jeden Fall viel Spaß gemacht! Für Fragen bin ich jederzeit gerne da. Wie gesagt: alles auf eigene Gefahr. Ich hafte für nichts.
Viel Spaß,
Tolga