« Posts tagged Lenovo

Neuere Lenovo BIOS ISOs auseinander nehmen und zu einem USB Stick machen …

Falls ihr schonmal versucht habt, die Daten aus einer der neueren BIOS ISOs zu extrahieren, werdet ihr gemerkt haben, dass dies gar nicht so einfach ist, weil alle Packprogramme scheitern. Daher erkläre ich kurz, wie ihr die Daten extrahiert und grob wie ihr einen USB Stick mit DOS und dem Biosupdate erstellt, aber hauptsächlich geht es ums extrahieren. Im Beispiel beziehe ich mich auf das aktuellste Bios Update Iso fürs R400 (3.22/3.20) von hier.

Bisher nutzte IBM/Lenovo für die ISOs immer die Floppy Emulation Methode um die CD bootbar zu machen. Hat man diese ISOs mit einem Packprogramm entpackt, sah der Inhalt so aus:

|-- [BOOT]
|   `-- Bootable_1.44M.img
|-- $01B2000.FL1
|-- $01B2000.FL2
|-- 06f1.hsh
|-- 06F1.PAT
|-- 06f4.hsh
|-- 06F4.PAT
|-- 06f5.hsh
|-- 06F5.PAT
|-- 06f9.hsh
|-- 06F9.PAT
|-- 06fa.hsh
|-- 06FA.PAT
|-- 06fb.hsh
|-- 06FB.PAT
|-- 06fd.hsh
|-- 06FD.PAT
|-- 10661.hsh
|-- 10661.PAT
|-- 10671.hsh
|-- 10671.PAT
|-- 10674.hsh
|-- 10674.PAT
|-- 10676.hsh
|-- 10676.PAT
|-- CHKBMP.EXE
|-- COMMAND.COM
|-- FLASH2.EXE
|-- lcreflsh.bat
|-- LOGO.BAT
|-- LOGO.SCR
|-- PHLASH16.EXE
|-- PREPARE.EXE
|-- README.TXT
|-- TPCHKS.EXE
|-- UPDTFLSH.EXE
|-- UPDTMN.EXE
|-- USERINT.EXE
`-- UTILINFO.EXE

Hingegen sieht es bei neueren ISOs so aus (je nach Packprogramm hat das Image einen anderen Namen und verschiedene Größen):

`-- [BOOT]
    `-- Bootable_HardDisk.img

Wie man sieht, fehlen alle Dateien, da sie im Bootloader stecken, Lenovo hat hier die sogenannte “Hard Drive Emulation” Methode benutzt. (hier findet man Infos dazu). Da wir mit dem Image, welches das Entpackprogramm entpackt nichts machen können, müssen wir auf die Suche gehen: Wir brauchen das eingebettete Image und den Anfangssektor um es zu extrahieren.

Es gibt genau ein Tool welches aus so einem Image noch etwas mehr “herausholen” kann, das ist das Tool IsoBuster unter Windows. Die Testversion tuts für unsere Zwecke; Ich hab sie in einer Windows VM benutzt. (Ob es unter Wine geht weiß ich nicht, könnte aber sein.)

Also öffnen wir nun die ISO mit IsoBuster und siehe da, dort ist zusätzlich zum nutzlosen Image noch ein File namens BootCatalog.cat, welches wir sofort extrahieren. Was BootCatalog.cat genau macht weiß ich nicht, aber wir öffnen es nun in einem HexEditor (unter Linux nutze ich GHex).

Hex Ausschnitt

Wir sehen auf dem Bild:
88 -> Markierung dass die ISO bootfähig ist.
04 -> Markierung dass die ISO “hard drive emulation” nutzt.
1B 00 00 00 -> Anfangsadresse des Images in HEX (rückwärts) -> 0x0000001B = 27 (auf dem Bild ist eine Nullengruppe zuviel markiert…)

Also ist 27 die Anfangsadresse, die Sektorgröße einer CD ist 2048, Anfangssektor ist 2048*27=55296. Nun können wir es mit dd ausbauen:

sudo dd if=7uuj47uc.iso of=extracted-hdd.img bs=2048 skip=27

Jetzt durchsuchen wir das Image nach Dateisystemen mit sudo fdisk -l extracted-hdd.img:

Platte extracted-hdd.img: 25 MByte, 25149440 Byte
64 Köpfe, 32 Sektoren/Spur, 23 Zylinder, zusammen 49120 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

            Gerät  boot.     Anfang        Ende     Blöcke   Id  System
extracted-hdd.img1   *          32       49151       24560    4  FAT16

Jetzt wissen wir also, dass im Image ein Sektor 512 Bytes hat und der Anfang bei Adresse 32 liegt. Anfangssektor ergibt sich damit aus 32*512=16384.
Einhängen lässt sich das Image nun folgendermaßen:

sudo mount -o loop,offset=16384 extracted-hdd.img /mnt

Und schon ist in /mnt der ganze Inhalt sichtbar:

|-- FLASH
|   |-- 7UET92WW
|   |   |-- $01B8200.FL1
|   |   |-- $01B8200.FL2
|   |   |-- 06fd.hsh
|   |   |-- 10674.hsh
|   |   |-- 10676.hsh
|   |   `-- 1067a.hsh
|   |-- 7VET90WW
|   |   |-- $01B8100.FL1
|   |   |-- $01B8100.FL2
|   |   |-- 06fd.hsh
|   |   |-- 10674.hsh
|   |   |-- 10676.hsh
|   |   `-- 1067a.hsh
|   |-- 06FD.PAT
|   |-- 10674.PAT
|   |-- 10676.PAT
|   |-- 1067A.PAT
|   |-- CEIMAIN.BIN
|   |-- CHKBMP.EXE
|   |-- COMMAND.COM
|   |-- FI.EXE
|   |-- FINDRAMD.EXE
|   |-- FLASH2.EXE
|   |-- FP.EXE
|   |-- lcreflsh.bat
|   |-- LOGO.BAT
|   |-- LOGO.SCR
|   |-- PHLASH16.EXE
|   |-- README.TXT
|   |-- ROM2MOD.EXE
|   |-- TPCHKS.EXE
|   |-- UPDTFLSH.EXE
|   |-- UPDTMN.EXE
|   |-- USERINT.EXE
|   `-- UTILINFO.EXE
|-- AUTOEXEC.BAT
|-- COMMAND.COM
|-- CONFIG.SYS
|-- HIMEM.SYS
|-- IBMBIO.COM
|-- IBMDOS.COM
|-- RAMDRIVE.SYS
`-- WINA20.386

Ziel erreicht ;)

Ich werde jetzt nicht im Detail darauf eingehen, wie man einen Dos Stick unter Linux erstellt, dafür gibt es genug Anleitungen. Wichtig: Hier braucht man einen MS-DOS Stick, ob es mit einem FreeDOS Stick geht, weiß ich nicht.
(Tipp: unter Windows einen MS DOS Stick erstellen per Hp Tool und dann mit dd ein Image machen, dann habt ihr immer wieder die Möglichkeit aus dem Image einen zu machen.)

Jetzt kopiert ihr einfach alle Dateien und Ordner aus dem Image extracted-hdd.img, welche nun in /mnt liegen, auf den USB Stick. (sichert euch vorher aber vom DOS Stick COMMAND.COM,IO.SYS,MSDOS.SYS)
Bei mir war nun das Problem, dass er nicht booten wollte, weil die COMMAND.COM ungültig sei oder sowas, aber das ließ sich leicht lösen, in dem man die 3 Dateien (COMMAND.COM,IO.SYS,MSDOS.SYS) vom ursprl. Dos Stick drüber schreibt, bei mir waren sie von einer Windows 95 Startdiskette (genau wie der ganze Stick). (die COMMAND.COM.usw. in FLASH müssen nicht geändert werden! Nur die auf der obersten Ebene.)

Damit lief das Biosupdate komplett & fehlerfrei durch, wenn auch das Win 95 Startdisketten Bild kontinuierlich (ausser am Schluss) angezeigt wurde ;)

Jetzt könnt ihr euch auch unter Linux das FN+STRG Switch Middleton Bios Flashen z.B.. (falls es keine Iso gibt von Middleton, bei manchen Modellen fehlen diese Images.). Man ersetzt einfach die FLASH/7UET92WW/$01B8200.FL2 sowie FLASH/7UET92WW/$01B8200.FL1 mit denen aus dem Windowspaket und die autoexec.bat ändert man wie folgt:

@ECHO OFF
PROMPT $p$g
cd c:\flash
cls
echo.
echo.
echo Updating Embedded Controller. Please wait...
phlash16 /mode=0 /p /s /cs /x /exit /v /keepcmos 7UET92WW\$01B8200.FL2
echo EC flash completed. Reboot your machine now.
echo.
echo.

Schon hat man sich aus dem originalen Bios Update ISO und dem Middleton Windows Bios Update einen USB Stick gemacht.Ebenso kann man einen Zurücksetz-Stick machen (das was für mich der Hauptgrund), in dem man das originale ISO nimmt und alles original lässt und nur die autoexec.bat wie oben ändert.

Wer sich hingegen daraus wieder ein ISO machen will, dem sei dieses Post ans Herz gelegt. Von dort habe ich auch die wichtigsten Infos für diese Anleitung hier, daher herzlichen Dank an Icecube für die Informationen.

Jetzt weiß ich auch warum man die neueren BIOS ISOs von Lenovo nicht mit Unetbootin bootbar machen kann, das klappte nämlich nicht und ich wusste nie wieso, vermutlich liegt es an der Hardware Emulation.
Wer hingegen nur ein ISO booten will, ohne was zu verändern, dem sei die GRUB Methode ans Herz gelegt.

Windows 7 on IBM T42

Was wollen wir heute hübsches machen: Windows 7 Professional auf einen IBM T42(p) packen. Möglichst “clean”, d.h. ohne die ganzen “tools” von Lenovo.

Konfiguration: SXGA, Fire GL T2, 1 GB Ram, Pentium M 1,7 GHZ (dothan), IBM 11a/b/g Wireless LAN Mini PCI Adapter (Atheros AR5001X+), IBM Integrated Bluetooth III with 56K Modem (BMDC-2), Tackpoint mit Ultranav. (Rest ist unwichtig)

Bisherige Probleme: Ati 7500 geht net wirklich unter Windwos 7. Nach 326 Treiberversuchen hab ich kurzerhand das Mainboard gewechselt und hab nun eine Fire GL T2 (Radeon 9600) drin. Damit sollte alles tun! FN+F5 geht ebenfalls nicht richtig unter Windows 7.(Das korrigieren wir gleich)

Also legen wir los:
1) Windows 7 “besorgen”. Ich habs ausm MSDNAA (Studentenbla…) aber im MSDNAA gibts nur das englische Windows 7 RTM. (RTM = Release to Manufacture = das was im Okt. im Laden stehen wird.). Aber es ist auch relativ einfach möglich einfach eine deutsche Windows 7 Ultimate RTM DVD zu nehmen, dort die ei.cfg zu löschen und schon kann man schön professional mit dem “englischen” Key installieren. (Keys scheinen bei Win 7 nicht sprachgebunden zu sein – kp)

2) Wir installieren Windows 7.

3) Kurz zur Grafik: Für die Radeon 9600 / Fire GL T2 erscheinen nur noch im 3 Monatszyklus Treiber. Wir laden uns: Mobility Modder und den Ati Treiber 9.3. Den Ati Treiber modden wir mit dem Mobility Modder (Anleitung siehe Link zum Mobility Modder) und installieren diese inkl. dem CCC. Grafik geht nun also perfekt. (Kleines Manko: Beim internen Display zeigt er nur 50 Hz an…merkt man aber nicht/beim externen passts.) Computerbewertung laufen lassen verhilft euch zu Aero ;)

4) Wir brauchen Internet. Also installiert diesen Wlantreiber. Wichtig: Das ist ein X32 Treiber der eig. nur die IBM 11a/b/g Wireless LAN Mini PCI Adapter (Atheros AR5004X+) kann, aber das ist der einzige womit FN+F5 richtig geht, also gehen wir so vor: Normal über setup.exe installieren, danach nochmal C:\Drivers\Vista\Wlanath\setup.exe ausführen, danach neustarten, danach von Hand(!) im Geräte Manager den Treiber übers Wlangerät bügeln und zwar den des Atheros AR5002X. Sollte nun gehen.

5) Jetzt noch der restliche Spaß(bitte die Reihenfolge einhalten und immer schön nen Neustart dazwischen machen!): System Interface Treiber, Hotkey Treiber, Powermanagement Treiber, Active Protection, UltraNav Driver, UltraNav Tool (Falls ihr nach einem GeräteTyp gefragt werdet…gebt einfach 0000-00 ein) (Wenn ihr die Reihenfolge eingehalten habt..geht danach FN + F5 korrekt. Wenn nicht geht mal in den Programmordner (C:\Programme\Lenovo\Hotkey\  und setzt die TPFNF5.exe auf Windowx XP SP3 Kompatibilitätsmodus. Dann seht ihr die Fehlermeldungen)

6) Windows Update ausführen, folgende optionale Updates nicht installieren: PM (Powermanagment) Treiber, Atheros Wlan, usw. (eben alles nicht was wir von Hand installiert haben.)

7) Jetzt sollte alles wie gewohnt gehen und keine Probleme mehr machen.

Ein paar Anmerkungen zu Win 7: Lenovo System Update geht nicht wirklich. Presentation Director auch nicht so richtig.

Falls ihr Thunderbird nutzen solltet, stellt unbedingt die beiden Optionen ab: “Expunge” & “Papierkorb beim verlassen leeren”.  (Findet man bei den Konteneinstellungen und muss bei jedem Konto deaktiviert werden.). Wenn eine der Optionen aktiviert ist, habt ihr das Problem das wenn ihr Thunderbird schließt und sofort wieder öffnen wollt es hängen bleibt. (Unter Vista ging das noch super!) Ich öffne oft Thunderbird direkt nach dem ichs zugemacht habe … Vergesslichkeit ;)

Eins noch: Falls ihr auch gerne wollt, das beim Klick aufs Bibliothekszeichen in der Taskleiste sich der Arbeitsplatz öffnet anstatt das Bibliothekending, dann macht folgendes: Rechtsklick auf Biliothekensymbol in der Taskleiste -> Rechtsklick auf Explorer -> Eigenschaften -> Ziel auf  “%windir%\explorer.exe /e,” umsetzen. (ohne “”). Jetzt öffnet ihr den Arbeitsplatz. (ohne das Komma gehts nicht!)

Nochwas für alle Ati 7000/7500/usw. Nutzer ohne Aero: schaut euch mal das hier an. Weiterhin gibts modified basic themes damit das nicht mehr ganz so schlecht aussieht -> hier.

Falls ihr Fragen habt -> einfach nen Kommentar schreiben ;)

Nachtrag: Nach einigen Tagen ist mir aufgefallen dass die WlanLED ja nicht tut…vermutlich wird die beim Atheros AR5002X anders angesteuert – aber ist ja eigentlich eher unwichtig. Hauptsache Wlan + FNF5 tut.

Nachtrag 2: Okay der Treiber ist doch schrotthat wesentlich schlechteren Empfang als der aus Windows Update und disconnected schon bei minimal schlechtem Empfang. -> Müll.