T5xx (T500-550 ohne "p") Core2 Quad mit Coreboot / Libreboot auf T500 (+ wahrsch. auch T400) benutzen [BETA]

el-sahef

Active member
Registriert
4 Aug. 2008
Beiträge
1.666
Den Quadcore-Mod von hier hatte ich zuerst an einem T500-Board probiert, allerdings machte mir damals das BIOS einen Strich durch die Rechnung, siehe dazu hier der Abschnitt "Wieso es beim T500 und W500 nicht geht" am Ende des ersten Post.

Mittlerweile gibt es aber Libreboot für das T500, was im Prinzip ein Coreboot ohne BLOBs wie z. B. CPU-Microcode ist. Eventuell gibt es auch noch weitere Änderungen am Coreboot-Code, genau weiß ich das nicht. Mit den ROMs, die für das T500 angeboten werden, gehen Quads ebenfalls nicht. Nun bin ich endlich mal dazu gekommen, mit einem Pandaboard die Debug-Ausgaben von Libreboot mitzuschneiden, wenn ein Quad eingebaut ist und der Boot-Prozess bleibt genau bei der Initialisierung der dritten CPU stehen. Untersuchung des Codes hat dann ergeben, dass in der kconfig-Datei zum jeweiligen Mainboard, für das Coreboot bzw. Libreboot gebaut wird, im Fall des T500 (was alle Dateien aus dem Ordner für das T400 nimmt) die maximale Anzahl der CPUs auf 2 festgelegt ist.

Diese Zahl auf 4 geändert, ROM neu generiert und geflasht --> Quadcore geht. Da in der aktuellen Libreboot-Version Displaypanels über 1280x800 beim T500 nicht gehen habe ich dann das originale VGA-BIOS für die Intel-Grafik aus dem Lenovo-BIOS extrahiert und dieses anstatt dem "native VGA init" in das ROM integriert. Damit gehen jetzt auch die höherauflösenden Panels. Außerdem habe ich noch SeaBIOS als Payload gewählt anstatt GRUB (damit man auch Windows booten kann) und Microcode-Updates ebenfalls zur Integration ausgewählt. Ich habe es nur auf einem Board ausschließlich mit Intel-Grafik getestet und nicht mit Intel+ATI.

Mit diesem ROM kann man Linux und Windows 7 mit der Quadcore-CPU booten und Suspend-to-RAM geht ebenfalls. Allerdings gibt es noch einige Probleme:

- Tastatur in SeaBIOS funktioniert oft nicht (später im Betriebssystem geht sie dann)
- Aufwachen aus Suspend-To-RAM dauert unter Windows 7 ewig, manchmal gehts garnicht
- Uhr funktioniert unter Windows 7 nicht
- Installation von Windows 7 von DVD läuft nicht durch, muss schon auf HDD installiert sein (Linux-Installation nicht getestet)
- evtl. noch mehr

Unter Linux geht die Uhr und auch ansonsten läuft das vom Gefühl her deutlich runder. Könnte man vermutlich schon benutzen.

Die letzte Libreboot-Version ist vom 18.5.2015. Danach gab es noch vier Coreboot-Releases. Daher vermute ich mal, dass die Situation mit der nächsten Libreboot-Version besser wird. Vielleicht sollte ich mal den aktuellen Stand vom git-Server ausprobieren.

Ich habe auch ROMs direkt mit der letzten Coreboot-Version (und den beiden davor) erstellt, aber da funktioniert das Aufwachen aus dem Suspend-to-RAM garnicht. Auf der Libreboot-Seite steht auf der Seite für das X200 das Libreboot und Coreboot den RAM unterschiedlich initialisieren, was der Grund dafür sein könnte, dass mit Coreboot das Aufwachen aus dem Susspend-to-RAM nicht funktioniert hat. Das X200 und das T400 teilen sich nahezu den kompletten Code, das T400 sogar mit dem T500 derzeit zu 100%. Deswegen sollten alles hier beschriebene auch fürs T400 gelten, kann ich aber mangels Gerät nicht ausprobieren. Auf dem R500 und R400 soll es wohl ebenfalls gehen. Vom R500 weiß ich aber, dass wie beim 14,1"-Widescreen-T61 die Durchkontaktierung für die GTLREF-Verbindung (siehe weiter unten) fehlt, so dass man da eine Brücke mit Lackdraht im Sockel legen müsste.

Ob man trotz Coreboot die CPU problemlos übertakten kann, so wie hier, wäre ebenfalls noch zu prüfen. Damit könnte man einen relativ billigen Q9000 nahezu auf QX9300-Niveau beschleunigen. Dieser Post wird noch etwas "user-freundlicher" gemacht, wenn das ganze noch etwas besser funktioniert (bezogen vor allem auf den Betrieb mit Windows).


Die Vorgehensweise ist hardwareseitig die selbe wie beim T61, nur dass der Mod für 1066 MHz FSB entfällt, da das T500 damit bereits ab Werk klarkommt.

Core 2 Quad zum Laufen bringen:

1) CPU-Pins isolieren:

Damit ein Quadcore läuft, müssen die Pins D8, AA7, AA8, AC8 und AE8 isoliert werden. Ich habe hierfür die Isolierung von einem dünnen Kabel aus dem Modellbahn-Zubehör verwendet. Diese "Röhrchen" lassen sich dann mit einer Pinzette leicht auf die entsprechen Pins der CPU stecken.

Man kann stattdessen auch die entsprechenden Pins mit einem Seitenschneider abknipsen. Schmälert allerdings den Wiederverkaufswert des Core2 Quad ;) .



2) Löcher im Sockel vergrößern:

Da die isolierten Pins jetzt dicker sind, müssen die entsprechenden Löcher im Sockel vergrößert werden, damit man die CPU noch reinstecken kann. Damit dabei keine Spähne in den Sockel kommen und die Kontakte nicht beschädigt werden habe ich zunächst das Oberteil mit den Löchern an den vier Schnapphaken seitlich ausgehängt und eine dünne Holzplatte zwischen den Sockel und das Oberteil mit den Löchern geschoben. Danach wurden die entsprechenden Löcher mit einem 1-mm-Bohrer per Hand aufgebohrt.

Auf keinen Fall versuchen, die Löcher aufzubohren, ohne das Oberteil auszuhängen, ansonsten schrottet man die Kontakte im Sockel! Dann noch lieber alle vier Haltenasen abschneiden.

Es gibt zwei verschiedene Sockel, einen schwarzen und einen weißen. Bilder, die zeigen, wie man das Oberteil am besten aushängt, befinden sich in Post #153 vom T61-Quadcore-Thread.



T500-Mainboard Sockel nach der Änderung:



3) Mainboard modifizieren:

Es gibt bei Core2-CPUs fürs T500 ein Signal bzw. Pin GTLREF, an dem 0,63* VCC1R05B anliegen muss. Lenovo macht das im W700 (was ab Werk mit Core2 Quads läuft) über einen Spannungsteiler mit zwei Widerständen (2k und 1k). Bei Quad-Cores ist ein weiterer solcher Pin (D22) vorhanden, der bei den Dual-Cores Reserved ist. An den muss man auch die 0,63*VCC1R05B anlegen.

Für den entsprechenden Sockel-Kontakt ist eine Durchkontaktierung auf dem Mainboard, die man von der Unterseite anzapfen kann. T61-Mainboards der 14"-Widescreen-Modelle haben diese Durchkontaktierung nicht, nur bei den 14"-4:3-Boards und den 15,4"-Widescreen-Boards ist sie vorhanden.

Um den Pin D22 (GTLREF_2) auf 0,63*VCC1R05B zu setzen lötet man eine Kabelverbindung wie im Bild gezeigt von der Durchkontaktierung von GTLREF (Pin AD26) zur Durchkontaktierung von GTLREF_2 (Pin D22). Das Kabel sollte dabei möglichst kurz sein.

gtlref-fryppy-neu45avr.jpg


cimg202656uj2.jpg


Jetzt kann man die Quad-Core-CPU im Sockel platzieren und damit ins Lenovo-BIOS gehen.



Dort sollte die CPU auch richtig angezeigt werden.

bild8yss96.jpg


Allerdings ist (anders als beim T61) weiterbooten nur möglich, wenn man "core multiprocessing" auf "disabled" stellt, so dass nur ein Core aktiv ist. Ansonsten bleibt das BIOS mit dem Quadcore nach dem Bild mit dem Thinkpad-Logo stehen.

bild95hstz.jpg


Um dieses Problem zu umgehen brauchen wir Coreboot.

4) Lenovo-BIOS sichern und Coreboot-ROM flashen:

Mit einem externen Flasher den kompletten Inhalt des BIOS-Chips auslesen. Das ist das Backup, um zum normalen Lenovo-BIOS zurückkehren zu können. Wegen dem Security-Chip kann man da später auch nicht so ohne weiteres einen Dump von einem anderen Mainboard nehmen, also auf jeden Fall vorher ein Backup machen. Anschließend die geänderte Libreboot-ROM-Datei von hier runterladen (EDIT 17.06.2017: neues Coreboot-ROM für T400 und T500 mit Microcodes, originalem VGA-BIOS und Sea-BIOS Payload hier) und mit dem externen Flasher auf den BIOS-Chip aufspielen. Infos hier. Ich habe den Chip abgelötet und einen TL866A genommen. Jetzt sollte das Booten von Linux und Windows mit dem Core2 Quad funktionieren. Achtung, es gibt einige wenige T500, die einen 4-MB-Flash-Chip statt dem 8-MB-Flash-Chip haben (diese Geräte kamen ohne Intel AMT). Für die bräuchte man ein anderes ROM, was ich aber nicht generiert habe, da ich so ein Gerät nicht besitze und es demnach auch nicht testen kann.



Da in diesem ROM auch die MAC-Adresse der LAN-Karte abgelegt ist haben alle Geräte mit diesem ROM LAN-seitig die gleiche MAC-Adresse. Will man die originale MAC-Adresse behalten kann man sich mit dem Tool ich9gen eine neue Flashdescriptor+Gbe-Region erstellen mit der eigenen MAC-Adresse. Diese steht auf dem Aufkleber bei den RAM-Slots (RAM muss ausgebaut sein, um den Aufkleber sehen zu können).

Infos hierzu siehe https://libreboot.org/docs/hcl/gm45_remove_me.html#ich9gen und https://www.coreboot.org/Board:lenovo/x200
 
Zuletzt bearbeitet:
Hallo,

vielen Dank fuer den Mod! Macht man sich mit den isolierten und damit dickeren Pins nicht die Kontakte der CPU-Fassung kaputt? Ich wuerde den Umbau, auch wegen des Loetens, als one-way sehen, ausserdem ist ein Ersatz-Mainboard nicht so unerschwinglich.

Gruss,
jal2
 
Bei den T61-Board, die ich bisher umgebaut habe, gabs damit noch keine Probleme. Selbst wenn die betreffenden Kontakte durch die Röhrchen so aufgeweitet würden, dass sie dann bei einer CPU ohne Röhrchen die Pins nicht mehr kontaktieren, wäre das nicht schlimm, weil das bei Core2-Duos nur VCC und GND-Pins sind und davon gibt es ja genug.

Ich habe mir mal das libreboot gitlog angesehen und seit dem letzten Release hat sich da einiges getan. Das werde ich auch nochmal ausprobieren.
 
Ich würde an deiner Stelle lieber gleich Coreboot direkt nehmen und selbst übersetzen - dort sind etliche Verbesserungen eingeflossen, und man kann Coreboot genausogut ohne die Blobs übersetzen. Einige der Tools von Libreboot sind aber einzigartig. Außerdem wird auch beim T500 wahrscheinlich der C4-Sleep in Libreboot nicht funktionieren, der auf dem X200 bei Coreboot momentan nur mit direkten Anpassungen im Quellcode möglich ist.

In deinem Post schreibst du, die letzte Libreboot-Version wäre von Mai 2016 -> ist vermutlich ein Schreibfehler, die Version ist aus 2015.
 
In deinem Post schreibst du, die letzte Libreboot-Version wäre von Mai 2016 -> ist vermutlich ein Schreibfehler, die Version ist aus 2015.
Oh, tatsächlich, danke sehr.

Ich würde an deiner Stelle lieber gleich Coreboot direkt nehmen und selbst übersetzen
Genau das habe ich probiert. Das funktioniert auch, aber da geht dann das Aufwachen aus Suspend-to-RAM nicht mehr. Ich vermute, dass es in Libreboot irgendwelche Änderungen am Coreboot-Code gibt, damit das geht. Ob da irgendwelche BLOBs drin ist ist mir persönlich egal, ich habe ja auch das VGA-BIOS und die Microcodes zur Integration ausgewählt, was in Libreboot ja normalerweise nicht der Fall ist. Ich will nur, dass es möglichst gut und stabil funktioniert, so dass man es tatsächlich produktiv einsetzen kann. Mit Linux ginge das wahrscheinlich schon, für Windows muss ich noch sehen, ob es mit der aktuellen Version von git besser wäre.
 
Zuletzt bearbeitet:
Sorry was ist mit dem W500, fehlt leider warum es damit (nicht) geht. Die Bilder sprechen eine deutliche Sprache: Pros. Respekt!
 
Zuletzt bearbeitet von einem Moderator:
Coole Sache und vielen Dank! Wenn das ganze etwas stabiler arbeitet, werde ich mir das auch nochmal genauer anschauen :)

Zum W500: Da das nahezu identisch zum T500 ist, wüsste ich nicht, warum das nicht auch gehen sollte.
 
Beeindruckend! Ich hab zwar persönlich kein Interesse mehr an der Core2 Generation, finde es aber immer wieder spannend, was ihr hier für ausgeklügeltes Zeug veranstaltet :D
 
Naja es gab ja zu Core2-Zeiten schon den Sockel-771-Mod, mit dem "nachgeworfene" Quadcore-Xeons durch abklemmen von 4 Pins in stinknormalen Boards betreiben konnte, sogar ohne Anpassung vom BIOS. Das Projekt hier finde ich jedenfalls auch super!

Aber was Libreboot angeht: Ich habe vor ein paar Wochen mit den Entwicklern im IRC gesprochen, das Git-Repo von Libreboot ist noch ziemliche Baustelle. Gerade wenn dir die Blobs egal sind (mir ja nicht so), ist Coreboot definitiv die bessere Wahl. Libreboot ist ja im Grunde nur eine Binär-Distribution von Coreboot mit mehr Tools und kleineren Anpassungen. Hast du wg. dem Suspend mal auf der Mailingliste gepostet? Da kriegt man erfahrungsgemäß immer ziemlich brauchbare Antworten...
 
Hy,
wie schauts den mit dem R400/500 aus? Da gibts noch kein Libreboot bzw. Coreboot oder?
Lg
PS: In jedem Fall geile Sache!
 
@el-sehef
This is very very interesting
I hope a English version can be written and shared on thinkpad forum.
BTW, is there also CPU power problem as the T61 QC mod?
 
Nein, da hier die Pins auf der CPU sitzen und nicht auf dem Mainboard.
Aber wie el-sahef schon geschrieben hatte, könnte man die Pins auch abbrechen.
 
Das ist dann wohl vermutlich die einfachste und ungefährlichste Lösung im Hinblick auf die Löcher auf dem Board - natürlich zur Mitleidenschaft der CPU.
 
Könntet ihr bitte nochmal ein Bild von der Lötbrücke hier reinstellen? (Bilder werden im Startpost nicht angezeigt). Ich beziehe mich auf das hier:

Um den Pin D22 (GTLREF_2) auf 0,63*VCC1R05B zu setzen lötet man eine Kabelverbindung wie im Bild gezeigt von der Durchkontaktierung von GTLREF (Pin AD26) zur Durchkontaktierung von GTLREF_2 (Pin D22). Das Kabel sollte dabei möglichst kurz sein.

Für's T6x hat joker4791 ja schon hier ein Bild gepostet, aber ich habe nicht verstanden ob das beim T500 genauso funkitioniert und ob dann nur diese eine längere Brücke reicht:

https://thinkpad-forum.de/threads/1...-undervolten?p=1762233&viewfull=1#post1762233

Danke!
 
Mein Privacy-Plugin hatte wohl die Bilder gesperrt, sorry.

In meinem T500 sieht die Sache jetzt folgendermaßen aus, ist das soweit korrekt so?:

t500.jpg

Und Frage an die Abzwacker-Fraktion: Womit habt ihr denn die PINs abgeschnitten? Einfach mit der Pinzette rausziehen klappt leider nicht.

- - - Beitrag zusammengeführt - - -

Mein Privacy-Plugin hatte wohl die Bilder gesperrt, sorry.

In meinem T500 sieht die Sache jetzt folgendermaßen aus, ist das soweit korrekt so?:

t500.jpg

Und Frage an die Abzwacker-Fraktion: Womit habt ihr denn die PINs abgeschnitten? Einfach mit der Pinzette rausziehen klappt leider nicht.
 
  • ok1.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen
Zurück
Oben