Lukija
PCAXE Eminent Guru
- Učlanjen(a)
- 13.04.2009.
- Poruka
- 2.564
- Rezultat reagovanja
- 0
Moja konfiguracija
Evo sad nesto gledam ovu sobu pa vidim svi nesto moduju HW Inace, malo sam se povampirio pod stare dane jer sam nesto slicno radio pre 10 godina kada su BX i ZX bile omiljene slovne oznake na chipsetima, a dodavao se mikrokod kako bi noviji Celeroni i P3 radili na starim PPGA/FCPGA plocama. Bio neki tutorijal napisan od strane moje malenkosti na onom forumu (dok je valjao) ali je nestao netragom usled neke od migracija.
Nakon glupog uvoda ide nesto manje glupa razrada. Ko se pita cemu uopste modovanje BIOS-a neka ide na Facebook i neka lajkuje do mile volje ili radi tako nesto korisno. Koga interesuje real deal, nek produzi. Cela akcija modovanja BIOS-a je posledica nedavnog divljanja korisnika pod imenom Mipko. Da sad tu ne pametujem previse, poenta cele price je da prozivodjaci ploca cesto posle godinu dana zaborave na korisnike koji su uzeli ploce koje su tada bile aktuelne. Epilog je da BIOS cesto bude bajat a neki problemi ostaju da tavore. Konkretno, radi se o Intel RAID Option ROM-u. Ja cu pokusati da napisem kratko uputstvo kako se moze udahnuti malo svezine u vec zamatoreli BIOS. Konkretno, radicu na modovanju BIOS-a moje ploce - GA-P55-UD6. Radi se o F11d beta verziji koja je aktuelna (ime fajla je P55UD6.11D). RAID ROM koji dolazi uz ovaj BIOS je starija verzija, 9.5.0.1037. Sto i nije toliko strasno. Kod Mipko-a () na eVGA ploci je bila neka stara 8.x verzija. Stara verzija RAID ROM-a je pravila probleme ukoliko ste koristili SSD. Indikativno je da Intel izbacuje drajvere za kontrolere (Intel Rapid Storage Technology - IRST) koji su dogurali do verzije 10.6 a neke vrhunske ploce i dalje imaju stare ROM-ove. Iskljuciva krivica proizvodjaca ploca. Cela prica nije vezana samo za RAID ROM-ove vec i za ostale ROM-ove (postoje i ROM-ovi za mreznu, za dodatni kontroler kao sto je JMicron, za AHCI kontroler ...).
Pre nego sto krenem na konkretne akcije, moram da se ogradim. Sve ovo sto se radi je rizicno. Ako nesto zabrljate, mozete da onesposobite plocu. Ako ste se vec odlucili za modifikaciju BIOSa, potrudite se da makar imate neku backup soluciju. Najscesce nove ploce imaju dual BIOS tako da mozete da se izvucete ukoliko primarni BIOS bude ostecen. Cak i da flash prodje, niko ne garantuje da nece biti nekih dodatnih problema. Sve u svemu - rizik je uracunat.
Sta je sve potrebno za modovanje BIOS-a? Evo kratkog spiska:
- BIOS fajl (u mom slucaju P55UD6.11D)
- HEX editor (preporuka ide za HxD)
- alati za editovanje samog BIOS fajla (CBROM 1.15 i CBROM 1.95)
- nova verzija Intel RAID ROM-a (aktuelna verzija je 10.5.1.1070)
Opciono mogu se azurirati i sledeci ROM-ovi
- JMicron ROM (aktuelna verzija 1.07.28)
- Realtek NIC ROM (aktuelna verzija 2.41, pogledati DOS deo, PXE and RPL ROM code)
Sta je ideja cele price? AWARD BIOS se sastoji iz modula. Treba izolovati zastarele i zameniti ih novim modulima. Operisanje nad BIOS-om podrazumeva rad sa komandnim promptom. Najbolje je sve alate i BIOS image kopirati u neki folder i otvoriti komandni prompt. Ako ne znate sta je komandni prompt -> pravac Facebook. Da bi bilo jasnije, pogledajte ovaj listing koji se dobija izvrsavanjem CBROM115 P55UD6.11D /d. :
Vidimo da nas BIOS image ima preko 22 stavke. Nas cilj je da zamenimo stavku 12. (pchraidr.bin) i eventulano 14. i 15. (rtegrom.lom i jmb10706.bin ) novijom verzijom a da ostale ne diramo. CBROM ima opciju ekstrakovanja modula u fajlove (nazivi fajlova su u poslednjoj koloni u listingu) kao i opciju oslobadjanja (release), cime se modul uklanja iz BIOS-a. Drzao sam se ideje da sacuvam sve module pocev od 12. pa do 22. ukljucujuci i NCPUCODE.BIN (o njemu ide posebna prica), zatim da ih uklonim, stare module zamenim novim, i vratim sve nazad tako da se ocuva redosled. Kod ekstrakcije i oslobadjanja, redosled nije bitan ali je kod dodavanja bitno je da se redosled, sto se kaze, ispostuje. Da sumiram:
- sacuvati sve od 12 do 22 + NCPUCODE
- obrisati sve od 12 do 22 + NCPUCODE
- pchraidr.rom (i eventualno rtegrom.lom i jmb10706.bin) zameniti novijim verzijama
- sve vratiti nazad (od 12 do 22 + NCPUCODE)
Zvuci lako. Medjutim. Problem se javlja na prvom koraku. Ako pazljivo obratite paznju na listing postoje dve kolone koje govore o velicinu modula. Radi se o velicini kada je modul nekompresovan i kada je kompresovan. NCPUCODE je specifican po tome sto nije kompresovan i on sadrzi mikrokodove za podrzane procesore. Problem koji se javlja sa NCPUCODE je sto nisam nasao verziju CBROM-a kojom moze da se sacuva njegov sadrzaj. Enter Google. Uz malo trazenja nasao sam da se NCPUCODE moze sacuvati uz malo baratanja HEX editorom. Potrebno je ceo BIOS image otvoriti u nekom HEX editoru (recimo HxD) i traziti string *ALIN16*:
Obratiti baznju na offset (1E2FE0). Tu prestaje NCPUCODE blok. Da bismo nasli pocetak treba da pogledamo gore pomenuti listing. Vidimo da je velicina tog bloka 12801 bajtova (heksadecimalno). Uz pomoc kalkulatora (moze da posluzi i onaj iz Windows-a), dobijamo da NCPUCODE pocinje na 1E2FE0 - 12801 = 1D07DF. Pozicioniracemo se u HEX editoru na taj offset (Ctrl-G):
To je ofset gde pocinje NCPUCODE. Ostaje da selektujemo ceo blok duzine 12801 bajtova (heksadecimalno, prevedeno u dekadni sistem to je 75777 bajtova). Komandom Ctrl-E cemo da selektujemo trazeni blok:
Kopirati taj blok i otvoriti nov dokument, uraditi paste i snimiti ceo fajl pod imenom ncpucode.bin. Proveriti iz nekog file managera. Duzina fajla bi trebala da bude tacno 75777 bajtova. Vazna napomena! Cim snimite fajl, stavite mu read-only atribut. CBROM ima tendenciju da prepise taj fajl. Ovim cemo da ga sprecimo u tome.
Nakon sto smo sacuvali NCPUCODE, sada mozemo da pristupimo daljem rasclanjavanju BIOS-a. Sacuvacemo i ostale ROM-ove i to idemo od stavke 22 do stavke 12:
Morao sam da koristim CBROM 1.15 verziju za ovaj korak jer 1.95 verzija ne radi. Inace, kod ekstrakovajna ROM-ova, CBROM pita za ime fajla. Dovoljno je ENTER-om potvrditi vec postojece ime. Evo kako se ekstrakuju i ostale stavke:
Nakon sto su sacuvani svi ROM-ovi, potrebno ih je release-ovati. Prvo cemo da se oslobodimo NCPUCODE bloka (CBROM moze da uradi release ali ne moze extract, zato smo koristili HEX editor):
Obratiti paznju na 1D07DF. Upravo ono sto smo izracunali rucno. Evo kako se releasuju i ostali ROM-ovi:
Na kraju svega, dobicemo u radnom folderu modifikovan BIOS image i gomilu fajlova koji predstavljaju ekstrakte ROM-ova. Ako ponovo izvrsimo komandu CBROM115 P55UD6.11D /d dobicemo sledece:
Vidimo da je BIOS image sada znacajno manji. Nedostaje dosta stavki, a to smo i hteli. Sada cemo da nadjemo najnovije ROM-ove i njih cemo vratiti u BIOS-image.
Nakon glupog uvoda ide nesto manje glupa razrada. Ko se pita cemu uopste modovanje BIOS-a neka ide na Facebook i neka lajkuje do mile volje ili radi tako nesto korisno. Koga interesuje real deal, nek produzi. Cela akcija modovanja BIOS-a je posledica nedavnog divljanja korisnika pod imenom Mipko. Da sad tu ne pametujem previse, poenta cele price je da prozivodjaci ploca cesto posle godinu dana zaborave na korisnike koji su uzeli ploce koje su tada bile aktuelne. Epilog je da BIOS cesto bude bajat a neki problemi ostaju da tavore. Konkretno, radi se o Intel RAID Option ROM-u. Ja cu pokusati da napisem kratko uputstvo kako se moze udahnuti malo svezine u vec zamatoreli BIOS. Konkretno, radicu na modovanju BIOS-a moje ploce - GA-P55-UD6. Radi se o F11d beta verziji koja je aktuelna (ime fajla je P55UD6.11D). RAID ROM koji dolazi uz ovaj BIOS je starija verzija, 9.5.0.1037. Sto i nije toliko strasno. Kod Mipko-a () na eVGA ploci je bila neka stara 8.x verzija. Stara verzija RAID ROM-a je pravila probleme ukoliko ste koristili SSD. Indikativno je da Intel izbacuje drajvere za kontrolere (Intel Rapid Storage Technology - IRST) koji su dogurali do verzije 10.6 a neke vrhunske ploce i dalje imaju stare ROM-ove. Iskljuciva krivica proizvodjaca ploca. Cela prica nije vezana samo za RAID ROM-ove vec i za ostale ROM-ove (postoje i ROM-ovi za mreznu, za dodatni kontroler kao sto je JMicron, za AHCI kontroler ...).
Pre nego sto krenem na konkretne akcije, moram da se ogradim. Sve ovo sto se radi je rizicno. Ako nesto zabrljate, mozete da onesposobite plocu. Ako ste se vec odlucili za modifikaciju BIOSa, potrudite se da makar imate neku backup soluciju. Najscesce nove ploce imaju dual BIOS tako da mozete da se izvucete ukoliko primarni BIOS bude ostecen. Cak i da flash prodje, niko ne garantuje da nece biti nekih dodatnih problema. Sve u svemu - rizik je uracunat.
Sta je sve potrebno za modovanje BIOS-a? Evo kratkog spiska:
- BIOS fajl (u mom slucaju P55UD6.11D)
- HEX editor (preporuka ide za HxD)
- alati za editovanje samog BIOS fajla (CBROM 1.15 i CBROM 1.95)
- nova verzija Intel RAID ROM-a (aktuelna verzija je 10.5.1.1070)
Opciono mogu se azurirati i sledeci ROM-ovi
- JMicron ROM (aktuelna verzija 1.07.28)
- Realtek NIC ROM (aktuelna verzija 2.41, pogledati DOS deo, PXE and RPL ROM code)
Sta je ideja cele price? AWARD BIOS se sastoji iz modula. Treba izolovati zastarele i zameniti ih novim modulima. Operisanje nad BIOS-om podrazumeva rad sa komandnim promptom. Najbolje je sve alate i BIOS image kopirati u neki folder i otvoriti komandni prompt. Ako ne znate sta je komandni prompt -> pravac Facebook. Da bi bilo jasnije, pogledajte ovaj listing koji se dobija izvrsavanjem CBROM115 P55UD6.11D /d. :
Kod:
CBROM32 V1.15 [Oct 3 2007 Release] (C)ASUSTeK Computer Inc. 2007
******** P55UD6.11D BIOS component ********
No. Item-Name Original-Size Compressed-Size Original-File-Name
===============================================================================
0. System BIOS 20000h(128.00K) 141FAh(80.49K) p55ud6.BIN
1. XGROUP 0E840h(58.06K) 09B4Fh(38.83K) awardext.rom
2. ACPI Table 075ABh(29.42K) 01C5Eh(7.09K) ACPITBL.BIN
3. GROUP ROM[18] 04CF0h(19.23K) 03012h(12.02K) ggroup.bin
4. GROUP ROM[20] 047D0h(17.95K) 02E8Ch(11.64K) ffgroup.bin
5. Other (40CA) 00830h(2.05K) 0060Fh(1.51K) y2group.bin
6. YGROUP 0F020h(60.03K) 08254h(32.58K) awardeyt.rom
7. GROUP ROM[22] 0F630h(61.55K) 0276Fh(9.86K) tgroup.bin
8. GROUP ROM[23] 0F630h(61.55K) 03E8Ah(15.63K) t1group.bin
9. GROUP ROM[24] 0F630h(61.55K) 0195Ch(6.34K) t2group.bin
10. GROUP ROM[ 0] 088E0h(34.22K) 02F3Fh(11.81K) _EN_CODE.BIN
11. MINIT 351C0h(212.44K) 351F5h(212.49K) csimemrc.bin
12. PCI ROM[A] 14C00h(83.00K) 0C5CBh(49.45K) pchraidr.bin
13. PCI ROM[B] 04000h(16.00K) 02B48h(10.82K) pchahci.bin
14. PCI ROM[C] 0F800h(62.00K) 092BCh(36.68K) rtegrom.lom
15. PCI ROM[D] 08000h(32.00K) 04628h(17.54K) jmb10706.bin
16. LOGO1 00B64h(2.85K) 00520h(1.28K) dbios.bmp
17. GV3 03900h(14.25K) 02278h(8.62K) PPMINIT.ROM
18. OEM0 03056h(12.08K) 022F4h(8.74K) SBF.BIN
19. LOGO 4B30Ch(300.76K) 1D413h(117.02K) 24_ud3.bmp
20. OEM5 01132h(4.30K) 009B0h(2.42K) TPMMPDRV.ROM
21. GROUP ROM[21] 00050h(0.08K) 00078h(0.12K) TCGSMI32.BIN
22. NOCOMPRESS 11000h(68.00K) 1103Eh(68.06K) UTS64K.BIN
(SP) NCPUCODE 12801h(74.00K) 12801h(74.00K) NCPUCODE.BIN
******** Memory Sizing Code ********
BootBlock 0000 (0.00K) BootExt 5849 (22.07K)
Total compress code space = E3000h(908.00K)
Total compressed code size = D0C2Eh(835.04K)
Remain compress code space = 123D2h(72.96K)
** Micro Code Information **
Update ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID
------------------+--------------------+--------------------+------------------
SLOT1 01 06F0 | SLOT1 0D 06E1 | SLOT1 07 06F1 | SLOT1 0A 06E3
SLOT1 04 06E5 | SLOT1 01 06E5 | SLOT1 12 0651 | SLOT1 0C 0652
SLOT1 02 0655 |
- sacuvati sve od 12 do 22 + NCPUCODE
- obrisati sve od 12 do 22 + NCPUCODE
- pchraidr.rom (i eventualno rtegrom.lom i jmb10706.bin) zameniti novijim verzijama
- sve vratiti nazad (od 12 do 22 + NCPUCODE)
Zvuci lako. Medjutim. Problem se javlja na prvom koraku. Ako pazljivo obratite paznju na listing postoje dve kolone koje govore o velicinu modula. Radi se o velicini kada je modul nekompresovan i kada je kompresovan. NCPUCODE je specifican po tome sto nije kompresovan i on sadrzi mikrokodove za podrzane procesore. Problem koji se javlja sa NCPUCODE je sto nisam nasao verziju CBROM-a kojom moze da se sacuva njegov sadrzaj. Enter Google. Uz malo trazenja nasao sam da se NCPUCODE moze sacuvati uz malo baratanja HEX editorom. Potrebno je ceo BIOS image otvoriti u nekom HEX editoru (recimo HxD) i traziti string *ALIN16*:
Obratiti baznju na offset (1E2FE0). Tu prestaje NCPUCODE blok. Da bismo nasli pocetak treba da pogledamo gore pomenuti listing. Vidimo da je velicina tog bloka 12801 bajtova (heksadecimalno). Uz pomoc kalkulatora (moze da posluzi i onaj iz Windows-a), dobijamo da NCPUCODE pocinje na 1E2FE0 - 12801 = 1D07DF. Pozicioniracemo se u HEX editoru na taj offset (Ctrl-G):
To je ofset gde pocinje NCPUCODE. Ostaje da selektujemo ceo blok duzine 12801 bajtova (heksadecimalno, prevedeno u dekadni sistem to je 75777 bajtova). Komandom Ctrl-E cemo da selektujemo trazeni blok:
Kopirati taj blok i otvoriti nov dokument, uraditi paste i snimiti ceo fajl pod imenom ncpucode.bin. Proveriti iz nekog file managera. Duzina fajla bi trebala da bude tacno 75777 bajtova. Vazna napomena! Cim snimite fajl, stavite mu read-only atribut. CBROM ima tendenciju da prepise taj fajl. Ovim cemo da ga sprecimo u tome.
Nakon sto smo sacuvali NCPUCODE, sada mozemo da pristupimo daljem rasclanjavanju BIOS-a. Sacuvacemo i ostale ROM-ove i to idemo od stavke 22 do stavke 12:
Kod:
CBROM115 P55UD6.11D /nocompress extract
Enter an extract file Name :(UTS64K.BIN)
[NOCOMPRESS] ROM is extracted to UTS64K.BIN
Kod:
CBROM32_195 P55UD6.11D /group21 extract
Enter an extract file Name :(TCGSMI32.BIN)
[GROUP] ROM is extracted to TCGSMI32.BIN
CBROM32_195 P55UD6.11D /oem5 extract
Enter an extract file Name :(TPMMPDRV.ROM)
[OEM5] ROM is extracted to TPMMPDRV.ROM
CBROM32_195 P55UD6.11D /logo extract
Enter an extract file Name :(24_ud3.bmp)
[Logo] ROM is extracted to 24_ud3.bmp
CBROM32_195 P55UD6.11D /oem0 extract
Enter an extract file Name :(SBF.BIN)
[OEM0] ROM is extracted to SBF.BIN
CBROM32_195 P55UD6.11D /gv3 extract
Enter an extract file Name :(PPMINIT.ROM)
[GV3] ROM is extracted to PPMINIT.ROM
CBROM32_195 P55UD6.11D /logo1 extract
Enter an extract file Name :(dbios.bmp)
[LOGO1] ROM is extracted to dbios.bmp
CBROM32_195 P55UD6.11D /pci extract
PCI ROM - - - [A] : pchraidr.bin
PCI ROM - - - [B] : pchahci.bin
PCI ROM - - - [C] : rtegrom.lom
PCI ROM - - - [D] : jmb10706.bin
Enter a choice:a
Enter an extract file Name :(pchraidr.bin) [PCI-A] ROM is extracted to pchraidr.bin
CBROM32_195 P55UD6.11D /pci extract
PCI ROM - - - [A] : pchraidr.bin
PCI ROM - - - [B] : pchahci.bin
PCI ROM - - - [C] : rtegrom.lom
PCI ROM - - - [D] : jmb10706.bin
Enter a choice:b
Enter an extract file Name :(pchahci.bin) [PCI-B] ROM is extracted to pchahci.bin
CBROM32_195 P55UD6.11D /pci extract
PCI ROM - - - [A] : pchraidr.bin
PCI ROM - - - [B] : pchahci.bin
PCI ROM - - - [C] : rtegrom.lom
PCI ROM - - - [D] : jmb10706.bin
Enter a choice:c
Enter an extract file Name :(rtegrom.lom) [PCI-C] ROM is extracted to rtegrom.lom
CBROM32_195 P55UD6.11D /pci extract
PCI ROM - - - [A] : pchraidr.bin
PCI ROM - - - [B] : pchahci.bin
PCI ROM - - - [C] : rtegrom.lom
PCI ROM - - - [D] : jmb10706.bin
Enter a choice:d
Enter an extract file Name :(jmb10706.bin) [PCI-D] ROM is extracted to jmb10706.bin
Nakon sto su sacuvani svi ROM-ovi, potrebno ih je release-ovati. Prvo cemo da se oslobodimo NCPUCODE bloka (CBROM moze da uradi release ali ne moze extract, zato smo koristili HEX editor):
Kod:
CBROM32_195 P55UD6.11D /nc_cpucode release
Free address [1D07DF] of the BIOS
Kod:
CBROM32_195 P55UD6.11D /nocompress release
CBROM32_195 P55UD6.11D /group21 release
CBROM32_195 P55UD6.11D /oem5 release
CBROM32_195 P55UD6.11D /logo release
CBROM32_195 P55UD6.11D /oem0 release
CBROM32_195 P55UD6.11D /gv3 release
CBROM32_195 P55UD6.11D /logo1 release
echo D | CBROM32_195 P55UD6.11D /pci release
echo C | CBROM32_195 P55UD6.11D /pci release
echo B | CBROM32_195 P55UD6.11D /pci release
CBROM32_195 P55UD6.11D /pci release
Kod:
CBROM32 V1.15 [Oct 3 2007 Release] (C)ASUSTeK Computer Inc. 2007
******** P55UD6.11D BIOS component ********
No. Item-Name Original-Size Compressed-Size Original-File-Name
===============================================================================
0. System BIOS 20000h(128.00K) 141FAh(80.49K) p55ud6.BIN
1. XGROUP 0E840h(58.06K) 09B4Fh(38.83K) awardext.rom
2. ACPI Table 075ABh(29.42K) 01C5Eh(7.09K) ACPITBL.BIN
3. GROUP ROM[18] 04CF0h(19.23K) 03012h(12.02K) ggroup.bin
4. GROUP ROM[20] 047D0h(17.95K) 02E8Ch(11.64K) ffgroup.bin
5. Other (40CA) 00830h(2.05K) 0060Fh(1.51K) y2group.bin
6. YGROUP 0F020h(60.03K) 08254h(32.58K) awardeyt.rom
7. GROUP ROM[22] 0F630h(61.55K) 0276Fh(9.86K) tgroup.bin
8. GROUP ROM[23] 0F630h(61.55K) 03E8Ah(15.63K) t1group.bin
9. GROUP ROM[24] 0F630h(61.55K) 0195Ch(6.34K) t2group.bin
10. GROUP ROM[ 0] 088E0h(34.22K) 02F3Fh(11.81K) _EN_CODE.BIN
11. MINIT 351C0h(212.44K) 351F5h(212.49K) csimemrc.bin
******** Memory Sizing Code ********
BootBlock 0000 (0.00K) BootExt 5849 (22.07K)
Total compress code space = E3000h(908.00K)
Total compressed code size = 6E131h(440.30K)
Remain compress code space = 74ECFh(467.70K)
** Micro Code Information **
Update ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID
------------------+--------------------+--------------------+------------------
Poslednja izmena: