BIOS mirksi. BIOS paleidimas iš „Linux“ „Flash ROM“ prieigos ir rašymo apsaugos mechanizmai

Šis straipsnis tęsia temą, susijusią su pagrindinės plokštės BIOS sugadinimo grėsme
lentos kenkėjiška programa. Anksčiau paskelbtoje medžiagoje
ir buvo
Programos, kuri rašo, pavyzdys BIOS lustas, laikomas
pagrindinių plokščių gamintojų naudojami apsaugos mechanizmai ir priežastys
kuriems šie mechanizmai dažnai būna neveiksmingi. Priminsime, kad š
problema iškilo daugiau nei prieš 10 metų, kai buvo pristatyta BIOS laikmena
naudokite „Flash ROM“ lustus, leidžiančius be jo perrašyti turinį
fiziniai trukdžiai kompiuteriui. Taigi, galimybė veikti
BIOS perrašymas (atnaujinimas), paskatino šalutinis poveikis– jo avarijos rizika
arba tyčinis klaidingas pateikimas.

Atrodytų, kad šiandien šia tema jau viskas pasakyta. Tačiau laikui bėgant jie atsiranda
naujų tipų Flash ROM lustai ir jų prijungimo sąsajos. Tai
kartu atsiranda naujų metodų, kaip apsaugoti BIOS nuo neteisėto
iškraipymų ir, žinoma, naujų pažeidžiamumų. Anksčiau paskelbtoje medžiagoje
nuoroda į kurią pateikiama straipsnio pradžioje, nagrinėjama tema nagrinėjama
platformos pavyzdys, naudojant SST 49LF004A lustą, prijungtą prie
LPC (Low Pin Count) sąsaja. Šiandien ji buvo pakeista sąsaja SPI
(Nuoseklioji periferinė sąsaja)
. Prisiminkite tai, kad perrašytumėte turinį
BIOS lustas, programa turi sąveikauti su dviem registrų blokais:
registrai Flash sąsaja ROM, esantis kaip mikroschemų rinkinio „pietinio tilto“ dalis ir
registrai, kurie yra paties „Flash ROM“ lusto dalis. Kai persikelia iš
LPC ir SPI sąsaja, dviejų nurodytų blokų architektūra labai pasikeitė.
Todėl prasminga apsvarstyti programų sąveiką su BIOS lustu,
apsaugos mechanizmus ir jų pažeidžiamumą, palyginti su šiuolaikinėmis platformomis.
Medžiaga pateikiama su pavyzdžiais montažinėje. Naudojamas eksperimentams
pagrindinė plokštė Gigabyte GA-965P-S3, sukurtas naudojant Intel 965 mikroschemų rinkinį,
aprašyta . Šioje plokštėje naudojama BIOS laikmena
lustas SST 25VF080B, aprašytas. Šio lusto talpa yra 8 megabitai
(1 megabaitas) ir prisijungia prie SPI sąsajos. Vieni kitų lustai
gamintojai, naudojantys tą pačią sąsają, aprašyti . apibūdinimas
SPI sąsaja pateikta . Bendraudami su SPI valdikliu, mes
turėsite naudoti mechanizmus, kad pasiektumėte konfigūracijos erdvę,
aprašyta dokumentuose.

SPI sąsaja: istorinis fonas

Kaip žinoma, tik skaitymo atminties lusto greitis
(Flash ROM), naudojama kaip BIOS laikmena, praktiškai neturi jokios įtakos
bendras kompiuterio našumas. Taip yra dėl to, kad pradedant
pagrindinė plokštė, BIOS perrašoma (arba išpakuojama) į RAM
Šešėlinė RAM atmintis ir prieiga prie BIOS per OS seansą, programos veikia su
RAM, o ne su „Flash ROM“ lustu. Todėl, skirtingai nei
procesorius, atmintis, grafikos posistemė, kurios raidą lydi
našumo augimas, „Flash ROM“ lustai ir jų sąsajos tobulėja
kita kryptis. Pagrindinis kriterijus čia yra išlaidų mažinimas,
energijos suvartojimas ir pagrindinėje plokštėje užimta vieta. Pagrindinis metodas
pasiekti šiuos tikslus – sumažinti laidininkų skaičių tarp BIOS lusto
ir valdiklis, paprastai lustų rinkinio „pietinio tilto“ dalis. Iš požiūrio taško
BIOS lusto prijungimo būdas, galima išskirti tris pagrindinių plokščių kartas
mokesčiai:

1) Plokštėse, kuriose naudojama ISA magistralė, buvo sumontuoti nuolatiniai lustai
saugojimo įrenginiai su atskiromis adresų, duomenų ir valdymo linijomis. At
tai kiekvienam adresui ir duomenų bitui, taip pat kiekvienam valdymo signalui
(skaitymui, rašymui) reikėjo savo laido, tiksliau – atspausdinto laidininko lentoje.

2) Atsiradus „Intel 810“, 815 mikroschemų rinkiniams, pagrįstiems „centro“ architektūra,
ISA magistralė yra praeitis. Daugybė pagrindinės plokštės įrenginių, prie kurių anksčiau buvo prijungta
ISA (diskelių valdiklis, COM ir LPT prievadai, BIOS lustas), „perkeltas“ į
Low Pin Count arba LPC sąsaja, kurios pavadinimas verčiamas kaip „mažas
signalų skaičius". Adresas, duomenys ir valdymo signalai šioje sąsajoje
perduodama per penkias linijas (neskaičiuojant atstatymo signalų, laikrodžio ir linijų
maitinimo šaltinis), veikiant laiko multipleksavimo režimui. Naudojami BIOS lustai
tokiose platformose, kartais vadinamose Firmware Hub arba FWH. Programos pavyzdys
ištrinti ir įrašyti BIOS lustą, pateikta anksčiau paskelbtame straipsnyje
„BIOS ROM skverbtis“ N1 ir N2“ skirta tokioms platformoms.

3) Pradedant nuo Intel mikroschemų rinkinys 945, „pietiniame tilte“ yra valdiklis
specializuota nuoseklioji magistralė nuoseklioji periferinė sąsaja arba SPI,
naudojant skaitymo ir rašymo duomenų perdavimą, taip pat valdymo ir būsenos duomenis
informacija per vieno bito nuoseklųjį kanalą. Tai leido naudoti
8 kontaktų korpusas BIOS lustui. Šis straipsnis skirtas svarstymui
tik tokios platformos.

Atkreipkite dėmesį, kad LPC sąsają taip pat palaiko šiuolaikiniai mikroschemų rinkiniai ir
Pagrindinės plokštės kūrėjas gali prisijungti prie BIOS lusto
tiek LPC, tiek SPI. SPI sąsajos taikymo sritis nėra ribojama
kompiuterių pagrindinės plokštės. Dėmesingas skaitytojas gali pastebėti
kad dėl perėjimo prie serijinio duomenų formato kiekvienas iš aprašytų
sąsajos naudoja daugiau laikrodžio ciklų skaitymo ir rašymo operacijoms atlikti,
nei jo pirmtakas, kuriam būdingas našumo sumažėjimas. Bet tai ne
atsiranda, nes šią aplinkybę kompensuoja dažnio padidėjimas ir
duomenų formatų optimizavimas. ISA magistralė veikia 5-8MHz dažniais, LPC at
33MHz, SPI 33-50 MHz.

SPI Flash ROM lusto architektūra

SPI Flash lustai, ypač SST25VF080B, naudoja tris signalus
duomenų priėmimas ir perdavimas. SCK (Serial Clock) – laikrodžio įvestis
perduotus ar gautus duomenis. SI (Serial Input) – įvestis perdavimui
duomenys iš valdiklio į lustą, adresas po bitų perduodamas šia linija,
duomenys, kuriuos reikia įrašyti, ir mikroschemų valdymo komandų kodai. SO (serijinė išvestis)
išvestis, skirta duomenų perdavimui iš lusto į valdiklį, po truputį šia linija
Perduodami skaitomi duomenys, taip pat informacija apie lusto būseną.
Valdiklis valdo lustą komandomis, kurios inicijuoja operacijas
duomenų skaitymas ir rašymas, trynimas, lustų ID skaitymas, skaitymas ir
būsenos registro įrašai ir kt.

Kiekvieno iš aštuonių mikroschemos kontaktų paskirtis, visų komandų aprašymas ir
taip pat yra kitų detalių.

SPI valdiklio architektūra

Į „Intel ICH8 Southbridge“ įtrauktame SPI valdiklyje yra daugiau nei
20 valdymo ir būsenos registrų. Registrai adresuojami atminties erdvėje su
naudojant atminties susietą I/O technologiją, aptartą anksčiau
publikuotas straipsnis „Įrenginiai sistemos palaikymas. Tyrimas
N ". Visų SPI valdiklio registrų ir komandų aprašymas nepatenka
Šiame straipsnyje apžvelgsime pagrindinius skirtumus tarp SPI sąsajos programinės įrangos modelio ir
jo pirmtakas - LPC sąsaja, orientuota į registrus,
naudojamas atliekant pagrindines operacijas – identifikatorių skaitymą, rašymą ir
„Flash ROM“ ištrynimas.

Priminsime, kad fizinė prieiga prie BIOS lusto (nepainioti su sritimi
Shadow RAM) atliekama per langą, esantį greta viršutinės ribos
diapazonas 0-4GB. Pavyzdžiui, asortimente bus 1 MB „Flash ROM“.
FFF00000h-FFFFFFFFh. Platformose, kuriose naudojamos ISA ir LPC sąsajos, per
tas pats diapazonas, atliekant trynimo ir rašymo operacijas, perdavimą
komandas ir įrašytus duomenis „Flash ROM“ lustui, taip pat jo nuskaitymą
statusą. Šiame straipsnyje aptariama SPI sąsają naudojanti platforma
taip pat palaiko BIOS lusto turinio skaitymą per nurodytą diapazoną,
bet perduoda valdymo ir būsenos informaciją įrašymo ir trynimo metu
„Flash ROM“, naudojamas kitas prieigos būdas. Informacija apie ciklą
SPI magistralė (adresas ir duomenys) įrašomi į specialius SPI valdiklio registrus
(atitinkamai „Flash Address“ ir „Flash“ duomenys), tada į programinės įrangos sekos registrą
„Flash Control“ siunčiama komanda, skirta atlikti „Flash ROM“ prieigos ciklą
(skaityti arba rašyti). Po to per Software Sequencing Flash Status registrą
galite nustatyti, kada operacija baigta, ir patikrinti, ar nėra klaidų.
Duomenys, nuskaityti iš „Flash ROM“, yra „Flash“ duomenų registre.

Platformose su ISA ir LPC sąsajomis komandų perdavimą atliko
Tiesioginis komandos kodo baito įrašymas į „Flash ROM“ adresų diapazoną. SPI sąsaja
naudoja netiesioginį komandų perdavimo per 8 baitų registrą metodą
OpCode meniu. Kiekvienas šio registro baitas saugo vienos iš komandų for kodą
Flash ROM valdymas (rašymas, trynimas, skaitymo identifikatorius ir kt.). Dėl
norint pradėti reikiamą operaciją, programa turi perduoti baitų skaičių (nuo 0 iki 7),
kuriame yra šios operacijos kodas. Šis skaičius perduodamas 3 bitų COP lauke
(Cycle Opcode Pointer), kuri yra įrašyto 32 bitų kodo dalis
Software Sequencing Flash Control registras, skirtas paleisti vykdymo komandą.
„OpCode Menu“ registro blokas paprastai inicijuoja BIOS, kai platforma paleidžiama.
Opcode baitų vieta 8 baitų bloke priklauso nuo BIOS diegimo
ir gali būti savavališki, todėl programa turi nuskaityti šį bloką ir
nustatyti, kokiu numeriu jame yra reikalinga komanda. Šis skaičius ir
bus naudojami pildant COP laukelį.

Pažvelkime į „Software Sequencing Flash Status“ naudojimą ir
„Software Sequening Flash Control“ daugiau informacijos. Programinės įrangos sekos „Flash“ registras
Būsenos plotis yra 8 bitai ir yra 90h poslinkis
bazinis SPI valdiklio adresas (SPIBAR+90h). Programinės įrangos sekos „Flash“ registras
Valdymas yra 24 bitų pločio ir yra 91h poslinkyje. At
programuojant valdiklį, patogu prieiti prie dviejų nurodytų registrų vienu
32 bitų skaitymo arba rašymo operacija adresu 90h. Šiuo atveju bitai 0–7
atitinka programinės įrangos sekos blykstės būsenos registrą, o 8–31 bitai atitinka
Programinės įrangos sekos blykstės valdymas. Tai prieigos būdas, naudojamas
surinkimo pavyzdžiai pridedami prie straipsnio. Apsvarstykite bitų priskyrimą
pagal aukščiau aprašytą numeraciją.

0 bitas(SPI Cycle In Progress) – naudojamas sukimo momentui nustatyti
operacijos SPI magistrale užbaigimas. „0“ reiškia, kad SPI magistralė neveikia ir programa
gali pradėti kitą ciklą. „1“ reiškia, kad SPI magistralė užimta, veikia
sandorį. Bitą nustato ir iš naujo nustato aparatinė įranga ir jis pasiekiamas tik
skaitymas.

1 bitas(Rezervuota) – nenaudota.

2 bitas(Cycle Done Status) – aparatinė įranga nustato į „1“, kai
sandorio užbaigimas SPI magistrale. Norėdami iš naujo nustatyti, programa turi įrašyti "1".
duotas bitas.

3 bitas(Flash Cycle Error) – aparatinė įranga nustato į „1“, jei
operacijos metu įvyko klaidų: įrašo apsauga arba bandymas paleisti
kitą operaciją, kol ankstesnė nebaigta. Norėdami iš naujo nustatyti, programa turi
prie šio bito parašykite "1".

4 bitas(Prieigos klaidų žurnalas) – aparatinė įranga nustato į „1“, jei buvo
vieta, kur bandoma pasiekti BIOS lustą, pažeidžiant nurodytas prieigos teises
adresų diapazonai, užprogramuoti valdiklio konfigūracijos registruose
SPI.

5-7 bitai

8 bitas(Rezervuota) – nenaudota. Kaip parodyta aukščiau, 8–31 bitai
Aptariamas 32 bitų žodis atitinka 0–23 programinės įrangos registro bitus
Blykstės valdymas.

9 bitas(SPI Cycle Go) – pradėkite operaciją SPI. Rašymas "1" šiam bitui
pradeda vykdyti sandorį, kurio tipas ir turinys nustatomas
to paties registro 10-31 bitų būsena.

10 bitas(Atomic Cycle Sequence) – perduodant pavedimą vykdyti
operacijų, šio bito įrašymas „1“ apsaugo nuo išorinių įvykių trukdymo
procesai, vykstantys SPI sąsajoje iki trijų
fazės: priešdėlio komandos perdavimas, pagrindinės komandos perdavimas ir užbaigimas
pagrindinės komandos vykdymas.

Atkreipkite dėmesį, kad tokiu būdu vienas iš apsaugos nuo
atsitiktinis BIOS lusto turinio sugadinimas. Vadinamasis priešdėlis
komandos (pavyzdžiui, Write Enable) turi būti prieš komandas, kurios keičiasi
lusto turinį (pavyzdžiui, rašyti, ištrinti). Gavęs komandos kodą, kuriame yra
"1" šiame bite valdiklis atlieka visas tris aparatinės įrangos fazes, be
procesoriaus įsikišimas prieš baigiant pagrindinę instrukciją.

11 bitas(Sequence Prefix Opcode Pointer) – kai naudojamas priešdėlis
komandas (kai 10 bitas nustatytas į "1", žr. aukščiau), šis bitas pasirenka vieną iš dviejų
baitų, kurie turi būti siunčiami kaip priešdėlio komanda į SPI lustą
Blykstė. Kai „0“ pasirenkamas žemas priešdėlio opkodo konfigūracijos registro baitas
Registruokis, su "1" – vyr.

12-14 bitai(Cycle Opcode Pointer) – šis bitų laukas pasirenka vieną iš
aštuoni baitai, kurie bus perduodami kaip pagrindinė komanda į lustą
SPI blykstė. Nurodyti baitai yra Opcode Menu Configuration registre
Registruotis.

15 bitas(Rezervuota) – nenaudota.

16-21 bitai(Data Byte Count) – nustato duomenų baitų skaičių
duomenų skaitymo ar rašymo operacijos. Kiekis yra lygus šio lauko vertei plius 1.
Pavyzdžiui: 000000b=1 baitas, 111111b=64 baitai.

22 bitas(Duomenų ciklas) – nurodo duomenų baitų buvimą komandoje. "0"
reiškia, kad nėra duomenų (pavyzdžiui, trynimo komandoje), „1“ reiškia, kad tai
yra duomenų (pavyzdžiui, nuskaitymo būsenos komandoje duomenys yra
statuso registro turinys).

23 bitas(SPI SMI# Enable) – leidimas generuoti pertraukimo užklausą
Sistemos valdymo pertraukimas užbaigus operaciją, 0 = išjungta,
1 = leidžiama.

24-26 bitai(SPI Cycle Frequency) – nustato bitų dažnį
sinchronizavimas atliekant operaciją SPI. Naudojamos dvi vertės
(likusieji rezervuoti): 000b=20MHz, 001b=33MHz.

27-31 bitai(Rezervuota) – nenaudota.

Atminkite, kad iš anksto užpildomi aštuoni Opcode Menu baitai
Konfigūracijos registras ir du baitai prefikso opcode konfigūracijos registro
Registracija vykdo BIOS, kai platforma paleidžiama. Todėl formuojant bitmaps
laukus pasirenkant komandos kodą ir priešdėlio kodą, programa turi nuskaityti
nurodytus registrus ir raskite po kokiu numeriu reikiamo kodai
operacijos. Užpildymo parinktys gali skirtis net ir pagrindinėse plokštėse
vienas modelis naudojant skirtingus BIOS versija. Kai kurie perrašo komunalines paslaugas
„Flash“ modifikuoja nurodytų registrų turinį.

Išsamus visų SPI valdiklio registrų ir komandų aprašymas pateiktas.
SPI Flash lusto komandų aprašymas pateiktas. Nurodyta informacija
aukščiau, taip pat iliustruotas prie gaminio pridėtais surinkimo pavyzdžiais.

Flash ROM prieigos mechanizmai ir rašymo apsauga

Apskritai, norint inicijuoti lusto trynimo arba perrašymo operacijas
BIOS, programa turi atlikti keturis veiksmus:

  1. Sukonfigūruokite mikroschemų rinkinio „pietų tilto“ registrus, kurie kontroliuoja vietą
    BIOS lustai adresų erdvėje, kad suteiktų prieigą prie visos
    mikroschemos tūris.
  2. Išjunkite apsaugos režimą BIOS įrašai, įgyvendinamas naudojant „pietinį tiltą“
    mikroschemų rinkinys.
  3. Išjungti lusto įdiegtą BIOS rašymo apsaugos režimą
    Flash ROM.
  4. Nusiųskite trynimo arba rašymo komandą į „Flash ROM“ lustą.

Panagrinėkime išsamiau šias procedūras, apsaugos mechanizmus, kurie joms užkerta kelią
neteisėtas vykdymas ir, žinoma, šių mechanizmų pažeidžiamumas.

Kaip minėta aukščiau, atliekant rašymo ir trynimo operacijas, programinė įranga
prieiga prie SPI Flash lusto vykdoma per valdiklio registrus
SPI, nenaudojant adresų diapazono, kuriame yra lusto vaizdas
BIOS. Todėl perkonfigūruojamas mikroschemų rinkinys, kad būtų pasiektas diapazonas FFF00000h-FFFFFFFFh
V šiame pavyzdyje neprivaloma.

„Intel ICH8“ „pietų tilto“ įdiegta rašymo apsauga yra pagrįsta tuo pačiu
schema, kaip ir ankstesnių kartų platformose, skiriasi tik adresai
registrai Todėl šios apsaugos pašalinimo procedūra yra panaši į procedūrą
aptartas ankstesniuose leidiniuose. BIOS kontroliuoja prieigą prie lusto
8 bitų BIOS_CNTL registras (jo koordinatės konfigūracijos erdvėje
Magistralė = 0, Įrenginys = 1Fh, Funkcija = 0, Registras = DCh). 0 šio registro bitas (BIOSWE bitas,
BIOS Write Enable) valdo leidimą rašyti į BIOS lustą, 0 = išjungta,
1 = leidžiama. Pateikiamas 1 to paties registro bitas (BLE bitas, BIOS užrakto įjungimas).
neteisėto apsaugos išjungimo perėmimas. Jei BLE bitas = 1, tada bandant
nustatykite BIOSWE=1 bitą, kad sukurtumėte SMI (sistemos valdymo) pertraukimą
Pertraukimas) su specialios procedūros, įtrauktos į BIOS, iškvietimu. Be to, jei
BIOS nustatys BLE=1 bitą paleidžiant, mikroschemų rinkinio negalima nustatyti iš naujo programiškai
leidžia, perėmimo režimas bus išjungtas tik atstačius aparatinę įrangą (pagal
RESET signalas). Išsamią informaciją rasite.

Praktika rodo, kad tokio „apsaugos nuo neapsaugos“ mechanizmo paprastai nėra
suaktyvino BIOS kūrėjai. Visose tirtose pagrindinėse plokštėse
autoriaus, BLE bitas = 0, todėl norint pašalinti apsaugą nuo rašymo pakanka nustatyti bitą
BIOSWE=1, ši operacija nebus perimta.

„Intel ICH8“ lustas taip pat palaiko BIOS lusto turinio apsaugą,
nurodant adresų diapazonus, kurie yra apsaugoti nuo skaitymo ir (ar) rašymo.
Teoriškai remiantis šis mechanizmas gali būti įgyvendinta veiksminga apsauga,
kadangi draudimas yra programinė įranga, kurią įjungia BIOS procedūros, kai platforma paleidžiama, ir
gali būti pašalintas tik iš naujo nustatant. Tačiau šis mechanizmas paprastai nėra
suaktyvino BIOS kūrėjai.

(Tęsinys)

Informacijos šaltiniai


developer.intel.com.

1) Intel Low Pin Count (LPC) sąsajos specifikacija. 1.1 peržiūra. dokumentas
Numeris 251289-001.
2) „Intel P965 Express“ mikroschemų rinkinio šeimos duomenų lapas – „Intel 82P965“ atminčiai
Valdiklio šakotuvas (MCH). Dokumento numeris: 313053-001.
3) Intel I/O Controller Hub 8 (ICH8) šeimos duomenų lapas – skirtas Intel 82801HB
ICH8 ir 82801HR ICH8R įvesties/išvesties valdiklių šakotuvai. Dokumento numeris: 313056-001.

Elektroninius dokumentus galima rasti svetainėje
www.superflash.com arba
ssti.com.

4) 1 Mbit SPI Serial Flash SST25VF010 duomenų lapas. Dokumento numeris:
S71233-01-000.
5) 8 Mbit SPI Serial Flash SST25VF080B duomenų lapas. Dokumento numeris:
S71296-01-000.

Elektroninius dokumentus galima rasti svetainėje
winbond.com.tw.

6) W25X10A, W25X20A, W25X40A, W25X80A 1M bitų, 2M bitų, 4M bitų ir 8M bitų
Serijinė „Flash“ atmintis su 4 KB sektoriais ir dviejų išvesties SPI duomenų lapu.

Elektroninius dokumentus galima rasti svetainėje
macronix.com.

7) MX25L802 8M bitų CMOS Serial Flash EEPROM duomenų lapas.

Elektroninius dokumentus galima rasti svetainėje
datakey.com.

8) SPI EEPROM sąsajos specifikacija. Dalies numeris 223-0017-004 Pataisa H.

Elektroninius dokumentus galima rasti svetainėje
vtitechnologies.com.

9) SPI sąsajos specifikacija. 15 techninė pastaba.

Elektroninius dokumentus galima rasti svetainėje
pcisig.com.

Pcisig.com esantys dokumentai prieinami tik PCI nariams
Specialiųjų interesų grupė. Pasinaudodamas paieškos sistemos, galima rasti
Šiuos dokumentus galima atsisiųsti nemokamai.
10) PCI BIOS specifikacija. 2.1 peržiūra.
11) PCI vietinės magistralės specifikacija. 3.0 versija.
12) PCI-PCI tilto architektūros specifikacija. 1.1 peržiūra.

Gana dažnai kompiuterio gedimo priežastis yra gedimas programinė įranga. Jei tokia programinė įranga kaip Operacinė sistema gali iš naujo įdiegti eilinis vartotojas, neturintis gilių IT srities žinių, be specialių žinių atnaujinti BIOS tiesiog neįmanoma.

Svarbu žinoti!Jei jūsų BIOS neįkeliamas, tai gali būti bet kas, net perdegęs DVD įrenginys. Todėl neturėtumėte mirksėti neišsiaiškinus gedimo priežasties.

Santrumpa BIOS reiškia pagrindinę įvesties išvesties sistemą, kuri pažodžiui verčiama kaip pagrindinė įvesties / išvesties sistema. Įjungus kompiuterį, pirmiausia paleidžiama ši sistema, kuri apklausia visus prijungtos įrangos prievadus, o jei prie kompiuterio prijungiami sugedę įrenginiai, tada BIOS reakcija gali būti labai skirtinga - nuo garso signalus kol jis užšąla arba paleidžiamas iš naujo. Todėl svarbu tiksliai išsiaiškinti, kodėl kompiuteris neįsikrauna arba užšąla įkeliant BIOS.

1 pav. – Štai kaip BIOS lustas atrodo pagrindinėje plokštėje

Jei sužinosite, kad priežastis, dėl kurios kompiuteris neveikia, slypi būtent šioje lustoje, pirmiausia turite patikrinti, kaip kompiuteris elgiasi iš naujo nustatant CMOS išsaugotus nustatymus. Norėdami tai padaryti, 30 sekundžių turite atjungti akumuliatorių nuo pagrindinės plokštės.

2 pav. – taip atrodo CMOS baterija.

Jei pirmiau minėtos manipuliacijos neduoda jokių rezultatų, laikas naudoti sunkiąją artileriją. Būtent, atlikite tikrąjį mirksėjimą. Svarbu! Visos toliau aprašytos manipuliacijos galimos tik tuo atveju, jei įmanoma įvesti pačią BIOS arba įkelti OS. Atvejai, kai reikia atnaujinti veikiančią BIOS, yra gana dažni: kūrėjai skuba jį išleisti į rinką Naujas produktas, dažnai praleidžiamos kodo klaidos, dėl kurių galima pastebėti BIOS sukeltus nesklandumus.
Kai mirksi, svarbu įsitikinti, kad kompiuteris nėra netyčia išjungtas, nuo to laiko ir nesikreipiant paslaugų centras nepakankamai. Jei turite nešiojamąjį kompiuterį, tada išskyrus įkroviklis Rekomenduojama prijungti akumuliatorių.

Tavo žiniai! Pastaraisiais metais pagrindinėse plokštėse galite rasti du BIOS lustus: vienas veikia, antrasis skirtas atkurti originalią programinę-aparatinę įrangą po nesėkmingo atnaujinimo.

Lengviausias būdas atnaujinti programinę-aparatinę įrangą yra tiesiogiai iš operacinės sistemos. Pirmiausia eikite į gamintojo svetainę ir atsisiųskite daugiausiai Naujausia versija BIOS jūsų pagrindinei plokštei. Norėdami atnaujinti programinę-aparatinę įrangą iš sistemos Windows, yra specialios programos, kurios sumažina visą procesą iki tiesiog spustelėjus mygtukus „Kitas“. Šios trys BIOS kūrėjų programos yra universalios daugeliui pagrindinių plokščių: AMI Firmware Update Utility, Award WinFlash Utility ir Phoenix WinPhlash Utility.
BIOS atnaujinimas Linux sistemoje reikalauja šiek tiek daugiau pastangų, tačiau tai taip pat nėra itin sudėtinga operacija. Žemiau pateikiamas BIOS atnaujinimo pavyzdys debianu pagrįstuose platinimuose, kuriuose yra Ubuntu, Mint ir kt. Pastaba! Visi veiksmai turi būti atliekami kaip root.
Taigi mes jau atsisiuntėme programinę-aparatinę įrangą, dabar turėtume įdiegti „flashrom“ programą (http://openbios.info/FlashRom).

#apt-get install flashrom

Prieš pradėdami naujinimą, atlikime atsarginė kopija esama programinė įranga. Norėdami tai padaryti, naudosime šią komandą:

#flashrom -r BIOS_bak.bin

Dabar galite ramiai pradėti siūti, norėdami tai padaryti, įveskite komandą:

#flashrom -Vvw BIOS_new.bin

Jei jūsų mikroschemų rinkinio programinė įranga buvo atsisiųsta ir programa sėkmingai baigta, galite saugiai paleisti kompiuterį iš naujo.

Jei neįmanoma įkelti operacinės sistemos, turėtumėte naudoti programinę-aparatinę įrangą iš tiesioginio kompaktinio disko (arba naudoti DOS kaip parinktį). Tam mums reikia išorinis įrenginys(flash drive, CD, išorinis sunkus diskas, atminties kortelė ir kt.), kuriame įrašyta atnaujinimo programa (iš DOS dažniausiai naudojami Award, Uniflash arba AMIFlash), ir pati tiesioginio CD sistema.
Rekomenduojama atnaujinti tik tada, kai tai tikrai būtina. Įjungus įprastai veikiančią, bet pasenusią BIOS, ji gali tapti netinkama naudoti. Jei taip atsitiks, nenusiminkite, vis tiek yra galimybė išgelbėti pacientą namuose. Norėdami tai padaryti, turite gauti tą pačią mikroschemą su žinoma veikiančia programine įranga. Kompiuterį apkrauname veikiančia mikroschema, surišame siūlais. Kai operacinė sistema yra visiškai įkelta, atsargiai išimkite veikiantį įrenginį, įdėkite „negyvą“ ir bandykite dar kartą jį atnaujinti.

„Flashrom“ neveikia mano lentoje, ką daryti?

  • Pirmiausia patikrinkite, ar jūsų mikroschemų rinkinys, ROM lustas ir pagrindinė plokštė palaikomi (žr. Palaikoma aparatinė įranga arba naudokite flashromas -L).
  • Jei jūsų plokštėje yra BIOS apsaugos nuo blykstės trumpiklis (žr. vadovą), išjunkite jį.
  • Jei jūsų BIOS meniu yra BIOS apsaugos nuo blykstės parinktis, išjunkite ją.
  • Jei naudojate „flashrom“ sistemoje „Linux“ ir matote pranešimus apie /dev/mem, žr. kitą klausimą.
  • Jei paleidžiate flashrom OpenBSD, gali reikėti gauti neapdorotos prieigos leidimą nustačius saugus lygis = -1 in /etc/rc.securelevel ir perkrovimas arba perkrovimas į vieno vartotojo režimą.
  • Šiame puslapyje rasite instrukcijų, kaip tinkamai patikrinti „flashrom“ palaikymą (tai gali būti rizikinga, įsitikinkite, kad turite veikiančią atsarginę „Flash“ lustą).

Ką aš galiu padaryti /dev/mem klaidų?

  • Jei „flashrom“ praneša „/dev/mem mmap nepavyko: Operacija neleidžiama":
    • Rašymo metu dažniausiai naudojama Linux branduolio parinktis CONFIG_IO_STRICT_DEVMEM, kuri neleidžia net root naudotojui pasiekti aparatinės įrangos iš vartotojo erdvės. Iš naujo paleidę bandykite dar kartą naudodami iomem = atsipalaidavęs savo branduolio komandinėje eilutėje.
    • Kai kuriose sistemose su neteisingai rezervuota atmintimi (pvz., E820 žemėlapis) gali kilti ta pati problema net naudojant CONFIG_STRICT_DEVMEM. Tuo atveju iomem = atsipalaidavęs branduolio komandinėje eilutėje taip pat gali padėti.
  • Jei jis jums sako „/dev/mem mmap nepavyko: Išteklius laikinai nepasiekiamas":
    • Tai gali būti problema dėl PAT (pvz., jei atminties „flashrom“ bando susieti atvaizdą, ji jau susieta su nesuderinamu režimu). Iš naujo paleidę bandykite dar kartą naudodami nopat branduolio komandinėje eilutėje.
  • Jei matote šį pranešimą „Negalima prijungti atminties naudojant /dev/mem: netinkamas argumentas“:
    • Jūsų flashromas labai senas, geriau jį atnaujinti. Jei problema išlieka, išbandykite aukščiau minėtas branduolio parinktis.
  • Paprastai, jei jūsų „flashrom“ versija yra labai sena, atnaujinimas gali padėti. „Flashrom“ dabar kelia ne tokius griežtus reikalavimus ir veikia daugiau sistemų, nekeičiant branduolio.

Aš naudoju flashrom su linux_spi ir neranda lusto, dar kartą patikrinau visas jungtis, ką dar galiu pabandyti?

  • Jei dar nenustatėte: The linux_spi vairuotojas turi a spipas parametras, kuris visada turėtų būti nustatytas į protingą greitį (100 kHz...10 000 kHz, pirmiausia pabandykite žemesnius dažnius). Taip pat žr. flashrom(8) žinyno puslapį.
  • Apskritai,

Susidūriau su šia problema.
viršininkas atidavė man nešiojamąjį kompiuterį, kurį atsinešė iš serviso.
smėlis, uždėkite, išimkite.
Išdėjau - nenori, nes diegimo programa neranda kietojo disko, kuris yra sata.
tarnyboje jie įdiegė seną BIOS, be usb palaikymas o tai labai apsunkina darbą ir galimybę rankiniu būdu nustatyti standžiojo disko jungties tipą.
Negalite atnaujinti BIOS per diską, nes dėl kokių nors priežasčių jis nemato disko DOS.
bet linija buvo sumontuota su trenksmu ir viską matė (nors usb vis tiek buvo ignoruojamas)
nešiojamas kompiuteris Acer Aspire 5110
Kilo mintis įdiegti liniją ir per ją paleisti bios.
Naršiau internete ir aptikau straipsnį.
Manau bus naudinga.

Praktika

Norėdami suaktyvinti BIOS sistemoje „Linux“, jums reikia tik dviejų dalykų – pačios BIOS programinės įrangos ir programos, kuri suaktyvins tą pačią BIOS. Programą galima atsisiųsti iš šaltinio iš čia: http://openbios.info/FlashRom arba įdiegti Debian pagrindu sukurtuose (pvz., Ubuntu) platinimuose naudojant APT:

#apt-get install flashrom

Prieš įrašant nauja programinė įranga BIOS patartina išsaugoti senąją versiją, tai yra, nukopijuoti BIOS jau įdiegtą programinę-aparatinę įrangą, kad vėliau galėtumėte lengvai viską atkurti:

#flashrom -r MyBIOS.bin

Kur MyBIOS.bin yra failo, kuriame jis bus išsaugotas, pavadinimas sena versija programinė įranga. Išsaugoję atsisiųstą programinę-aparatinę įrangą galite įrašyti į BIOS savo rizika:

#sudo flashrom -w NewBIOS.bin

Kur NewBIOS.bin yra atsisiųstos programinės įrangos pavadinimas. Taip pat galite pridėti jungiklį -v, kad programa patikrintų įrašytą programinę-aparatinę įrangą, taip pat galite pridėti jungiklį -V, kad darbo išvestis būtų informatyvesnė:

#sudo flashrom -Vvw NewBIOS.bin

Likusius klavišus galima rasti naudojant --help

$flashrom - pagalba

Naudodamiesi pavyzdžiu išbandėme GIGABYTE GA-965P-DQ6 rev2.0 pagrindinę plokštę su Ubuntu 8.04 GNU/Linux

Dalintis