- 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.
Jetzt kann man die Quad-Core-CPU im Sockel platzieren und damit ins Lenovo-BIOS gehen.
Dort sollte die CPU auch richtig angezeigt werden.
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.
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
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.
Jetzt kann man die Quad-Core-CPU im Sockel platzieren und damit ins Lenovo-BIOS gehen.
Dort sollte die CPU auch richtig angezeigt werden.
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.
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: