Bevezető:
Két hónapja javítottam egy HD7770 gyárilag bios hibás videokártyát, egy bios módosítással és cserével.Az volt a baja, hogy villódzott 2d-ben, ha egy monitor volt rákötve. A történet itt olvasható:[link] A javítás sikeres volt, stabil lett a kártya. Viszont utána az lett a sorsa, hogy eladásra került. Ekkor elvégeztem pár tesztet itthon, hogy minden rendben van-e vele. Hát sajnos nem. Azt tapasztaltam, hogy a villódzás bár teljesen megszűnt, de a kártyán lévő 2 db DVI port nem megy. Meghirdettem így a kártyát, a hibával együtt. Sok érdeklődő akadt, mindenki a hiba felől kérdezett, de nem vitte el senki. Akkor elhatároztam, hogy nem maradhat így, meg kell csinálni.
A Bios szerkesztése:
Előző leírásomból kiderül, hogy a videokártyának a 2d-ben való futáskor biosban beállított vram órajel a hibás.
Amik ezen a kártyán vannak chippek valamiért nem szeretik ezt az alacsony órajelre váltogatást. A VBE7-ben sajnos nincs lehetőség a 2d órajelek módosítására, ezért más program után kellett kutatnom. Ez az egyetlen program amivel meg lehet szerkeszteni a HD7000-es széria beállításait. Mivel ezek a bios képek is csak fájlok, ezért hexa editorral meg lehet őket nyitni, lehet őket szerkeszteni. A HXD nevű hexa editor alkalmazást töltöttem le. (Kipróbáltam egy másikat is FreeWare HexaEditor, az is működik meg sok másik van még) és neki álltam nézegetni a bios-t. Az ötletem onnan jött, hogy neten van néhány leírás róla, hogy egy időbe, hogy módosítgatták vele a HD7950-eket, gondoltam ezzel is meg lehet csinálni, hát nem is tévedtem.
Mikor megnyitunk HXD-vel egy bios fájlt, kb. ez a kép fogad:
Hát ez így elsőre elég bonyolultnak tűnt, de nekiálltam olvasgatni, hogy még is, hogy lehet ezen eligazodni.
Külföldi fórumokon sok hasznos dolgot találtam a témával kapcsolatban: pl.ezt, ezt és ezt.
Amiből a leglényegesebb rész számomra ez volt:
Hex in the vBIOS is written BACKWARDS
* If trying to figure out some values for yourself remember (for example) 4004 [0440] is actually input as 440 into a programmer (such as the windows calculator when in programmer mode) which is 1.088v.
tehát a hexadecimális értékek visszafele vannak írva:
A hexadecimális értékek konvertálását nem fejben végeztem hanem, ezt a két egyszerű oldalt használtam hozzá, Hex to Dec, Dec to Hex
A bios gyári 2d órajel értékei 150/150 mhz volt, tehát ezt az értéket kellett keresni:
98 3A 00 98 3A 00
Ez úgy jött ki, hogy a 150 az itt 150 00 = 15000 -nek van ábrázolva, az hexadecimálisan 003A98, ezt kell át fordítani, mert a bios-ban így vannak tárolva az értékek.
A rom-ban úgy vannak a beállítások, hogy gpu órajel, memória órajel, gpu feszültség. A gpu feszültség értéke az 39 03 volt, tehát 0,825 V.
Tehát ezt a hexadecimális értéket kellett keresnem:
Amikor megtaláltam, jött a csere, amit a keresés - csere menüpont alatt tudtam véghez vinni.
Ide kellett fordítanom egy stabil órajelet neki, előző xfx bios és olvasgatás alapján, kijött, hogy a 300/1125 lesz a nyerő. A GPU az maradhatott volna 150 mhz is, viszont az XFX bios-ban így volt(Valamint volt már 2db 7770-em amibe 300 mhz volt ez a beállítás szintén) ezért én is azt az értéket másoltam át.
30 75 00 74 B7 01
Erre lett módosítva a sor. Ilyenkor mikor elvégezzük a cserét, akkor piros lesz az a sor amit kicseréltünk. Ekkor elmentettem a fájlt és ellenőrzésnek megnyitottam VBE7-el. Kaptam is hibaüzenetet, checksum error. Ekkor megint jött a keresgélés, ahol ennek a videónak alapján, lett egy út amit meg lehetett próbálni. Ki is próbáltam, a megnyitott fájlt elmentettem, majd megnyitottam az immár VBE7 által megnyitott és mentett fájlt, így már nem dobta a hibát. Mehet is rá a kártyára.
Befejezés/flashelés:
Óvatosan kell bánni ezekkel a módosításokkal, kétszer-háromszor is meg kell nézni, mit csinálunk, egy hibás értéktől a kártya teljesen tönkre is mehet akár.
Az elmentett bios-t atiflash-el raktam rá a kártyára. Amit Total Commanderből, cmd-ből futtattam, rendszergazdaként.
backupolás: atiflash -s 0 eredeti.bin
új rom ráírása: atiflash -f -p 0 uj.rom
Ilyenkor meg kell figyelni, az atiflash kimenetelét, ha a new device id-nél 0 van az semmilyen esetben nem jó. Ha ezt látjátok véletlen akkor hibás a bios, nem szabad újraindítani a gépet, hanem vissza kell flashelni az eredetit:
atiflash -f -p 0 eredeti.bin
A rom felment, a kártya stabil, jelenleg is a gépben van, arról írok most is továbbra is eladó.
Az észrevételeket szívesen veszem, ha valamit nem jól írtam javítsatok ki. Köszönöm, hogy elolvastátok a bejegyzést.
Update 2014.10.15: A leírásban nem szerepel, hogy a kártya eredeti bios-át szerkesztettem és raktam rá újra, nem az XFX-es bios-t. A gyári bios által minden port működik a kártyán, az XFX kártya valamiben különbözik, ezért nem ment a két DVI vele.
Update 2014.10.16: A Checksum error, a HXD-vel is javítható az Analizálás - ellenőrző összeg menüpont alatt. Ezt hamarosan kifejtem bővebben...
El is fejeletett update 2014.11.30 Tehát ha checksum erroros a fájl, akkor ezt HXD-vel is tudjuk javítani, annyi a teendő, hogy bele kell menni az Analizálás ellenőrző összeg menüpontba, majd kiválasztani, hogy checksum 64 és oké. Ekkor kapunk egy ellenőrző összeget, alul van hozzá egy érték, ezt ki kell másolni. Aztán újra Analizásálás - ellenőrző összeg - checksum 64 és van egy opció amit be kell pipálni, mégpedig Összehasonlítás a következő ellenőrző összeggel. Ide kell beilleszteni az előzőleg kimásolt karaktersorozatot, majd nyomni egy okét. Ha mindent jól csináltunk egy szürke pipa jelenik meg majd alul a checksum mellett. Ha elmentjük és betöltjük a fájlt VBE7-be akkor már jónak fogja látni, nem kapunk hibaüzenetet. Nem tudom mennyire korrekt a megoldás, de működik az így megírt bios is.
Valamint egy másik fontos dolog. Újabb kártyák biosánál pl. R7 260X a 2d órajelek értékét több helyen is át kell írni mert nem fog működni. Erről fogok most egy bejegyzést írni...