Výsledky 1 až 3 z 3

Téma: Hackujeme stary BIOS (ako donutit 386ku rychlo bootovat)

  1. #1

    Standardní Hackujeme stary BIOS (ako donutit 386ku rychlo bootovat)

    Postavil som si printserver - doska Shuttle HOT-304, i386DX/25. Kedze 4MB bolo na Linux malo, musel som to rozsirit na 8MB (kedze doska ma SIPP sloty a mal som len SIMMky, vyrobil som z nich SIPP pridanim noziciek). Problem je v tom, ze kontrola takehoto mnozstva pamate pri POSTe trva asi 30 sekund, co zbytocne zdrzuje bootovanie (printserver sa ma zapinat a vypinat spolu s tlaciarnou). BIOS je stary (este ciernobiely), kontrola sa v nom neda vypnut. Mozne riesenia:
    1. Modifikacia BIOSu - tazko realizovatelne - BIOS je v EPROM, je to AMI z r. 1990 - nie su k tomu ziadne informacie
    2. HW zariadenie, co simuluje stlacenie ESC - podla coho by to zistilo, kedy to ma stlacit?
    3. Nahradit video BIOS (grafiku tam netreba) a nastavit v nom warm-boot flag v RAM - idealny hack

    Takze som vymyslel takyto nahradny video BIOS:
    Kód:
    00000000: 55                           db        055  ; ROM signature   
    00000001: AA                           db        0AA  ; ROM signature   
    00000002: 04                           db        004  ; ROM size in 512B blocks
    00000003: EB01                         jmps      000000006 ; jump to start
    00000005: F8                           db        0F8  ; checksum byte
    00000006: 1E                           push      ds   
    00000007: 50                           push      ax   
    00000008: 33C0                         xor       ax,ax
    0000000A: 50                           push      ax
    0000000B: 1F                           pop       ds
    0000000C: 3EA17204                     mov       ax,ds:[00472]
    00000010: 3D3412                       cmp       ax,01234 
    00000013: 740C                         je        000000021
    00000015: 3EC70672043412               mov       w,ds:[00472],01234
    0000001C: EA0000FFFF                   jmp       0FFFF:00000
    00000021: 58                           pop       ax
    00000022: 1F                           pop       ds
    00000023: CB                           retf
    Dalej nasleduju nuly az do 2048B.

    Na zaciatku su 2 bajty 55h AAh, ktore tam musia byt v kazdej pridavnej ROMke, za nimi je dlzka v 512B blokoch (mensia ako 2KB nema zmysel), za tym nasleduje instrukcia skoku na skutocny kod. Za nou je este jeden byte, ktory sluzi na to, aby mala cela ROMka 8-bitovy checksum 0.
    Kod pozrie, ci je nastaveny warm-boot flag (0040h:0072h = 1234h) - ak je, tak vrati riadenie systemovemu BIOSu. Ak nie je, tak ho nastavi a restartuje system. To zabezpeci, ze systemovy BIOS nebude vykonavat dlhy post ako pri tvrdom resete.
    Nefunguje to vsak so vsetkymi BIOSmi - napr. s Awardom z r. 1998 sa to stale dokola resetuje (BIOS zjavne vymazava warm-boot flag). Dolezite je, ze s tym starym AMI BIOSom to funguje.

    Na skusanie som pouzil 256KB flash ROMku (mensiu som nemal) v c't flasher karte (http://www.heise.de/ct/Redaktion/ea/...r/flasheng.htm) - 2KB dlhu cast som nakopiroval 128-krat za sebou a naflashoval tam, nasledne som jumpermi na karte nastavil adresu na C0000 (adresa video BIOSu) a testoval.

    V printserveri mam sietovku TP-Link TE-2009P (s nalepkou ManLi) s Realtek RTL8019AS chipom. Ma 28-pinovy socket na boot-ROM, tak som ho vyuzil na finalne riesenie 2KB dlhu cast som doplnil nulami na 32KB a naprogramoval do Winbond W27C257 (pomocou Willem EPROM programatora - http://www.willem.org). Nasledne utilitou rset-8019 (ftp://210.51.181.211/cn/nic/rtl8019a...-8019(330).zip) som zapol podporu boot-ROM a nastavil na 32KB. Utilita mi vsak nedovolila nastavit adresu C0000 - pretoze ju pouziva VGA BIOS. Vyriesila to uprava utility tak, aby hladala obsadene adresy az do D0000 (zmenit 1 byte v EXE subore na offsete 37E9h z C0 na D0).
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  2. #2
    Administrátor Avatar uživatele Spec
    Založen
    03.09.2002
    Bydliště
    Prostějov
    Příspěvky
    846
    Vliv
    300

    Standardní

    Docela elegantní řešení, ale trochu pracné
    Že se ti s tím chtělo babrat, osobně bych raději sehnal jinou 386kovou desku, která by měla kontrolu paměti disablovatelnou v setupu.
    Ale jinak super
    AMD Athlon XP 1700+ B0 JIUHB @ 9x250 | Asus A7N8X DLX rev. 1.04 bios 1009 modded BPL + ROMSIP | Trig T40-7 Plus | 2x 512MB PC3500 DDR KingSton HyperX CL2 |ATI Radeon X800GTO@16 pipelines 256Mb TVOUT/DVI | Maxtor DiamondMax9 80GB 7200rpm 8Mb cache| Z-Com Xi626 | DVD-ROM Pioneer 120S | LC Power 550W | Compaq MV700 monitor | w2k/sp4 |

  3. #3

    Standardní

    Ine 386ky by sa aj nasli ale aspon som sa trochu pohral
    BTW. Doska http://www.rainbow-software.org/imag...re/hot-304.jpg
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •