Як у біосі gigabyte розблокувати диск. Або корисні поради для досвідчених користувачів. Що таке BIOS

  • UEFI
    • Tutorial

    У цій статті я постараюся розповісти про найбільш популярні та корисні модифікації UEFI BIOS, умови їх застосування та способи пошуку. Крім цього, на описаній в утиліті UEFITool світло ще не зійшлося клином, тому будуть згадані й інші програми, що використовуються для модифікації UEFI BIOS різних виробників.
    Якщо тема вам цікава – ласкаво просимо під кат.

    У PowerManagement код виглядає інакше, найчастіше ось так:

    80 FB 01 cmp bl,1; Якщо BL == 1 75 08 jne 0000000180002700; Перестрибнути дві наступні команди 0F BA E8 0F bts eax, 0Fh; Встановити біт 15 (LOCK) 89 44 24 30 mov dword ptr, eax; Зберегти результат у змінну на стеку 48 8B 54 24 30 mov rdx,qword ptr; Завантажити значення з цієї змінної в RDX B9 E2 00 00 00 mov ecx, 0E2h; А номер MSR у ECX E8 79 0C 00 00 call 0000000180003388; І викликати функцію з wrmsr всередині
    Можна замінити JNE на JMP, BTS на BTR або просто "занопати" весь код установки локу. Найпростіше зробити перше, тобто. змінити 75 08 на EB 08.

    Якщо такого коду у вашому UEFI BIOS не знайшлося, шукайте в драйверах, що належать до CPU Power Management, значення 0xE2, і перевіряйте весь код на предмет установки 15-го біта. В останніх версіях BIOSів для деяких сучасних десктопних плат AMI перестали лочити цей регістр, тому такого коду в них вже не знайти – вважайте, що виробник зробив цей мод за вас.

    AES NI unlock

    Що: обхід установки біта LOCK (0x02) в регістр MSR 0x13C
    Навіщо: включення апаратного прискорення AES на системах з експортними обмеженнями
    Де шукати: у UEFI-драйверах, що відносяться до CPU PM, найчастіше у PowerManagement
    Спосіб модифікації: мало чим відрізняється від PM patch"а (і вже ), тому зупинятися докладно на ньому не буду.

    Whitelist removal

    Що: обхід білого списку сумісного обладнання, який використовую у своїх UEFI BIOS деякі виробники ноутбуків.
    Навіщо: ідея виробника зрозуміла - можна продати власникам несумісного обладнання ще й ребрендоване сумісне втридорога. Якщо ви самі хочете вирішувати, що обладнання сумісне з вашим ноутбуком - ця модифікація для вас.
    Де шукати: у UEFI-драйверах, що відносяться до PCIe-пристроїв. У HP це драйвер зазвичай називається BiosLockPcie, у Lenovo - LenovoWmaPolicyDxe.efi, але може називатися і інакше.
    Спосіб модифікації: т.к. виробники ноутбуків намагаються змінювати код перевірки Whitelist частіше, то описати якийсь незмінний метод досить складно.
    Загальна стратегія пошуку така:
    1. Вставити несумісну картку в ноутбук, дочекатися повідомлення про неможливість завантаження та запам'ятати його.
    2. Знайти це повідомлення в одному з файлів FFS.
    3. Знайти код, який посилається на це повідомлення.
    4. Дослідити цей код та спробувати змінити його так, щоб перевірка завжди закінчувалася успішно. Зробити це можна двома способами: або пропатчити перехід, або додати Vendor ID і Device ID в білий список.
    Подробиці модифікації на прикладі HP добре описані широко відомим у колах моддерів товаришем Donovan6000, А я опишу варіант модифікації на прикладі Lenovo X121E.
    Перевірка здійснюється драйвером LenovoWmaPolicyDxe.efi, потрапити потрібно ось сюди:
    44 38 0D F0 0F 00 00 cmp byte ptr ,r9b 75 18 jne 0000000000000C1A E8 35 FD FF FF call 000000000000093C 48 85 C0 test rax,rax 4C 8B C8 mov r9,rax 0F 88 77 FF FF FF js 0000000000000B8A C6 05 D6 0F 00 00 01 mov byte ptr ,1 49 8B C1 mov rax,r9 E9 68 FF FF FF jmp 0000000000000B8A
    Усі переходи до цього коду необхідно пропатчити на безумовні, а в самому коді необхідно «занопати» перший і другий рядки, після чого перевірка завжди закінчуватиметься успішно.

    BIOS lock removal

    Що: зняття захисту від прошивки модифікованих образів UEFI убудованим програматором.
    Навіщо: при великій кількості експериментів з UEFI діставати щоразу програматор швидко набридає, та й прошивка вбудованим програматором відбувається швидше (за рахунок роботи з протоколу QuadSPI замість звичайного SPI у разі зовнішнього програматора).
    Де шукати: у драйверах чіпсета, найчастіше в PchInitDxe (інший варіант мода - у BiosWriteProtect)
    Спосіб модифікації: варіант модифікації PchInitDxe повністю описаний англійською, тому я наведу лише ідею. Необхідно знайти запис біта BIOS Lock Enable (BLE) в регістр BIOS_CNTL чипсета і запобігти його. Зробити це можна у кількох місцях, наприклад, ось тут:
    48 8B 4C 24 40 mov rcx,qword ptr; Завантажити в RCX адресу структури PchPlatformData 48 8B 41 50 mov rax, qword ptr; А в RAX-адреса дочірньої структури LockdownConfig F6 00 10 test byte ptr, 10h; Перевірити, чи встановлений п'ятий біт (BiosLock) 74 25 je 0000000180001452 ; Якщо не встановлено, перестрибнути весь код нижче за 8A 50 01 mov dl,byte ptr B9 B2 00 00 00 mov ecx,0B2h ; E8 A2 5A 00 00 call 0000000180006EDC 4C 8D 87 DC 00 00 00 lea r8, ; У RDI лежить базова адреса регістрів LPC чіпсету, а 0xDC - зсув регістру BIOS_CNTL 33 C9 xor ecx, ecx 4C 8B CD mov r9, rbp 33 D2 xor edx, edx 4C 89 44 24 20 mov qword 0 0 0000000180008AFC; Встановити лок
    Можна змінити JE на JMP, але іноді замість короткого стрибка трапляється довгий, у якого доводиться додатково обчислювати зміщення, тому краще змінити test на будь-яку команду, яка встановлює прапор ZF, наприклад xor rax, rax (48 31 C0), а можливу різницю в розмірах команд виправити додаванням NOP"ів.
    Якщо в PchInitDxe потрібного коду не знайшлося, можна змінити драйвер BiosWriteProtect таким чином, щоб обійти реєстрацію SMI-обробника, що знаходиться в ньому, який встановлює біт BLE при спробі його скидання, після чого для розблокування прошивки достатньо скинути цей біт. У мене добре працює вищеописаний метод, тому цей варіант я поки не пробував і тому докладно описувати не буду.

    Advanced settings unlock

    Що: розблокування доступу до прихованих установок BIOS Setup.
    Навіщо: серед цих налаштувань може потрапити щось цікаве, але зазвичай їх приховують не просто так
    Де шукати: Phoenix і Insyde меню зберігається в HII-файлах з іменами на зразок SetupMain, SetupAdvanced і т.п. Для AMI меню зберігається у файлі Setup, а установки - в AMITSE. Понад те, AMI надає пороизводителям end-user товарів свою програму AMIBCP, версії якої часто витікають на публічний доступ. Робота з нею досить проста, тому описувати її я не бачу сенсу – скачайте і спробуйте.
    Спосіб модифікації: для AMI - відкриваємо образ в AMIBCP, змінюємо налаштування за замовчуванням, зберігаємо, прошиваємо, виконуємо скидання налаштувань, готове. Для Insyde та Phoenix все трохи складніше. Якщо доступ на запис в NVRAM не заборонено, можна скористатися методом товариша Falseclock, описаним у , а ось якщо доступу немає - доведеться модифікувати прошивку. Потрібно розібрати формат HII Form File або вручну, або надати це скрипту, описаному у вищезгаданій статті, або утиліті Universal IFR Extractor , яку необхідно нацькувати на файли HII, витягнуті з образу UEFI. Після цього достатньо змінити у витягнутому файлі HII Form умови SUPRESS_IF так, щоб вони ніколи не виконувались, і всі меню будуть доступні.

    CPU Microcode, OptionROM, drivers and images update

    Що: оновлення мікрокодів CPU, прошивок різних периферійних пристроїв, EFI-драйверів та відображуваних при завантаженні та в BIOS Setup картинок.
    Навіщо: Іноді оновлення допомагає виправити помилки в роботі системи, іноді додає підтримку важливої ​​фічі (роботу TRIM для SSD в RAID0, наприклад), але найчастіше оновлення проводиться тому, що нарешті вийшла нова версія.
    Де шукати: сильно залежить від виробника, EFI-драйвери можна знайти просто на ім'я (SataDriver, наприклад), мікрокод можна знайти по Model ID процесора, для якого він призначений, OROMи - по VID/DID пристроїв, які вони обслуговують, картинки у форматі JPEG можна знайти за рядком «JFIF», у GIF – за «GIF8» тощо.
    Спосіб модифікації: простий як мукання - знайти нову версію у вільному доступі, знайти де в образі лежить стара, і замінити одне на інше. Для AMI товаришем LS_29був написаний набір для автоматичного оновлення на основі утиліти MMTool, можна скачати з нашої теми на оверах . Про автоматизовані рішення для Phoenix або Insyde я поки не чув.
    Заміна картинок може бути зроблена або утилітами типу AMI ChangeLogo, або вручну, але найчастіше не підготовлена ​​спеціальним чином картинка викликає зависання, т.к. декодери форматів зображень дуже обмежені. Загалом дані EXIF ​​краще видалити заздалегідь.

    Висновок

    У цій статті я описав ті моди, які успішно робив своїми руками. Якщо у вас є якісь зауваження та доповнення – буду радий вашим коментарям.
    Ще раз смиренно попрошу адміністрацію Хабра та особисто НЛО про створення хаба UEFI, бо це дуже широка тема, а статті за нею буквально нема куди приткнути.
    Дякуємо за увагу, бажаю вам вдалих модифікацій.

    Теги:

    • UEFI
    • модифікація
    • UEFITool
    Додати теги

    Тут надано переклад та невеликі доповнення статті:

    Якщо у вас криві руки – спочатку рівніте руки, потім лізете до техніки. Якщо щось поламаєте – це ваші проблеми, не пишіть і не дзвоніть. Консультацій не даю. Побажання та виправлення надсилайте на пошту (наприкінці статті).

    Так, до речі, відеокарти із модифікованим біосом гарантії не підлягають. Робіть все на свій страх та ризик.

    Що нам потрібно для модифікації біосу відеокарти:

    1. для збереження біосу та заливання нового в карту
    2. GPU-Z щоб отримати детальну інформацію про відеокарту, тип пам'яті тощо
    3. Anoraks ATOMBIOSReader для отримання детальної інформації з біосу відеокарти
    4. Anoraks VBIOS CRC checker для підрахунку коректної чексуми для модифікованого біосу
    5. , власне кажучи, редактор у якому ми шаманитимемо

    У мене в піддослідних буде відеокарта SAPPHIRE NITRO RADEON RX 480 4G з партноміром 299-2E347-400SA, з частотами 1266 МГц за чіпом та 1750 МГц по пам'яті. Пам'ять Elpida:

    1. Запускаємо ATIWinFlash, зберігаємо біос у надійне місце. Створюємо копію про всяк пожадний.

    Навіть останній PolarisBIOSEditor не розуміє цієї пам'яті, що, власне, і змусило мене почати чаклувати:

    2. Тепер для модифікації розколупуємо біос і розкладаємо по поличках потрібні значення. Для всіх біос існує майстер список таблиць з командами і значеннями. Щоб отримати цю таблицю використовуємо Anoraks-ATOMBIOSReader, відкриваємо збережений біос:

    І отримуємо в папці з біосом тесктовий файл із потрібними нам значеннями:

    3. Далі юзаєм HEX Workshop. Запускаємо, відкриваємо збережений біос, отримуємо таке ось свавілля (не окуніть, зараз розберемося що до чого):

    Коротко. Вікно програми поділено на 4 частини. Віхове ліве (основне) – це вікно-координатна система, яка дозволяє вам потрапити у потрібну частину біосу. Можна порівняти її з шахівницею з її клітинами. Зліва у вас номер рядка, зверху – номер колонки, ну а комбінація номерів рядка та колонки дає адресу осередку (вау!). А в основному поле ви бачите актуальні значення у шістнадцятковій системі. Ось це ми й мінятимемо.

    Праворуч у нас віконце з «зрозумілими» значеннями - це переклад із шістнадцяткової системи в форму, що читається.

    Знизу праворуч вікно пошуку, закладок і т.д., до нього повернемося пізніше

    4. Тепер розгортаємо біос і збираємо корисну інформацію.

    У текстовому полі бачимо інформацію для якої картки цей біос було створено. У нашому випадку це ATOMBIOSдля Sapphire Ellesmere(Polaris) GPU c 4GBвідеопам'яті. І версія біосу VER015.050.000.000.000000.347. Ну я підозрюю що ви знаєте яка у вас каточка і скільки там пам'яті, але ця інформація підтверджує, що ми працюємо таки з правильним файлом.

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

    Тому відкриваємо текстовий файл, отриманий з даних біосу (з пункту 2).

    У таблиці 4 колонки з командами та 5а колонка зі значеннями.

    Перша колонка показує номер ряду в шістнадцятковому (HEX) значенні, друга стартова адреса записаного значення, третя – довжина рядка/записаного значення, четверта – назва команди/значення. 5 колонка - переклад 4 колонки в вид, що читається.

    Коротше кажуть, нам потрібне VRAM_Info- який вкаже на номер типу пам'яті.

    У мене це:

    001c: a44e Len 073f Rev 02:02 (VRAM_Info)

    Щоб знайти яка у нас пам'ять шукаємо початкову адресу з VRAM_Info – у нас це a44e.

    Йдемо до HEX Workshop. Тиснемо або переходимо по меню Edit -> Goto...У віконці вставляємо адресу і тиснемо Goта курсор переміщається на потрібну адресу:

    Праворуч у текстовому полі серед будь-якого марення бачимо два осудні набори символів.

    H5GC4H24AJRі EDW4032BABG

    Перша – це HYNIX

    Друга – це Micron або Elpida

    Ось вона наша Елпіда!

    Біос написаний під 2 типи пам'яті відразу - Micron та Elpida. Саме тому в нього прописані налаштування для обох виробників.

    5. Шукаємо та міняємо таймінги.

    Ми будемо робити так званий мемшифт або, говорячи нормальною мовою, зрушувати/прописувати таймінги від меншої на більш високу частоту. Це рішення дозволяє збільшити продуктивність в майнінг Ефіра (Ethereum).

    Ближче до тіла, як казав класик.

    Нам потрібен стандартний віндовий калькулятор у режимі ТиЖПрограміст:

    Так, давайте переведемо значення частоти 1500 в шістнадцяткову систему обчислення (далі HEX). На калькуляторі клацаємо на DEC щоб перевести калькулятор у десятирічну систему обчислення. Далі потрібно ввести 1500 помножене на 100, тобто 150 000. І в полі HEX ​​бачимо значення 249F0- це 1500 у шістнадцятковій системі обчислення.

    HEX редакторпоказує значення у реверсованому/перевернутому вигляді. Тому ми також перевернемо отримане в калькуляторі значення. Як це робиться: число перевертається знаками по парах.

    Остання пара F0стає першою, потім 49 , остання 2 одна, тому додаємо 0 у хвіст.

    Отримуємо.

    Ідемо в HEX редактор і шукаємо F04902: тиснемо Ctrl+f, або через меню Edit -> Find…Відкриється вікно пошуку. Для Typeобираємо Hex Valuesта у value вписуємо F04902. Ставимо пташку на Find all Instancesі тиснемо Ок.

    У нижньому правому вікні з'являться всі збіги. Нам потрібне значення, яке йде після значення типу пам'яті:

    У нашому випадку у нас біос під двох виробників пам'яті, перший – Hynix, другий – Elpida:

    Після значення йдуть 00, 01, 02 – які відповідають типу пам'яті.

    У нас елпіда, ставимо собі закладку. Виділяємо, клік правою кнопкою Add Color Mapping..., вибираємо Background Color (у мене червоний)

    1625 помножити на 100 це 162500 в DEC і перекладається як 27AC4 в HEX. Після реверсу додаємо 02 в кінець (нагадаю, у нас елпіда, другий тип пам'яті за рахунком у біосі) отримуємо C47A0202

    Виходить щось таке:

    Тепер розпочинаємо модифікування.

    Найчастіше записують таймінги від 1500 МГц до 1625/1750/2000 МГц.

    Не фанатейте, не потрібно записувати дуже низькі таймінги - це може призвести до помилок у обчисленнях, що привіт до так званих джекнутих куль (rejected shares). Слідкуйте за помилками через HWiNFO64 (під навантаженням):

    По-хорошому, помилок не має бути взагалі.

    Щоб перезаписати таймінги, ми беремо стоку, яка між значеннями 1500 та 1625 (ті, які ми кольором відзначили) та вставляємо цей рядок у 1625-1750, 1750-2000.

    Також іноді зашивають частоти від 1425 до 1500, і від 1375 до 1425 (мемшифт)

    Отримуємо таку картину:

    Зберігаємо біос під новим ім'ям. Наприклад, bios_new.rom

    6. Виправляємо чексуму CRC (CRC checksum).

    Перед тим, як заливати біос у видік, потрібно зробити ще одну невелику маніпуляцію. Виправити чексуму у файлі біосу.

    Що таке чексума CRC (CRC checksum)? Чексумма - це значення чи рядок, яка розраховується з вмісту файла. Якщо оригінальний файл змінюється, також змінюється CRC для цього файлу. Чексуму CRC можна порівняти з швидким індикатором чи змінювався файл.

    Кожен біос відеокарти містить CRC чексуму усередині свого файлу. Як тільки ми змінили біос, CRC змінився і він перестав відповідати збереженому у файлі.

    Якщо ми зашиємо такий біос із кривим CRC, програма прошивки покаже помилку. Навіть якщо ви пройдете, драйвер відмовиться працювати з таким пристроєм, а в гіршому випадку, ви перетворите картку на цеглу.

    Тож давайте ж порахуємо правильний CRC.

    Для цього нам потрібний Anoraks-AMD-VBIOS-CRC-checker.

    Запускаємо його, тиснемо Check CRC, вибираємо збережений модифікований біос bios_new.rom і бачимо:

    Новий CRC відрізняється від збереженого.

    Ідемо знову в наш HEX редактор, нам потрібен перший рядок коду. Наша чексумма записана за адресою, йдемо туди:

    Безсумнівно змінюємо її на правильну (expected checksum з Anoraks-AMD-VBIOS-CRC-checker):

    Зберігаємо біос у файл bios_new2.rom

    Ще раз перевіряємо його на правильність CRC чексуми.

    Зашиваємо у відік. Це не описую, тут і так мільйон мануалів є:

    Запускаємо Wattools + HWiNFO64 (стежимо за помилками пам'яті). У мене пам'ять заробила на 1950 МГц та видавала трохи помилок. Помилки – погано, будуть рідшені кулі. Зовсім без помилок працювала на частоті 1900 МГц.

    Спочатку каточка видавала близько 22 мегахешів у соло в ефірі на Claymore 8.0

    Після маніпуляцій над біосом отримали:

    На даунвольті 27.8 ETH + 415 DCR споживання 92 Ватта, температура GPU 74 градуси (у кімнаті 20), пам'ять працює на 1950 МГц:

    Без даунвольта вийшло близько 28,5 Мх в ефірі + 450 у декреті, споживання більше 140 Ват, тільки кому воно таке треба?

    Що ж, це не мега-результат, враховуючи, що хороша 470 з пам'яттю Samsung видає 30+ в ефірі + 450 у декреті, але ми не соромимося своїх досягнень.

    Купив ноутбук Asus, хотів завантажитися з завантажувального дискаЩоб переустановити Windows 8, на Windows 7, можу завантажиться з диска, Що робити?

    Вам необхідно відключити так званий режим Secure Boot

    Просто знаходимо зображення зі своїм BIOS і дивимося, як у ньому відключається UEFI.

    Secure Boot- це захисна функція, створена в 2012 році корпорацією Майкрософт, внаслідок чого не може бути доставлений у пріоритеті завантаження BIOSна CD / DVD диску, який означає, що ви не можете завантажити диск, і ви не можете поставити пріоритет завантаження до USB, будь то флеш-накопичувач USBабо зовнішній жорсткий зовнішній диск. Доступ Т.е. повністю закритий, але ви можете вимкнути цей захист, передбачений.

    Залежно від способу, щоб відключити виробників можуть відрізнятися від описаних тут, але в цілому суть залишається тією ж. Головне зрозуміти, що мета Secure Boot - офіційні ключі, які користувач повинен придбати за рахунок власних коштів.

    У старих версіях BIOS-авідключити Secure Boot було досить легко:

    У нових версіях BIOS-а, Secure Boot відключається набагато складніше. Просто знаходимо своє зображення (або зображення) і дивимося на них як відключається цей самий Secure Boot.

    Другий варіант:

    Виберіть Security Boot Parameters

    Для типу OS виберіть Windows 8 UEFI. (Навіть якщо ви хочете встановити іншу ОС)

    Клацніть на керування ключами

    Виберіть Вимкнути клавішу за промовчанням Provisioning.

    Потім, клацніть на безпечне завантаження ключів, щоб видалити всі старі ключі

    Потім вставте завантажувальний диск або флеш-пам'ять

    Третій варіант:

    З'являється Червоне вікно, натисніть клавішу F10 (Ascept)

    Потім починайте знизу:

    Ключ Owership виберіть для користувача

    Наявна підтримка Виберіть Enabled

    потім дивіться порядок завантаження (при необхідності відключати джерела UEFI завантаженняопераційної системи натисканням F5) та зберегти налаштування

    Невелике пояснення:

    1) Видалення Windows 8 с жорсткого дискане впливає на безпечне завантаження, тому що ця функція вбудована в BIOS, а також BIOS на материнській платі. Таким чином, навіть якщо ви в командному рядку команди через DiskPart, список дисків і ясно, видаліть всі розділи, то в кінцевому підсумку при запуску бачите це повідомлення тут:

    2) Переконайтеся, що переключитися на ключові клавіші управління звичаєм, інакше результат побачите повідомлення на кшталт (натискання комбінації перерахованих 2948 + Enter вам не допоможе у відповідь на реакції не побачите):

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

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

    Що таке BIOS

    BIOS (Basic Input/Output System) - це базова система введення виводу. Точніше, BIOS є системою налаштування та управління пам'яттю, процесором, чіпсетом, інтегрованими на платі контролерами та підключеними до плати пристроями. На відміну від більшості інших програм, BIOS розташовується не на жорсткому диску, а на спеціальній мікросхемі з автономним живленням на системній платі.

    Від BIOS в комп'ютері залежить дуже багато. Фактично BIOS визначає налаштування системи, якою визначаються функціональність та продуктивність ПК. Найчастіше перші версії BIOS, з якими з'являються материнські плати, рясніють "багами", що зникають лише в наступних версіях.

    Система BIOS є в будь-якій системній платі (за винятком плат для комп'ютерів Apple), призначена вона для настільного ПК або ноутбука. Втім, традиційно склалося так, що BIOS для ноутбука має мінімум налаштувань і має швидше інформаційний характер. Що стосується BIOS материнської плати для настільного ПК, вона дозволяє виконати досить велику кількість налаштувань, які впливають як на продуктивність роботи системи, так і на її функціональність. Зокрема, традиційний розгін системи, що передбачає збільшення тактової частотипроцесора, зміна напруги живлення процесора, зміна тактової частоти, таймінгів та напруги живлення пам'яті виробляються саме в налаштуваннях BIOS. Крім того, в деяких випадках BIOS дозволяє налаштовувати швидкісний режим роботи вентилятора, встановленого в кулері процесора, та додаткових вентиляторів, встановлених у системі, реалізовувати налаштування RAID-масиву жорстких дисківу випадку, якщо цей масив створений на базі інтегрованого в чіпсет контролера, а також виконувати масу інших тонких налаштуванькомп'ютера.

    BIOS розміщується у мікросхемі ROM-пам'яті (Read Only Memory), що забезпечує постійну доступність BIOS незалежно від працездатності зовнішніх щодо материнської плати компонентів (наприклад, завантажувальних дисків). Оскільки доступ до RAM ( оперативної пам'яті) здійснюється набагато швидше, ніж до ROM, багато виробників передбачають при включенні живлення автоматичне копіювання BIOS з ROM в оперативну пам'ять. Задіяна у своїй область оперативної пам'яті називається Shadow ROM.

    В даний час більшість сучасних материнських плат комплектується мікросхемами Flash BIOS, код яких може перезаписуватися за допомогою спеціальної програми. Такий підхід забезпечує можливість оновлення (прошивки нової версії) BIOS.

    Виробників ядра BIOS не так вже й багато. Найбільш поширені BIOS від компаній AMI (American Megatrends, Inc.), AWARD та Phoenics Technologies. Інші BIOS (від компаній FirmWorks, Micro Firmware та ін) зустрічаються набагато рідше. А домінує нині на ринку AMI BIOS, тому надалі ми сконцентруємось на способах перепрошивки та модифікації саме її.

    Звичайно, кожен виробник вносить свої зміни до базової версії BIOS, і, звичайно ж, та чи інша версія BIOS призначена тільки для конкретного продукту (комп'ютера або ноутбука) і несумісна з іншими рішеннями.

    Нарешті, відзначимо, що в даний час мікросхеми BIOS використовують два інтерфейси для підключення до системної плати: або шину LPC (Low Pin Connection) або нову шину SPI (Serial Peripheral Interface).

    Навіщо перепрошувати BIOS

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

    У той же час нерідко виникають ситуації, коли оновлення BIOS потрібне. Наприклад, ви придбали материнську плату з процесором і з'ясували, що вони несумісні один з одним. Швидше за все, проблема полягає в тому, що на вашій материнській платі прошита стара версія BIOS, який не підтримує новий процесор. Єдиний варіант у даному випадку- Знайти старий процесор і оновити BIOS на платі.

    Крім того, у кожній новій версії BIOS виправляються помилки, допущені в попередніх версіяхТак що процедура оновлення BIOS виявляється дуже корисною.

    Найбільш безпечні в плані процедури перепрошивки BIOS плати компаній Gigabyte, ASUS та MSI, в яких реалізовано захист від невдалої перепрошивки BIOS. На платах Gigabyte встановлюються дві мікросхеми BIOS (технологія DualBIOS), і якщо BIOS прошитий некоректно і система не може запуститися, то автоматично починається процедура аварійного відновлення BIOSіз резервної мікросхеми.

    На нових платах ASUS технологія аварійного відновлення BIOS отримала назву ASUS CrashFree BIOS 3. Суть цієї технології полягає в тому, що у разі краху BIOS або розбіжності контрольної суми після невдалої прошивкиавтоматично запускається програма, яка шукає BIOS на CD/DVD-диску, дискеті або флешці (з файловою системою FAT/FAT32). Якщо файл на якомусь носії знайдено, автоматично запускається процедура відновлення.

    Аналогічна технологія, що одержала назву M-Flash, є на платах MSI. Різниця лише в тому, що файл BIOS повинен знаходитись на флешці.

    Способи перепрошивки BIOS

    Всі виробники системних плат разом з новими версіями BIOS викладають і утиліти для їх прошивки, а також докладні інструкції, як перепрошувати BIOS На жаль, але якогось універсального інструментарію для перепрошивки BIOS просто не існує. Взагалі, можна виділити три способи перепрошивки BIOS: з-під DOS, з-під операційної системи Windowsта безпосередньо з-під BIOS.

    Власне, про способи перепрошивки BIOS з-під BIOS та за допомогою фірмової утиліти з-під операційної системи Windows розповідати нема чого. Тут все просто та зрозуміло. Більш того, спосіб перепрошивки BIOS з-під BIOS є найпростішим і безпечнішим, проте, на жаль, не всі виробники підтримують цю функцію. Виняток становлять лише компанії ASUS та Gigabyte.

    Більш того, не всі виробники комплектують свої плати утилітами для перепрошивки BIOS з-під Windows і в деяких випадках спосіб перепрошивки з-під DOS є можливим.

    Спосіб перепрошивки BIOS з-під DOS можна назвати класичним, але й незручним. Справа в тому, що, крім наявності відповідної DOS-утиліти, цей спосіб перепрошивки має на увазі завантаження комп'ютера не з жорсткого диска, а з зовнішнього носія. Раніше для цього застосовувалися звичайні 3,5-дюймові завантажувальні дискети з DOS, причому на цю дискету поряд з операційною системою записувалися і сам файл BIOS, і DOS-утиліта його перепрошивки. Однак у цей час 3,5-дюймові дискети, як і самі флопповоди, можна вважати застарілими пристроями. На багатьох сучасних материнських платах відсутня навіть роз'єм для підключення флопповода, а ноутбуків з 3,5-дюймовими флопповодами вже давно не виготовляють. Втім, проблема даного способуПерепрошивка BIOS полягає навіть не в цьому. Зрештою можна знайти 3,5-дюймовий флоппривід із USB-інтерфейсом, але це навряд чи вирішить проблему. Справа в тому, що сучасна BIOS може бути об'ємом у кілька мегабайт і просто не вміщатись на дискету.

    В принципі, можна спробувати вирішити цю проблему, використовуючи замість завантажувальної дискетизавантажувальну флешку із ядром DOS. Але й у разі виникають ускладнення. Насамперед потрібно знайти утиліту, яка дозволить зробити флешку завантажувальною, та системні файлиопераційної системи DOS. В Інтернеті можна знайти кілька утиліт, що дозволяють робити завантажувальні флешки з DOS, найвідоміші з них - це HP USB Disk Storage Format Tool і BootFlashDOS, які є в Мережі у вільному доступі.

    Утиліта HP USB Disk Storage Format Tool дозволяє створювати завантажувальні флешки за наявності системних файлів DOS, тобто для неї потрібні ще й самі файли. Втім, на торрентресурсах можна знайти збірки, які містять системні файли DOS.

    У разі використання флешок ємністю менше 4 Гбайт при форматуванні та створенні завантажувальної флешки за допомогою утиліти HP USB Disk Storage Format Tool (рис. 1) можна застосовувати файлову систему FAT або FAT32, а якщо використовується флешка ємністю більше 4 Гбайт, то необхідна файлова система FAT32.

    Рис. 1. Створення завантажувальної флешки з DOS
    за допомогою утиліти HP USB Disk Storage Format Tool

    Утиліта BootFlashDOS дозволяє створювати завантажувальні флешки з DOS натисканням лише однієї кнопки, оскільки всі необхідні системні файли вже входять до самої утиліти (рис. 2).

    Рис. 2. Створення завантажувальної флешки із DOS за допомогою утиліти BootFlashDOS

    В принципі, якщо створено завантажувальну флешку з DOS, то жодних проблем із перепрошивкою BIOS вже не буде. Достатньо скопіювати на завантажувальну флешку DOS-утиліту для перепрошивки BIOS та сам файл BIOS та завантажити комп'ютер із флешки. Для завантаження комп'ютера з флешки потрібно вставити її в ПК, перезавантажити або просто увімкнути комп'ютер і на етапі завантаження увійти в BIOS, щоб виставити в налаштуваннях завантаження з USB Flash Drive. Далі, зберігши налаштування, перезавантажуємо комп'ютер і завантаживши DOS, виконуємо в командному рядку потрібну команду відповідно до інструкції виробника BIOS.

    Приклади виконання подібної команди ми наведемо трохи пізніше, а поки що розглянемо ще один спосіб перепрошивки BIOS з-під DOS. Він полягає в тому, що замість завантажувальної флешки застосовується завантажувальний CD/DVD-диск. Велосипед винаходити тут навряд чи варто краще скористатися вже готовим диском Hiren`s BootCD ( поточна версія 10.4), образ якого можна завантажити із сайту www.hirensbootcd.net. У разі використання завантажувального диска Hiren`s BootCD додатково знадобиться ще й флешка файловою структурою FAT або FAT32), на яку повинна бути записана DOS-утиліта для перепрошивки BIOS, і сам файл BIOS.

    Тепер розглянемо процедуру перепрошивки BIOS з під DOS на прикладі ноутбука MSI GX640 з AMI BIOS. На ноутбуках MSI передбачається один-єдиний спосіб перепрошивки BIOS з-під DOS за допомогою самої BIOS фірмової DOS-утиліти, що додається до файлу. Власне, все, що потрібно для перепрошивки BIOS, - це створити флешку, завантажити з сайту MSI архів з усіма необхідними файлами, до якого входять файл BIOS, утиліта для перепрошивки і файл flash.bat з прописаною послідовністю всіх дій. Після цього слід розархівувати цей архів на флешку завантаження і, завантажившись з флешки, запустити на виконання файл flash.bat. Головне, щоб усі розархівовані файли знаходилися в одній папці (можна розархівувати їх у кореневий каталог флешки).

    Взагалі, слід зазначити, що для кожного типу BIOS (AMI, Award) для перепрошивки існують спеціалізовані утиліти від компаній AMI та Award. Наприклад, з сайту компанії AMI можна завантажити пакет amiflash, в якій входять утиліти afudos і afuwin, що дозволяють перепрошувати AMI BIOS з-під DOS і Windows відповідно. Однак потрібно мати на увазі, що AMI BIOS може бути як класичним AMI BIOS, так і AMI Aptio BIOS. Aptio – це різновид AMI BIOS, але головне, що для AMI BIOS та Aptio AMI BIOS використовуються різні утиліти afudos та afuwin.

    Крім того, багато виробників системних плат вносять у BIOS для своїх продуктів настільки суттєві зміни, що універсальні утиліти AMI або Award їх просто не розпізнають, а отже, перепрошувати не можуть. Зокрема, у розглянутому раніше прикладі з AMI BIOS ноутбука MSI GT640 утиліти afudos і afuwin не розпізнають її як AMI BIOS і, звичайно, не можуть перепрошувати.

    Взагалі ситуація, коли йдеться про модифіковані версії AMI BIOS, які визначаються як AMI BIOS самими утилітами від AMI, зустрічається досить часто. Це і багато плати MSI, і багато плат Gigabyte. У такому «випендрежі» поки що не помічені тільки плати ASUS, BIOS на яких можна перепрошувати утилітами від компанії AMI (хоча, звичайно, краще підійдуть утиліти, що поставляються самою компанією ASUS).

    Навіщо модифікувати BIOS

    Отже, ми розглянули основні способи перепрошивки BIOS, а тепер обговоримо, як її можна модифікувати. Звичайно, виникає питання: а навіщо взагалі модифікувати BIOS? З цього приводу можна сперечатися нескінченно, як і про те, чи потрібно розганяти комп'ютер. Власне, якщо процедура моддінгу BIOS в принципі можлива, завжди знайдуться ентузіасти, які цим займатимуться.

    Ще кілька років тому про можливість самостійного редагування BIOS мало хто замислювався. Однак останнім часом ця процедура стала популярною і в Інтернеті можна знайти чимало ресурсів, присвячених моддингу BIOS. Інтерес до цього питання можна пояснити тим, що останнім часом багато користувачів стали прошивати SLIC-таблицю у своїй BIOS, а це один із варіантів моддингу, або редагування, BIOS. Сама по собі процедура прошивки SLIC-таблиці в BIOS цілком законна, а ось те, для чого це роблять, звичайно, вже незаконно - саме цим пояснюється популярність даної процедури.

    Коротко пояснимо, про що йдеться. Прошивання SLIC-таблиці в BIOS використовується для того, щоб реалізувати механізм OEM-активації операційної системи Windows 7 точно так, як це роблять OEM-партнери Microsoft для активації попередньо встановлених копій Windowsбез перевірки Microsoft. Цей методдозволяє активувати систему за дотримання трьох умов: використання спеціального OEM-ключа та OEM-сертифіката, а також наявність SLIC-таблиці в BIOS комп'ютера.

    Windows 7 вимагає наявності в BIOS SLIC-таблиць версії 2.1, причому жорсткої прив'язки OEM-ключа до SLIC-таблиці та сертифікату немає. Ключ прив'язаний тільки до редакції Windows і дозволяє активувати x86-, так і x64-версії ОС. Файлсертифікат та SLIC-таблиці взаємопов'язані, і для успішної активації обидва компоненти мають бути від одного OEM-партнера.

    Ми не будемо розповідати, як незаконно активувати Windows 7, проте зупинимося на процедурі вшивання в BIOS SLIC-таблиці. Відразу відзначимо, що це далеко не завжди можливо і не всі BIOS піддаються будь-якому редагування.

    В Інтернеті можна знайти пакет програмних інструментів (AMITool), що містить самі SLIC-таблиці, так і утиліту (AMI SLIC Mod) для їх прошивки в AMI BIOS. Однак для цього потрібно, щоб у вас на платі застосовувався саме AMI BIOS, але навіть у цьому випадку немає жодної гарантії, що процедура прошивки SLIC-таблиці в BIOS виявиться можливою. Як ми вже зазначали, багато виробників так модифікують BIOS для своїх продуктів, що утиліта AMI SLIC Mod просто не розпізнає її як AMI BIOS, а отже, не може її модифікувати.

    Втім, навіть у цьому випадку не варто впадати у відчай і бігти в магазин за інший системною платою. Перш ніж намагатися прошивати SLIC-таблицю у BIOS, слід перевірити факт її відсутності у BIOS. Якщо ви купили материнську плату або ноутбук нещодавно, то цілком може виявитися, що потрібна вам версія SLIC-таблиці (версія 2.1) у BIOS вже є.

    Переглянути версію SLIC-таблиці в BIOS можна за допомогою спеціалізованої утиліти RW – Read & Write Utility (поточна версія 1.4.7), яку можна завантажити з сайту http://rweverything.phpnet.us. Інша назва цієї утиліти – RW-Everything.

    Встановивши дану утиліту, запускаємо її та у головному вікні програми на панелі інструментів натискаємо на кнопку з написом ACPI. У вікні ACPI Table натискаємо на вкладку SLIC. Далі необхідно переглянути таблицю в шістнадцятковому форматі і знайти в ній рядок, що починається з байт 53 20. Якщо наступні чотири байти 00 00 00 00, значить у BIOS прошитий SLIC-таблиця версії 2.0, а якщо - 01 00 02 00, то таблиця версії 2.1 (рис. 3).

    Рис. 3. Визначення версії SLIC-таблиці BIOS

    Звичайно, вшивка SLIC-таблиці в BIOS - це не єдиний варіант можливого моддингу. Інший спосіб моддингу – це розблокування деяких функцій BIOS. Дійсно, виробники материнських плат часто навмисно блокують деякі функціональні можливості BIOS для спрощення процедури налаштування Setup BIOS. Відключають вони і ті функції, які в конкретній материнській платі відсутні, але можуть бути задіяні у таких модифікаціях.

    Використовуючи спеціалізовані утиліти, можна спробувати розблокувати всі відключені функції та опції в BIOS. Крім того, можна змінити логотипи (деякі виробники материнських плат, наприклад компанія ASUS, навіть постачають спеціальні утиліти для зміни логотипу BIOS), а також деякі назви, щоб, наприклад, при завантаженні відображалася не реальна назва процесора, а щось типу. AMD Core i9-995».

    Можна навести й інший приклад моддінгу BIOS. Деякі умільці примудряються через BIOS розблокувати можливість застосування режиму SLI для відеокарт NVIDIA на тих материнських платах, де цей режим не передбачено. Власне, якщо плата офіційно підтримує режим SLI, то її BIOS є відповідний ключ від NVIDIA. Ідея моддингу полягає в тому, щоб вирізати цей ключ із BIOS тієї плати, на якій режим SLI офіційно підтримується, і вставити його в BIOS для тієї плати, на якій режим SLI не підтримується (тобто BIOS без ключа NVIDIA). Зокрема, є приклади того, як за рахунок такого моддингу активували режим SLI на платах на базі чіпсету Intel P45 Express.

    Втім, перейдемо від теорії до практики та обговоримо редагування BIOS, зокрема редагування AMI BIOS як найпоширенішої.

    Редагування AMI BIOS

    Для редагування BIOS з ядром від AMI буде потрібно утиліта AMIBCP, яку, до речі, випускає компанія AMI. Цю утиліту можна завантажити як окремо, так і в пакеті AMI BIOS ROM Utilities. Потрібно відзначити, що оскільки, як ми вже не раз наголошували, виробники материнських плат і ноутбуків вносять зміни в AMI BIOS для своїх продуктів, то жодної гарантії того, що утиліта AMIBCP розпізнає BIOS, немає. На жаль, але не кожну BIOS можна модифікувати. Як показує практика, без проблем піддаються редагування BIOS плат ASUSі ECS, а ось щодо плат компаній Gigabyte та MSI утиліта AMIBCP безсила.

    Отже, повернемося до розгляду редагування BIOS у разі, коли це можливо. Утиліта AMIBCP (версія 3.х) запускається з-під операційної системи Windows, але слід зазначити, що є варіанти цієї утиліти для DOS.

    Завантаживши утиліти, потрібно відкрити файл BIOS. У нашому прикладі ми розглянемо редагування AMI BIOS для системної плати ASUS P6X58D-E за допомогою утиліти AMIBCP v.3.37. Редагування ми будемо піддавати файл P6X58DE.ROM.

    Отже, у головному вікні програми завантажуємо файл BIOS, який модифікуватимемо (рис. 4).

    Рис. 4. Головне вікно утиліти AMIBCP v.3.37

    Насамперед цікава вкладка Setup Configuration, в якій, власне, і провадиться модифікація налаштувань BIOS. У лівому вікні цієї вкладки відображається основне меню налаштувань BIOS. Якщо зняти галочку з будь-якого пункту меню, він не відображатиметься в меню BIOS. У розглянутому прикладі (див. мал. 4) ми зняли галочки з пунктів Ai Tweaker та Advanced, заблокувавши тим самим усі можливості для розгону системи. Тобто пункти меню BIOS, в яких можна переглянути інформацію про процесор і пам'ять, а також поміняти частоти, напруга живлення і т.д., просто будуть відсутні в модифікованій версії BIOS.

    Аналогічна ситуація при розкритті деревоподібної структурикожного пункту меню налаштування BIOS: якщо зняти галочку з будь-якого підпункту, він не відображатиметься в меню BIOS. Наприклад, якщо ми не хочемо, щоб у меню налаштувань Advanced відображався пункт Intel PPM Configuration, потрібно просто зняти з пункту галочку (мал. 5).

    Щоб заблокувати будь-яку опцію меню налаштування BIOS, достатньо у графі Show для відповідного пункту встановити значення No. Такі заблоковані елементи будуть (після збереження внесених змін) виділені зеленою смугою.

    Наприклад, якщо в нашій системі не встановлені додаткові вентилятори в корпусі і ми не хочемо, щоб у BIOS відображалися пункти їх налаштувань, то входимо в меню Power, далі відкриваємо меню Hardware Monitor і для Chassis Fan 1 Speed, Chassis Fan 2 Speed, Chassis Fan 3 Speed, Chassis Q-Fan Profile та Power Fan Speed ​​встановлюємо значення No у графі Show (рис. 6).

    Рис. 6. Блокування відображення в BIOS різних опцій меню налаштування

    Слід зазначити, що BIOS P6X58DE.ROM для плати ASUS P6X58D-E будь-яких покращень за допомогою утиліти AMIBCP v.3.37 не допускає. Всі опції в ній розблоковані, тому максимум, що можна зробити - це заблокувати те, що не потрібно (правда, незрозуміло, навіщо це робити).

    Можна також спробувати змінити деякі написи, але слід мати на увазі, що на російській мові написи не відображатимуться. Наприклад, якщо ми хочемо, щоб при завантаженні замість рядка ASUS P6X58D-E ACPI BIOS Revision 0106 відображався рядок ComputerPress P6X58D-E BIOS Edition, то достатньо знайти рядок ASUS P6X58D-E ACPI BIOS Revision 0106 на закладці BIOS Strings .

    Нам залишилося розглянути ще один вид моддінгу BIOS – зміна фонової картинки (логотипу) BIOS. При цьому компанія ASUS навіть комплектує свої плати спеціальною утилітою, яка дозволяє реалізовувати цю можливість. Звичайно, для плат ASUS найпростіше застосовувати саме цю утиліту. Однак для AMI BIOS можна скористатися і утилітою OEM LOGO компанії AMI (рис. 7).

    Рис. 7. Зміна логотипу BIOS за допомогою утиліти OEM LOGO

    Інтерфейс цієї утиліти дуже простий і не потребує коментарів. Достатньо завантажити BIOS і вказати шлях до файлу з новим логотипом. Єдине обмеження - малюнок повинен бути певного дозволу та формату.