T480/s T480 (bzw. X270/T470/etc.): BIOS Advanced Menu (skyra1n) & me_cleaner

iks230

Well-known member
Themenstarter
Registriert
8 Dez. 2021
Beiträge
686
Ich hoffe mal bei der Forensuche kein Thema übersehen zu haben, was dies bereits behandelt.

Modfiziertes BIOS (erweiterte Optionen und ausgeschaltete Intel Management Engine) am Beispiel eines T480 (gleiche Patch-Datei lässt sich auch auf X270, T470, xx70 bzw. xx80 anwenden).

Ich konzentriere mich in der Anleitung auf einen CH341a als Programmer für den Chip. Alternativ kann auch ein Raspberry Pi verwendet werden (Links dazu weiter unter).

optional vorher anschauen bzw. durchlesen
benötigte Hard- und Software
  • zweiter Rechner mit Linux für flashrom (geht auch unter Mac mit Homebrew; Windows wohl eher schwierig)
  • CH341a (3,3 V-Version!) plus SOIC8-Clip und entsprechende Verkabelung / Adapter
Allgemeine Hinweise
  • BIOS-Passwörter entfernen und BIOS auf Werkeinstellungen zurücksetzen
  • BIOS mindestens zweimal auslesen und überprüfen, ob beide Dateien identisch sind (z. B. via Prüfsumme) und Sicherheitskope anfertigen
  • Akku entfernen bzw. internen Akku im BIOS deaktivieren
  • da das TPM betroffen sein kann: ggf. vorher das System entschlüsseln, wenn die Verschlüsselung auf TPM aufbaut
  • den Clip immer nur stromlos auf den Chip aufsetzen bzw. loslösen
  • viele CH341a liefern 5 V statt der geforderten 3,3 V (hier ein Fix oder auf die v1.6 ausweichen; Kauflinks weiter unten)
  • auslesen hat ca. zweieinhalb Minuten gedauert, zurückschreiben ca. viereinhalb Minuten
  • sollte irgendwas schiefgehen: Sicherheitskopie zurückflashen
BIOS Advanced Menu (bietet zum Beispiel Overclocking-Optionen)
  • BIOS auslesen
  • in der Patch-Datei die Patches, die nicht angewendet werden sollen, mit # auskommentieren
  • UEFIPatch plus Patch-Datei (z. B. xx70_xx80_patches_v7.txt) auf das ausgelesene BIOS anwenden
  • mit einem HEX-Editor den Wert 4C 4E 56 42 42 53 45 43 FB durch 4C 4E 56 42 42 53 45 43 FF ersetzen (z. B. Okteta)
  • modifiziertes BIOS zurückschreiben
Nachteil: TPM funktioniert nicht mehr, da das BIOS nicht mehr signiert ist bzw. TPM ist im Manufacturing (MFG) Mode (wobei manchmal Bitlocker doch noch zu gehen scheint; könnte aber ein Problem bei Windows 11 werden wegen TPM-Pflicht).

Beispiel Kommandozeilen-Befehle (mit einem CH341a):
Code:
sudo flashrom -p ch341a_spi -r bios1.bin # BIOS auslesen Nr. 1

sudo flashrom -p ch341a_spi -r bios2.bin # BIOS auslesen Nr. 2

sha512sum bios1.bin bios2.bin # sollte die gleiche Prüfsumme ergeben

diff bios1.bin bios2.bin # Alternative zu sha512sum: keine Ausgabe bedeutet "Dateien identisch"

nano xx70_xx80_patches_v7.txt # Patch-Datei bearbeiten bzw. Patches ggf. auskommentieren mit # (z. B. für X270)

./UEFIPatch bios1.bin xx70_xx80_patches_v7.txt -o bios_patched.bin # Patch anwenden

okteta bios_patched.bin # bios_patched.bin mit dem HEX-Editor bearbeiten

sudo flashrom -p ch341a_spi -w bios_patched.bin # BIOS zurückschreiben

Intel Management Engine abschalten
Beispiel Kommandozeilen-Befehle (mit einem CH341a):
Code:
sudo flashrom -p ch341a_spi -r bios1.bin # BIOS auslesen Nr. 1

sudo flashrom -p ch341a_spi -r bios2.bin # BIOS auslesen Nr. 2

sha512sum bios1.bin bios2.bin # sollte die gleiche Prüfsumme ergeben

diff bios1.bin bios2.bin # Alternative zu sha512sum: keine Ausgabe bedeutet "Dateien identisch"

./me_cleaner.py -s -O bios_ohne_me.bin bios1.bin

sudo flashrom -p ch341a_spi -w bios_ohne_me.bin # BIOS zurückschreiben

Links zu Raspberry Pi
Links, die mir weitergeholfen haben:
Beispiele für Terminal-Ausgaben:

BIOS auslesen:
Code:
$ sudo flashrom -p ch341a_spi -r bios1.bin
flashrom v1.2 on Linux 5.18.11-200.fc36.x86_64 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25Q128.V" (16384 kB, SPI) on ch341a_spi.
Reading flash... done.

Checksummen überprüfen:
Code:
$ sha512sum *
ebc50f6fbf58d4ff9f67a81487f18c1f[...] bios1.bin
ebc50f6fbf58d4ff9f67a81487f18c1f[...] bios2.bin

me_cleaner anwenden:
Code:
$ ./me_cleaner.py -s -O bios_ohne_me.bin bios1.bin
Full image detected
Found FPT header at 0x3010
Found 13 partition(s)
Found FTPR header: FTPR partition spans from 0x1000 to 0x130000
Found FTPR manifest at 0x1478
ME/TXE firmware version 11.8.92.4222 (generation 3)
Public key match: Intel ME, firmware versions 11.x.x.x
The HAP bit is NOT SET
Checking the FTPR RSA signature... VALID

mit me_cleaner den Status von ME auslesen:
Code:
$ ./me_cleaner.py -c bios_ohne_me.bin
Full image detected
Found FPT header at 0x3010
Found 13 partition(s)
Found FTPR header: FTPR partition spans from 0x1000 to 0x130000
Found FTPR manifest at 0x1478
ME/TXE firmware version 11.8.92.4222 (generation 3)
Public key match: Intel ME, firmware versions 11.x.x.x
The HAP bit is SET
Checking the FTPR RSA signature... VALID

BIOS zurückschreiben:
Code:
$ sudo flashrom -p ch341a_spi -w bios_ohne_me.bin
flashrom v1.2 on Linux 5.18.11-200.fc36.x86_64 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25Q128.V" (16384 kB, SPI) on ch341a_spi.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.

BIOS patchen für Advanced Menu:
Code:
$ ./UEFIPatch bios1.bin xx70_xx80_patches_v7.txt -o bios_patched.bin
parseVolume: unknown file system FFF12B8D-7696-4C8B-A985-2747075B4F50
parseBios: one of volumes inside overlaps the end of data
parseFile: non-empty pad-file contents will be destroyed after volume modifications
patch: replaced 16 bytes at offset 3B60h 04320B483CC2E14ABB16A73FADDA475F -> 778B1D826D24964E8E103467D56AB1BA
patch: replaced 16 bytes at offset 118D0h 04320B483CC2E14ABB16A73FADDA475F -> 778B1D826D24964E8E103467D56AB1BA
patch: replaced 28 bytes at offset 6B80Ch 09072C1300000209072D1300000309072E1300000409072F13000005 -> 09072C1300001909072D1300001A09072E1300001B09072F1300001C
patch: replaced 58 bytes at offset 53B44h 00143100300030004D0068007A000000143100350030004D0068007A000000143200300030004D0068007A000000143200350030004D0068007A -> 00143100320035003000200020000000143100330030003000200020000000143100330035003000200020000000143100340030003000200020
patch: replaced 26 bytes at offset 69DDFh 0A821286A10B04001206A60B010016021206A60B020016022902 -> 0A821286A10B04001206A60B000016021206A60B000016022902
patch: replaced 11 bytes at offset 545h 0BC8394B040F8437020000 -> 0BC8394B04E93802000000
patch: replaced 5 bytes at offset 535h C8390B7516 -> C8390B7500
Image patched
 
Zuletzt bearbeitet:
@KNARZ ich hoffe bald ne längere Episode Zeit zu haben danke für den Input bislang auch für dias Beispiel und die Programmempfehlung.

Sonst kann ich kleines berichten hier gabs ja kurz mal Diskussion ob man mit nem TPM im MFG Mode noch nen Clean-Install eines Stock-Win11-24h2 ISO machen könnte. Also nix mit ner unattended.xml oder was Rufus da tut sondern wirklich Stock wie es der 0815-User von MS mit dem MediaCreationTool ziehen würde.

Ausgangslage:
1730665210853.png

Ja geht. Stört Win11 überhaupt nicht bei der Installation. Bis ich aufgrund meiner plötzlich höheren CPU Temperaturen an der Kernisolierung rumgespielt habe, sprich die Speicher-Integrität ausgeschaltet hatte, war ich sogar lt. WIN im Bereich der erweiterten Hardwaresicherheit was ein Unfug :P.

1730665233357.png



Tatsächlich plagt mich seit der WIn11 Installation aber ein anderes Problem, im Average hab ich fast 10 Grad mehr CPU-Temperatur als zuvor unter Win10, es scheint mir auch so als würde die CPU viel öfter schlagartig sehr hoch takten. Der vorher beim Surfen unhörbare Lüfter war heute schon öfter an als vorher ne Woche.

Also es ist tatsächlich so ich bin da sehr feinfühlig das die CPU gerade beim öffnen von Programmen sehr agressiv hochtaktet. Im Idle geht das weiter runter auf die 43-47 Grad die ich sonst auch habe aber es taktet viel schneller hoch. Komisch!
Beitrag automatisch zusammengeführt:

Ich bin jetzt etwas weiter bezüglich meiner WIN11 Energieprobleme. Mir ist zwischenzeitlich aufgefallen das Gerät geht auch nicht mehr in Standby (S3). Mein bester Energiesparmodus ist aktuell Display aus obwohl eingestellt und verfügbar.

Dieser Modus wird aber lt. powercfg unterstützt:
1730833174252.png

Die weitere Forschung erbrachte folgendes:

1730833289053.png

Die Fehler sind bis auf den letzten alle USB selelektives Energiesparen, vermute das ist ein HUB / Monitor von mir. Jedenfalls denk ich unspektakulär. Die letzte Meldung aber ist interessant:

1730835315001.png

Wie kein ASPM? Bin deutlich mehr in der Linux Welt zu Hause und ich bin davon schon auch Einsparungen gewohnt.

Also mal sehen was das Advanced-Bios bietet:

Unter ACPI-Settings findet sich folgende Option:
1730836541029.png
Ich hatte die testweise auf OS Controlled das ändert leider nix an o.g. Meldung das ASPM deaktiviert sei.

Zur Erläuterung man kanns eigentlich nicht deaktivieren übers Bios, Enabled wäre OS-Controlled, Disabled = BIOS Controlled.

Schade, WIN11 bislang sehr negativ auf diesem Gerät für mich, S3 Suspend geht / geht mal nicht / ENergieverbrauch weiterhin höher als unter Win10 dazu dieses nervöse Hochtakten der CPU.
 
Zuletzt bearbeitet:
Es gibt eine neue xx70_xx80_patches_v7.txt hat die schon jemand getestet und kann was zu den unterschieden sagen?

1.53 Bios ist immer noch inkompatibel?
 
Moin, breaking News :).

Nachdem sich lang (nach außen) nix in Gerrit bezüglich des dort Anfang August aufgetauchten Coreboot-Ports des T480 / T480s getan hat, wurde es jetzt funktional umgesetzt. Libreboot als Coreboot Distribution hats schon seit gestern drin. Hab es noch nicht kompiliert / geflasht, aber andere Ports von Leah Rowe liefen bei mir immer problemlos und ist eben die anfängerfreundliche Alternative zu nem Coreboot-Build.


DGPU (wie immer) sowie Thunderbolt macht wohl noch Probleme (breaks S3-Suspend) weshalb aktuell kein Thunderbolt geht, Laden und Display-out via USB-C alt Mode schon. Sonst sieht das soweit funktional aus. Hooray <3.

Gut möglich das da demnächst noch mehr an Sky*/Kabylake Thinkpads mit rutscht also sowas wie T470, P51s, X1 Carbon Gen6. Scheinbar ist man jetz tin der Lage Bootguard entsprechend auszuhebeln. Sehr schöne Entwicklung!
Nice!
 
Zuletzt bearbeitet:
Finds stark der Bub von dem Blog ist erst 15 :). Ja der Ton in #libreboot ist eher rough, aber woher soll er das mit IRC auch wissen, als diese Kommunikationsform seine Hochzeit hatte war der nichtmal auf der Welt. Von dem her doppelt cool das er es hinbekommen hat auch mit seinem nicht optimalen Equipment und diesem seltsamen Artix. Bloß zur Erklärung, Libreboot ist eigentlich super chillig es gibt einen ./mk dependencies
xyz distro befehl der dir initial die Abhängigkeiten baut um überhaupt weitermachen zu können aber das funktioniert halt mit nem Debian, Fedora oder sonstwie was gebräuchlichen, aber nicht mit Artix, Void oder welcher randständigen Distro auch immer.

Warte jetzt noch ein paar commits ab, der Entwickler ist wohl aktuell noch stark dran und werd dann wie immer einen klassischen ED2K-Coreboot Build machen. Libreboot experimentiert allerdings auch grad schon mit U-Boat als Loader. Das T480 ist allerdings auch einfach so unfassbar gut&ohne viel Aufwand im Auseinanderbau zu flashen.
 
Ja definitiv, da kann man noch viel bewegen können. Wenn der Port schon geglückt ist, dann ist der Rest sicher auch zu bewältigen!
Finde es auch krass dass er das aktuellste BIOS 1.52 dafür verwendet hat....Wahnsinn wie viel sich in kürzester Zeit so tun kann..ich warte seit gefühlt ne Ewigkeit dass Coreboot auf dem T480 realisiert wird..!
 
Hallo, das Bios bzw. die Version ist ja dafür "egal" da dieser Bereich dabei komplett überschrieben wird. Erhalten bleiben im Original ja nur die GBE Region, der Bereich für den EC und die verkleinerte ME-Region. Wie von @KNARZ beschrieben der "Shwostopper" bislang war eben Bootguard. Was offensichtlich kein Problem mehr darstellt.
 
Sehr schön. Es wurde also ne Schwachstelle in ME v11 gefunden. Damit kann dann vermutlich, in Theorie, jedes Gerät mit ME v11 gepatched werden. Ein funktionierendes Coreboot Image fürs T480s habe ich ja seit Jahren erhalten, jedoch ging es damals um das Prototypen-Gerät was ich hatte, bei dem Bootguard / Signierung / Hash nicht gefused war.
 
Hallo, das Bios bzw. die Version ist ja dafür "egal" da dieser Bereich dabei komplett überschrieben wird. Erhalten bleiben im Original ja nur die GBE Region, der Bereich für den EC und die verkleinerte ME-Region. Wie von @KNARZ beschrieben der "Shwostopper" bislang war eben Bootguard. Was offensichtlich kein Problem mehr darstellt.
Jap stimmt, hast natürlich Recht. Da CB selbst ja der BIOS Ersatz ist, macht das gar keinen Unterschied. War da gedanklich und thematisch noch woanders im Kopf unterwegs...
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben