Перепрошивка BIOS. Прошиваємо BIOS з лінукса Інтерфейс SPI: історична довідка

зіткнувся з такою проблемою.
шеф дав ноут, який приніс із сервіски.
грит, постав вийми.
ставлю вийми - не хоче бо установник не знаходить хард, який є sata.
у сервісі біос поставили старий, без підтримки usb, що сильно заруднює роботу та можливості визначення в ручну типу з'єднання харда.
через диск біос не оновити, бо в досі він не бачить привід чомусь.
але ось лин поставився на ура і все побачив (хоча usb все-таки проігнорував)
ноут Acer Aspire 5110
прийшла думка поставити лин і через нього прошити bios.
порився в інтернеті і натрапив на статтю.
думаю нагоді.

Практика

Для прошивання БІОСу в лінуксі потрібно тільки дві речі - сама прошивка БІОСу і програма, яка цей БІОС прошиватиме. Програму можна завантажити у вихідних звідси: http://openbios.info/FlashRom або ж у Debian-based (наприклад в Ubuntu) дистрибутивах поставити за допомогою APT:

#apt-get install flashrom

Перед записом нової прошивки в БІОС бажано зберегти стару версію, тобто скопіювати прошивку, яка вже прошита в БІОС, щоб потім можна було легко відновити все назад:

#flashrom -r MyBIOS.bin

Де MyBIOS.bin – це ім'я файлу, в який збережеться стара версіяпрошивки. Після збереження, можна вже на свій страх і ризик записувати завантажену прошивку в Біос:

#sudo flashrom -w NewBIOS.bin

Де NewBIOS.bin – це ім'я завантаженої прошивки. Також можна додати ключ -v щоб програма перевірила записану прошивку і ще можна додати ключ -V щоб висновок роботи був більш інформативним:

#sudo flashrom -Vvw NewBIOS.bin

З іншими ключами можна ознайомитися за допомогою --help

$flashrom --help

На прикладі було випробувано материнську плату GIGABYTE GA-965P-DQ6 rev2.0 з Ubuntu 8.04 GNU/Linux на борту

flashrom doesn"t work on my board, what can I do?

  • Перший, будь-який знімок, якщо ваш chipset, ROM чип, і mainboard є supported (see Supported hardware , or use flashrom -L).
  • Якщо ваш комп'ютер має jumper для BIOS flash protection (check the manual), disable it.
  • Ви повинні мати свій BIOS menu, що має BIOS flash protection option, disable it.
  • Якщо ви збираєтеся flashrom на Linux і дати повідомлення про /dev/mem, перейдіть на next question.
  • Якщо ви користуєтеся flashrom на OpenBSD, ви повинні потребувати необхідних доступу до використання securelevel=-1 in /etc/rc.securelevel and rebooting, or rebooting в single user mode.
  • Натисніть цю сторінку для вказівок на те, як дослідити flashrom support properly (це може бути ризиковано, тому що ви маєте працювати backup flash chip).

What can I do about /dev/mem errors?

  • Якщо flashrom tells you "/dev/mem mmap failed: Operation not permitted":
    • Більшість повідомлень на час написання є Linux kernel option, CONFIG_IO_STRICT_DEVMEM, що рішення використовуються тільки для root user from accessing hardware from user-space. Try again after rebooting with iomem=relaxed у вашому кернілі команда line.
    • Деякі системи з невідповідними меморіальними ресурсами (e.g. E820 map) можуть мати той самий питання, що з CONFIG_STRICT_DEVMEM. У цьому випадку iomem=relaxed in the kernel command line може help too.
  • If it tells you "/dev/mem mmap failed: Resource temporarily unavailable":
    • Це може бути issue with PAT (e.g. if the memory flashrom tries to map is already mapped in incompatible mode). Try again after rebooting with nopat in the kernel command line.
  • Якщо ви бачите це повідомлення "Can"t mmap memory using /dev/mem: Invalid argument":
    • Ваша flashrom is very old, better update it. Якщо вони існують люди, намагаються керувати options mentioned above.
  • Взагалі, якщо ваша версія flashrom є дуже old, update might help. Flashrom has less strict requirements now and works on more systems without having to change the kernel.

I'm using flashrom with linux_spi and it doesn"t find the chip. I"ve double checked all connections, what else can I try?

  • In case you haven"t set it already: The linux_spi driver has a spispeed параметр, який повинен бути налаштований на резонансний рівень (100kHz..10,000kHz, try lower frequencies first). Also see the flashrom(8) manpage.
  • Generally,

Ця стаття продовжує тему, пов'язану з загрозою спотворення BIOS материнської
плати шкідливими програмами. У раніше опублікованому матеріалі
і був
наведено приклад програми, що виконує запис у мікросхему BIOS, розглянуті
механізми захисту, що використовуються виробниками материнських платі причини,
яким ці механізми часто виявляються неефективними. Нагадаємо, що ця
проблема виникла більше 10 років тому, коли як носій BIOS почали
використовувати мікросхеми Flash ROM, що допускають перезапис вмісту без
фізичного втручання у комп'ютер. Таким чином, можливість оперативної
перезапису (оновлення) BIOS, що призвело до побічного ефекту – ризику його випадкового
чи навмисного спотворення.

Здавалося б, сьогодні на цю тему вже сказано. Але час іде, з'являються
нові типи мікросхем Flash ROM та інтерфейсів для їх підключення. Це
супроводжується появою нових методів захисту BIOS від несанкціонованого
спотворення, і, звичайно, нових вразливостей. У раніше опублікованому матеріалі
посилання на який наведено на початку статті, розглянута тема розкрита на
приклад платформи, що використовує мікросхему SST 49LF004A, підключену до
інтерфейсу LPC (Low Pin Count) Сьогодні йому на зміну прийшов інтерфейс SPI
(Serial Peripheral Interface)
. Нагадаємо, що для перезапису вмісту
мікросхеми BIOS, програма повинна взаємодіяти з двома блоками регістрів:
регістри інтерфейсу Flash ROM, розташовані у складі "південного мосту" чіпсету та
регістри, що входять до складу самої мікросхеми Flash ROM. При переході від
інтерфейсу LPC до SPI, архітектура двох зазначених блоків суттєво змінилася.
Тому є сенс розглянути взаємодію програм з мікросхемою BIOS,
механізми захисту та їх вразливості стосовно сучасних платформ.
Матеріал забезпечений прикладами на асемблері. Для експериментів використовувалась
материнська плата Gigabyte GA-965P-S3, побудована на чіпсеті Intel 965,
описаному у . Як носій BIOS на даній платі використовується
мікросхема SST 25VF080B, описана в . Ця мікросхема має об'єм 8 Мегабіт.
(1 мегабайт) і підключається до інтерфейсу SPI. Деякі мікросхеми інших
виробників, які використовують той самий інтерфейс, описані в . Опис
інтерфейсу SPI наведено у . При взаємодії з контролером SPI, нам
потрібно використовувати механізми доступу до конфігураційного простору,
описані у документах.

Інтерфейс SPI: історична довідка

Як відомо, швидкодія мікросхеми постійного пристрою
(Flash ROM), що використовується як носій BIOS, практично не впливає на
загальну продуктивність комп'ютера. Це пов'язано з тим, що при старті
материнської плати, BIOS листується (або розпаковується) в оперативну
пам'ять Shadow RAM та при зверненні до BIOS у сеансі ОС, програми працюють з
оперативною пам'яттю, а чи не з мікросхемою Flash ROM. Тому, на відміну від
процесора, пам'яті, графічної підсистеми, еволюція яких супроводжується
зростанням продуктивності, мікросхеми Flash ROM та їх інтерфейси розвиваються в
іншому напрямку. Тут головними критеріями є зменшення вартості,
споживаної потужності та займаної площі на материнській платі. Головний метод
досягнення цих цілей – зменшення кількості провідників між мікросхемою BIOS
і контролером, що зазвичай входять до складу "південного мосту" чіпсету. З точки зору
методу підключення мікросхеми BIOS, можна виділити три покоління материнських
плат:

1) На платах, що використовують шину ISA, встановлювалися постійні мікросхеми
запам'ятовуючих пристроїв із роздільними лініями адреси, даних та управління. При
це для кожного розряду адреси та даних, а також для кожного сигналу управління
(Читання, запис) був потрібен свій провід, точніше друкований провідник на платі.

2) З появою чіпсетів Intel 810, 815, на основі "хабової" архітектури,
шина ISA пішла у минуле. Ряд пристроїв материнської плати, що раніше підключаються до
ISA (контролер гнучких дисків, порти COM та LPT, мікросхема BIOS), "переїхали" на
інтерфейс Low Pin Count або LPC, назва якого перекладається як "мала
кількість сигналів". Сигнали адреси, даних та управління в цьому інтерфейсі
передаються по п'яти лініях (крім сигналів скидання, тактування та ліній
харчування), у режимі мультиплексування у часі. Мікросхеми BIOS, які використовуються
у таких платформах іноді називають Firmware Hub або FWH. Приклад програми
стирання та запису мікросхеми BIOS, наведений у раніше опублікованій статті
"Проникнення в BIOS ROM" N1 та N2" призначений для таких платформ.

3) Починаючи з чіпсета Intel 945, до складу "південного мосту" включено контролер
спеціалізованої послідовної шини Serial Peripheral Interface або SPI,
використовує передачу даних читання та запису, а також керуючої та статусної
інформації з однобітного послідовного каналу. Це дозволило використати
8-контактний корпус мікросхеми BIOS. Ця стаття присвячена розгляду
саме таких платформ.

Зазначимо, що інтерфейс LPC також підтримується сучасними чіпсетами та
розробник материнської плати може використовувати для підключення мікросхеми BIOS
як LPC, і SPI. Сфера застосування інтерфейсу SPI не обмежується
материнських плат комп'ютерів. Уважний читач міг звернути увагу на
те, що через перехід до послідовного формату даних, кожен з описаних
інтерфейсів використовує більше тактів для виконання операцій читання та запису,
ніж його попередник, що загрожує зниженням швидкодії. Але цього не
відбувається, оскільки зазначена обставина компенсується зростанням частоти і
оптимізація форматів даних. Шина ISA працює на частотах 5-8MHz, LPC
33MHz, SPI на 33-50MHz.

Архітектура мікросхеми SPI Flash ROM

Мікросхеми SPI Flash, зокрема SST25VF080B, використовують три сигнали для
прийому та передачі даних. SCK (Serial Clock) – вхід для тактування
переданих чи прийнятих даних. SI (Serial Input) – вхід для передачі
даних від контролера до мікросхеми, по цій лінії бітно передаються адресу,
дані для запису та коди команд управління мікросхемою. SO (Serial Output) -
вихід для передачі даних від мікросхеми до контролера, по цій лінії побитно
передаються дані, що читаються, а також інформація про стан мікросхеми.
Контролер управляє мікросхемою за допомогою команд, що ініціюють операції
читання та запису даних, стирання, читання ідентифікаторів мікросхеми, читання та
записи регістру статусу тощо.

Призначення кожного з восьми контактів мікросхеми, опис усіх команд, а
також інші подробиці містяться в .

Архітектура контролера SPI

Контролер SPI, що входить до складу "південного мосту" Intel ICH8, містить більше
20 регістрів управління та стану. Регістри адресуються у просторі пам'яті з
використанням технології memory-mapped I/O, розглянутої раніше
опублікованій статті "Пристрої системної підтримки. Дослідницька робота
N ". Опис усіх регістрів та команд контролера SPI виходить за рамки
даної статті, розглянемо основні відмінності програмної моделіінтерфейсу SPI від
його попередника - інтерфейсу LPC, акцентуючи увагу на регістрах,
використовуваних під час виконання основних операцій – читання ідентифікаторів, запису та
стиранні Flash ROM.

Нагадаємо, що фізичний доступ до мікросхеми BIOS (не плутати з областю
Shadow RAM) здійснюється за допомогою вікна, що примикає до верхньої межі
діапазону 0-4GB. Наприклад, Flash ROM розміром 1 Мбайт буде доступний у діапазоні
FFF00000h-FFFFFFFFh. У платформах, що використовують інтерфейси ISA і LPC, через той
ж діапазон, при виконанні операцій стирання та запису виконується передача
команд і даних, що записуються для мікросхеми Flash ROM, а також читання її
статусу. Платформа, що використовує інтерфейс SPI, що розглядається в цій статті,
також підтримує читання вмісту мікросхеми BIOS через вказаний діапазон,
але для передачі керуючої та статусної інформації під час запису та стирання
Flash ROM використовує інший метод доступу. Інформація для виконання циклу на
шині SPI (адреса та дані) записується в спеціальні регістри контролера SPI
(Flash Address і Flash Data відповідно), потім у регістр Software Sequencing
Flash Control передається команда виконання циклу звернення до Flash ROM
(читання чи записи). Після цього через регістр Software Sequencing Flash Status
можна визначити момент завершення операції та проконтролювати наявність помилок.
Дані, прочитані з Flash ROM, перебувають у регістрі Flash Data.

У платформах з інтерфейсами ISA та LPC, передача команд виконувалася шляхом
прямий запис байта коду команди в адресний діапазон Flash ROM. Інтерфейс SPI
використовує непрямий метод передачі команд за допомогою 8-байтного регістру
OpCode Menu. Кожен із байтів цього регістру зберігає код однієї з команд для
управління Flash ROM (запис, стирання, читання ідентифікатора тощо). Для
запуску необхідної операції, програма повинна передати номер байта (від 0 до 7),
який містить код цієї операції. Цей номер передається в 3-бітному полі COP
(Cycle Opcode Pointer), яке є частиною 32-бітного коду, що записується в
регістр Software Sequencing Flash Control для запуску команди на виконання.
Блок регістрів OpCode Menu зазвичай ініціалізує BIOS під час старту платформи.
Розташування байтів кодів операцій у 8-байтному блоці залежить від реалізації BIOS
і може бути довільним, тому програма має просканувати цей блок і
визначити, під яким номером розташована необхідна команда. Цей номер і
буде використано під час заповнення поля COP.

Розглянемо використання регістрів Software Sequencing Flash Status та
Software Sequencing Flash Control докладніше. Реєстр Software Sequencing Flash
Status має розрядність 8 біт і розташований по зміщенню 90h щодо
базової адреси контролера SPI (SPIBAR+90h). Реєстр Software Sequencing Flash
Control має розрядність 24 біт та розташований по зміщенню 91h. При
програмуванні контролера, до двох зазначених регістрів зручно звертатися до однієї
32-бітною операцією читання або запису на адресу 90h. При цьому біти 0-7
відповідають регістру Software Sequencing Flash Status, а біти 8-31 - регістру
Software Sequencing Flash Control. Саме такий метод доступу використовується в
асемблерних прикладах, що додаються до статті. Розглянемо призначення бітів у
відповідно до нумерації, описаної вище.

Біт 0(SPI Cycle In Progress) – використовується для визначення моменту
завершення операції на шині SPI "0" означає, що шина SPI вільна та програма
може запускати наступний цикл. "1" означає, що шина SPI зайнята, виконується
транзакція. Біт встановлюється та скидається апаратно, доступний тільки для
читання.

Біт 1(Reserved) – не використовується.

Біт 2(Cycle Done Status) - встановлюється в "1" апаратно, при
завершення транзакції на шині SPI Для скидання, програма повинна записати "1" у
цей біт.

Біт 3(Flash Cycle Error) – встановлюється в "1" апаратно, якщо при
виконання транзакції мали помилки: захист запису чи спроба запуску
наступної транзакції до завершення попередньої. Для скидання, програма повинна
записати "1" у цей біт.

Біт 4(Access Error Log) - встановлюється в "1" апаратно, якщо мали
місце спроби звернення до мікросхеми BIOS, що порушує права доступу до заданих
діапазонів адрес, запрограмованих у конфігураційних регістрах контролера
SPI.

Біти 5-7

Біт 8(Reserved) – не використовується. Як було показано вище, біти 8-31
32-бітного слова, що розглядається, відповідає бітам 0-23 регістру Software
Sequencing Flash Control.

Біт 9(SPI Cycle Go) – запуск транзакції SPI. Запис "1" у цей біт
запускає виконання транзакції, тип та зміст якої визначаються
станом бітів 10-31 цього ж регістру.

Біт 10(Atomic Cycle Sequence) – при передачі наказу виконання
транзакції, запис "1" у цей біт забороняє зовнішнім подіям втручатися у
процеси, що відбуваються на інтерфейсі SPI доти, доки не будуть виконані три
фази: передача префіксної команди, передача основної команди та завершення
виконання основної команди.

Зазначимо, що таким чином реалізується один із механізмів захисту від
випадкового спотворення вмісту мікросхеми BIOS. Так звані префіксні
команди (наприклад, Write Enable) повинні передувати командам, які змінюють
вміст мікросхеми (наприклад, Write, Erase). Отримавши код команди, що містить
"1" у цьому биті, всі три фази контролер виконує апаратно, без
втручання процесора до завершення виконання основної команди.

Біт 11(Sequence Prefix Opcode Pointer) – при використанні префіксних
команд (коли біт 10 встановлений в "1", див вище), цей біт вибирає один з двох
байтів, який буде передано як префіксну команду для мікросхеми SPI
Flash. При "0" вибирається молодший байт регістру Prefix Opcode Configuration
Register, при "1" – старший.

Біт 12-14(Cycle Opcode Pointer) – це бітове поле вибирає один із
восьми байтів, який буде переданий як основна команда для мікросхеми
SPI Flash. Зазначені байти знаходяться в регістрі Opcode Menu Configuration
Регістр.

Біт 15(Reserved) – не використовується.

Біти 16-21(Data Byte Count) – задає кількість байтів даних для
операцій читання чи запису даних. Кількість дорівнює значенню цього поля плюс 1.
Наприклад: 000000b = 1 байт, 111111b = 64 байти.

Біт 22(Data Cycle) – Вказує наявність байтів даних у команді. "0"
означає, що дані відсутні (наприклад, у команді стирання), "1" означає, що
дані присутні (наприклад, у команді читання статусу, даними є
вміст регістру статусу).

Біт 23(SPI SMI# Enable) – дозвіл формувати запит на переривання
System Management Interrupt після завершення транзакції, 0=заборонено,
1=дозволено.

Біти 24-26(SPI Cycle Frequency) – задає частоту бітової
синхронізації під час транзакції на SPI. Використовуються два значення
(Інші зарезервовані): 000b = 20MHz, 001b = 33MHz.

Біти 27-31(Reserved) – не використовуються.

Зазначимо, що попереднє заповнення восьми байтів регістру Opcode Menu
Configuration Register та двох байтів регістру Prefix Opcode Configuration
Register виконує BIOS під час старту платформи. Тому, при формуванні бітових
полів, що вибирають код команди та код префікса, програма має просканувати
вказані регістри та знайти, під яким номером у них знаходяться коди необхідних
операцій. Варіанти заповнення можуть бути різними, навіть серед материнських плат
однієї моделі, що використовують різні версії BIOS. Деякі утиліти перезапису
Flash змінюють вміст зазначених регістрів.

Детальний опис всіх регістрів та команд контролера SPI наводиться у .
Опис команд мікросхеми SPI Flash наводиться у . Інформація, викладена
вище, також проілюстрована асемблерним прикладами, що додаються до статті.

Механізми доступу до Flash ROM та захист запису

У загальному випадку для ініціювання операцій стирання або перезапису мікросхеми
BIOS, програма має виконати чотири дії:

  1. Налаштувати регістри "південного мосту" чіпсету, що керують розміщенням
    мікросхеми BIOS в адресному просторі для забезпечення доступу до повного
    обсягу мікросхеми.
  2. Вимкнути режим захисту запису BIOS, що реалізується засобами "південного мосту"
    чіпсету.
  3. Вимкнути режим захисту запису BIOS, реалізований засобами мікросхеми
    Flash ROM.
  4. Передати команду стирання або запису мікросхемі Flash ROM.

Розглянемо докладніше ці процедури, механізми захисту, що перешкоджають їх
несанкціонованого виконання і, звичайно, уразливості цих механізмів.

Як було сказано вище, при виконанні операцій запису та стирання, програмний
доступ до мікросхеми SPI Flash здійснюється за допомогою регістрів контролера
SPI без використання діапазону адрес, в якому доступний образ мікросхеми
BIOS. Тому переналаштування чіпсету для доступу до діапазону FFF00000h-FFFFFFFFh
у цьому прикладі не потрібно.

Захист запису, реалізований "південним мостом" Intel ICH8 побудований за такою ж
схемою, як і в платформах попередніх поколінь, відрізняються лише адреси
регістрів. Отже, процедура зняття цього захисту подібна до процедури
розглянутої у попередніх публікаціях. Доступом до мікросхеми BIOS керує
8-бітний регістр BIOS_CNTL (його координати в конфігураційному просторі
Bus=0, Device=1Fh, Function=0, Register=DCh). Біт 0 цього регістру (біт BIOSWE,
BIOS Write Enable) управляє роздільною здатністю запису в мікросхему BIOS, 0=заборонена,
1=дозволена. Біт 1 того ж регістра (біт BLE, BIOS Lock Enable) забезпечує
перехоплення несанкціонованого вимкнення захисту. Якщо біт BLE = 1, то при спробі
встановити біт BIOSWE=1 буде генеруватися переривання SMI (System Management)
Interrupt) із викликом спеціальної процедури, що входить до складу BIOS. Причому, якщо
BIOS при старті встановить біт BLE = 1, програмно обнулити його чипсет
дозволяє, режим перехоплення буде вимкнений тільки після апаратного скидання (за
сигналу RESET). Подробиці у .

Практика показує, що даний механізм захисту від зняття захисту зазвичай не
активується розробниками BIOS. У всіх материнських платах, досліджених
автором, біт BLE=0, тому для зняття захисту запису достатньо встановити біт
BIOSWE=1, ця операція не буде перехоплена.

Мікросхема Intel ICH8 також підтримує захист вмісту мікросхеми BIOS,
шляхом завдання адресних діапазонів, захищених від читання та (або) запису.
Теоретично, на базі даного механізму можна реалізувати ефективний захист,
оскільки заборона програмно включається процедурами BIOS при старті платформи, та
може бути знято лише при апаратному скиданні. Але і цей механізм зазвичай не
активується розробниками BIOS.

(Далі буде)

Джерела інформації


developer.intel.com.

1) Intel Low Pin Count (LPC) Interface Specification. Revision 1.1. Document
Номер 251289-001.
2) Intel P965 Express Chipset Family Datasheet – For the Intel 82P965 Memory
Controller Hub (MCH). Document Number: 313053-001.
3) Intel I/O Controller Hub 8 (ICH8) Family Datasheet – For the Intel 82801HB
ICH8 та 82801HR ICH8R I/O Controller Hubs. Document Number: 313056-001.

Електронні документи, доступні на сайті
www.superflash.com або
ssti.com.

4) 1 Mbit SPI Serial Flash SST25VF010 Data Sheet. Document Number:
S71233-01-000.
5) 8 Мбіт SPI Serial Flash SST25VF080B Data Sheet. Document Number:
S71296-01-000.

Електронні документи, доступні на сайті
winbond.com.tw.

6) W25X10A, W25X20A, W25X40A, W25X80A 1M-bit, 2M-bit, 4M-bit та 8M-bit
Serial Flash Memory with 4KB sectors and dual output SPI Data Sheet.

Електронні документи, доступні на сайті
macronix.com.

7) MX25L802 8M-bit CMOS Serial Flash EEPROM Data Sheet.

Електронні документи, доступні на сайті
datakey.com.

8) SPI EEPROM Interface Specification. Part Number 223-0017-004 Revision H.

Електронні документи, доступні на сайті
vtitechnologies.com.

9) SPI Interface Specification. Technical Note 15.

Електронні документи, доступні на сайті
pcisig.com.

Документи на сайті pcisig.com доступні тільки для членів PCI
Special Interest Group. Скориставшись пошуковими системами, можна знайти
ці документи для вільного завантаження.
10) PCI BIOS Specification. Revision 2.1.
11) PCI Local Bus Specification. Revision 3.0.
12) PCI-to-PCI Bridge Architecture Specification. Revision 1.1.

Досить часто причиною поломки ПК є збій у програмне забезпечення. Якщо таке ПЗ як операційна системаможе перевстановити звичайний користувач, що не має глибоких знань в області IT, то перепрошувати BIOS без спеціальних знань просто неможливо.

Важливо знати!Якщо у вас не завантажується біос, то причиною цього може бути все, що завгодно, аж до згорілого DVD-приводу. Тому не слід братися за перепрошивку, не з'ясувавши причини поломки.

Акронім BIOS розшифровується як Basic Input Output System, що дослівно перекладається як базова система вводу-виводу. Коли ви включаєте ПК перш за все запускається саме ця система, яка опитує всі порти на предмет підключеного обладнання, і якщо до комп'ютера підключені несправні пристрої, то реакція біосу може бути різною - від подачі звукових сигналів, до зависання або перезавантаження. Тому важливо з'ясувати, чому саме ваш комп'ютер не завантажується або зависає під час завантаження біос.

Малюнок 1. - Так виглядає мікросхема БІОС на материнській платі

Якщо ж ви з'ясували, що причина непрацездатності ПК криється саме в цій мікросхемі, потрібно насамперед перевірити як поведеться комп'ютер при скиданні налаштувань, що зберігаються в CMOS. Для цього потрібно секунд на 30 від'єднати батарейку від материнської плати.

Малюнок 2. - так виглядає батарейка живлення CMOS.

Якщо вищезгадані маніпуляції не дали жодного результату, то настав час пустити в хід важку артилерію. А саме зайнятися безпосередньо перепрошивкою. Важливо! Всі нижчеописані маніпуляції можливі лише в тому випадку, якщо є можливість зайти в сам БІОС або завантажити ОС. Випадки коли необхідно оновити працездатний БІОС досить часті: розробники поспішаючи випустити на ринок новий продукт, часто пропускають помилки в коді, внаслідок чого можна спостерігати глюки, викликані BIOSом.
При перепрошивці важливо подбати про те, щоб комп'ютер випадково не був вимкнений, тому що тоді без походу в сервісний центрне обійтись. Якщо вас ноутбук, то крім зарядного пристроюрекомендується підключити батарею.

До відома! Останніми роками на материнських платах можна зустріти дві мікросхеми биос: одна робоча, друга - відновлення вихідної прошивки після невдалого оновлення.

Найпростіший спосіб оновлення прошивки – безпосередньо з операційної системи. Насамперед йдемо на сайт виробника і завантажуємо саму останню версіюБіос, для вашої материнської плати. Для оновлення прошивки з під Windows існують спеціальні програми, які зводять весь процес до простого клацання за кнопками "далі". Наступні три утиліти від розробників БІОС є універсальними для більшості материнських плат: AMI Firmware Update Utility, Award WinFlash Utility та Phoenix WinPhlash Utility.
Оновлення біосу в Linux вимагає трохи більше зусиль, але також не є суперскладною операцією. Нижче наведено приклад оновлення БІОС у debian-based дистрибутивах, у яких відносяться Ubuntu, Mint і т.д. Примітка! Усі дії потрібно виконувати від імені root.
І так прошивка у нас вже завантажена, тепер слід встановити програму flashrom (http://openbios.info/FlashRom).

#apt-get install flashrom

Перед початком оновлення, зробимо резервну копіюіснуючої прошивки. Для цього скористаємося наступною командою:

#flashrom -r BIOS_bak.bin

Тепер із спокійною душею можна почати шити, для цього вводимо команду:

#flashrom -Vvw BIOS_new.bin

Якщо ви завантажили прошивку для вашого чіпсету, і програма завершилася успішно, то можна сміливо перезавантажувати комп'ютер.

Якщо завантажити операційну систему немає можливості, слід скористатися прошивкою з-під live-CD (як варіант використовувати DOS). Для цього нам знадобиться зовнішній пристрій (флешка, CD, зовнішній жорсткий диск, карта пам'яті і т.д.) на яке записана програма для оновлення (з-під DOS найчастіше використовують Award, Uniflash або AMIFlash), ну і сама live-CD система.
Оновлення рекомендується проводити тільки тоді, коли воно дійсно необхідне. Нормально працюючий, але застарілий біос перепрошивка може призвести до непридатності. Якщо таке трапилося, то не варто впадати у відчай, є ще шанс врятувати пацієнта в домашніх умовах. Для цього потрібно дістати таку ж мікросхему з явно працюючої прошивкою. Завантажуємо комп'ютер із робочою мікросхемою, обв'язавши її нитками. Коли операційну систему повністю завантажено, акуратно виймаємо робочу мікрокруху, вставляємо " мертву " і пробуємо перепрошити ще раз.