- Популярное -

ROM.BY   СТАТЬИ
ПРОШИВКИ   ФАЙЛЫ
РЕДАКТИРОВАНИЕ   ССЫЛКИ
ФОРУМ   УСЛУГИ

 

- Абзацы... -
Что это такое - "BIOS Patcher"?
Что он делает?
КАК он работает?
ПОЧЕМУ он работает?
Какова вероятность ошибки?
В какие места/части прошивки вносятся изменения?
Насколько это безопасно?
Что "может" патчер?
Другие возможности
Как работать с патчером?
- Проект "BIOS Patcher" -

Что это такое - "BIOS Patcher"?

Это - программа, способная находить и исправлять ошибки в BIOS-е (пока только - Award BIOS, по другим - см. дальше), а так же добавлять ему новые возможности (либо "открывать", "разблокировать", в общем - "возвращать на родину";) - т.е. уже имеющиеся, только по каким-то причинам "закрытые" производителем платы).

 

ЧТО он делает?

BIOS Patcher (далее - просто "патчер") сканирует файл прошивки. Если он находит ошибки (которые знает) - исправляет их. Если находит "закрытые" производителем возможности (которые знает) - "открывает" их. Если введены ключи для добавления новых возможностей (или не выключены добавляемые по умолчанию) - добавляет их.

 

КАК он работает?

Для сканирования патчер распаковывает нужные ему "запчасти" биоса (ведь AwardBIOS состоит из запакованных архиватором LHA частей, подробней см. Редактируем AwardBIOS) в оперативную память и ищет "характерные" (например - для ошибок) участки кода, соответственно имеющейся в нём "базе данных". Если находится "что-то похожее" происходит ещё, как правило, трёхкратная проверка по "дополнительным" признакам и только тогда патчер делает вывод об корректном обнаружении "нужного места". В случае "малейшего сомнения" (например, было найдено больше одного совпадения или "не в том месте") - исправления не вносятся.

 

ПОЧЕМУ он работает?

Достаточно объёмный вопрос. Если коротко, то утрированно говоря получается так. "Авардовские" биосописатели пишут новые биосы и раздают (точнее - продают, конечно;) их производителям плат, которые уже, в свою очередь, руководствуясь какими-то соображениями меняют и/или "дописывают" их (например - добавляют свои фирменные фичи или приспосабливают под особенности производства/комплектующих). Понятно, никто не будет переписывать биос "начисто", да и не у всех есть на это просто деньги, точнее - программисты и зарплата для них (или просто желание;).

Именно поэтому все биосы фирм "третьего звена" так похожи друг на друга. И и менно поэтому - у них такая напряжёнка с обновлениями. И именно поэтому у них, как правило, одинаковые ошибки и именно поэтому патчер срабатывает на них наиболее эффективно и точно.

"Взрослые" фирмы вносят (часто - серьёзные и много) изменения. Патчер учитывает эти особенности, т.е. поиск какой-либо ошибки может происходить, например, с учётом "гигабайтовского" происхождения биоса.

Отдельно стоит сказать про биосы от Asus. Я точно не владению информацией, но просто, судя моему многолетнему опыту "биосоковыряния", могу утверждать, что где-то с середины девяностых (т.е. ещё Pentium1) Asus, наверное, "выкупила права" на AwardBIOS и с тех пор пишет полностью свои биосы, хоть и под маркой Award (Phoenix нонче). Это обозначает, что стандарты у Асуса свои, часто никак не связанные с "обычными" Award-биосами (хоть и имеют общее в самых общих аспектах). Именно поэтому с биосами от Асус могут не работать стандартные авардовские утилиты, например - cbrom, modbin (в отличие от патчера, который "знает" про эти особенности). И стоит отметить, что у Асуса явно нет проблем с программистами - все их биосы по сравнению со "стандартными" Award-овскими часто являются просто "произведениями" искусства, что, конечно, очень усложняет работу патчеру (по большому счёту почти треть патчера - учёт тонкостей асусовских биосов).

Как итог этого ответа - патчер работает благодаря тому, что все Award-биосы имеют общие корни (многие из которых не менялись с 1990-го года!)

 

Какова вероятность ошибки?

Вероятность ошибки, конечно, есть всегда. Однако, как говорилось выше, патчер для "идентификации" использует много "признаков", которые практически исключают это дело и ошибка может быть лишь другой "природы" - из-за излишней "осторожности" патчер не "признает" ошибку.

 

В какие места/части прошивки вносятся изменения?

Ноухау патчера состоит в том, что он... - НИЧЕГО не исправляет!
Т.е. имеется в виду то, что все "запчасти" прошивки остаются в "первозданном" виде. Кроме, разве что, микрокодов и других "стандартно" заменяемых частей. Просто все изменения заносятся в отдельный файл и вносятся после, прямо в процессе POST-а. Т.е. по сути, результатом работы патчера являются два файла - файл "изменений" (modul.tmp) и "стартовый" файл (start.tmp) - для загрузки изменений. Полученные два файла добавляются в прошивку "стандартной" утилитой cbrom (автоматически - cbrom целиком "интегрирован" прямо в патчер). В результате такого способа внесения измений убиваются сразу несколько "главных" зайцев:
- всё делается "самими же" авардовскими утилитами, потому корректность этого этапа гарантирована самим Award-ом;)
- появляется возможность не вносить изменения вовсе (см. дальше по безопасности)
- перешивать биос можно без BootBlock-а, что, конечно, ещё больше увеличивает надёжность.

Исключения касаются лишь нескольких случаев. Это (как всегда;) - биосы от Асус. Они имеют свою, "нестандартную" структуру распаковки модулей ("запчастей") биоса во время POST-а, поэтому требутся изменение в том числе и BootBlock-a. Так же изменения BootBlock-а требуется при добавлении некоторых "фич", которые инициализируются непосредственно в самом POST-а (т.е., собственно - в BootBlock-е), т.е. это, например, "+PCI" для VIA-based MB, а также поддержка 256Mbit-ной памяти (пока не работает - "в процессе") и т.п. Во всех этих вариантах вероятность некорректной работы патчера повышена, именно поэтому такие случаи пока имеют "тестовый" характер и требуют наличия опыта и возможности "отшить" старый биос в случае неудачи. Могу лишь добавить, что уделяю таким моментам особое внимание. Ну, и в завершение этого пункта, если патчер правит бутблок в файле прошивки - будет обязательно выдано соответсвующее сообщение ("Warning! BootBlock was changed! Flashing BIOS only WITH BootBlock!").

 

Насколько это безопасно?

Безопасности работы патчера было посвящено большая часть времени работы над ним. Патчер имеет следующие виды "защит" в случае некорректной работы (зависание, "тёмный экран" и т.п.) в процессе загрузки компьютера.

1. Виртуальный "Dual-BIOS".

Из-за того, что все изменения хранятся в одном файле (а не "изначально" внесены в различные "модули" биоса), патчер имеет возможность грузиться с "двух" биосов - "патченого", то есть, в который были внесены все найденные_ошибки/добавленные_фичи и "оригинального", т.е. когда эти изменения не вносятся. Такой "откат" ("невнесение" изменений) происходит, если в процессе загрузки нажать клавишу "-" (на буквенной либо цифровой клавиатуре). Модуль изменений просто считывает нажатую клавишу и в случае "минуса" просто пропускает этап внесения измения ВСЕХ измений - получается, что компьютер загружается со "старого" биоса.

2. "Откат" при отсутствии клавиатуры.

К сожалению, нет "универсальной" инициализации контроллера клавиатуры для всех плат, поэтому иногда не срабатывает считывание нажатой клавиши. Для этого в качестве "отката" рассматривается также отсутствие подключённой клавиатуры. Если "модуль изменений" не получит отклика от клавиатуры (любой - DIN или PS/2, но не USB - про них патчер "не знает", т.е. не инициализирует, потому всегда будет считать, что она отсутствует) - включается "откат" (измения не грузятся). Впоследствие, когда на экране появится картинка, можно будет аккуратно подсоединить клавиатуру и "отшить" старый ("непатченый") биос. Несмотря на то, что подключать клавиатуру во время работы компьютера не рекомендуется, всё ж, во-первых, при аккуратности ничего ни с клавиатурой ни с матплатой не станется, а во-вторых, это лишь "аварийный" случай, который, скорей всего, никогда и не понадобится.

Если же взяться да прикинуть безопасность пользования патчером "в цифрах", то получим следующее. Я оцениваю (грубо/примерно):
- точность правки патчера ~90% minimum;
- вероятность срабатывания "отката" по клавише "-" ~90%;
- вероятность срабатывания "отката" без клавиатуры ~90%.
Итого получаем - 100*0.9 + 10*0.9 + 1*0.9 = 99.9%. Естественно, кто-то посчитает такой подсчёт "чрезмерно оптимистичным". Потому подойдём также и с точки зрения "закоренелого пессимиста", который, конечно, будет утверждать про "фифти-фифти";) Считаем: 100*0.5 + 50*0.5 + 25*0.5 = 87.5%. Ну, и "итого", с точки "трезво_мыслящего_человека";) : (99.9+87.5)/2=93.7%, что, наверное и стоит принять за минимальную надёжность работы патчера. ИМХО, эта цифра вполне соизмерима с "опасностью" многих других тонкостей перешивки (тот же "дядя Вася", бдеющий у рубильника и дожидающийся, пока вы решите перешить биос;) так что вопрос о надёжности, думаю - решён (по крайней мере для меня и людей имеющих хоть небольшой опыт в перешивке биоса).

 

Что "может" патчер?

Патчер "знает" биосы (т.е. работает с ними):
- ёмкостью: 1Mbit (128kB), 2Mbit (256kB), 4Mbit (512kB)
- версии: Award 4.5x, Award(Phoenix) 6.xx
- "платформы": Pentium - Socket5, Socket7, SuperSocket7, Pentium II/III Socket8/Slot1/Socket370(PPGA/FC-PGA/FC-PGA2), AMD K7 - Slot-A, SocketA, Pentium 4 (Socket423/Socket478)
- "асусовский стандарт" упаковки модулей биоса (который появился, начиная с CUSL/TUSL)

Патчер "умеет" добавлять поддержку CPU (в любой Award-BIOS, соответвенно, конечно, "платформе", которая детектится автоматически):
- AMD K6/K6-2/K6-III/K6-2+/K6-III+
- Intel Pentium Pro/Pentium II/Pentium III/Celeron
- AMD K7/K75/Athlon/Duron/Athlon 4/Athlon MP/Athlon XP (в текущей версии - в процессе отладки)
- Intel Pentium 4/Celeron-478 (в текущей версии - в процессе отладки)

В слово "поддержка" входит не только банальный вывод названия процессора (которое, кстати, выводится вместе с названием ядра и может быть изменено [название] самостоятельно), а все составные части этого слова - от корректной инициализации L2-кэша и корректного определения частоты/коэффициента умножения до добавления поддержки различных степпингов и "банального" добавления/обновления микрокодов. Тонкостей достаточно много и по сути - патчер "дописывает" всё то, что "недописал" производитель платы для корректной работы процессора.

Пояснение: Но нельзя забывать, что для поддержки "нового" процессора вашей платой после перешивки "патченого" биоса требуется ещё и "электрическая" совместимость его с платой. Т.е, например, в случае Coppermine/Tualatin ОБЯЗАТЕЛЬНО потребуются некоторые доделки платы (переходника) и/или процессора (см. "Переделка плат/переходников для поддержки FCPGA/FCPGA2-процессоров").

Патчер "умеет" делать поддержку HDD объёмом вплоть до 120Gb включительно. Точнее (и правильней) - исправлять имеющиеся ошибки в биосе (до пяти шт.), делающие невозможным (зависание во время детекта) работу с такими винчестерами. Просто после преодоления "барьера 8.4Gb" (подробности здесь - "Проблема "больших" винчестеров") биос "изначально", в принципе, должен был с ними работать, однако человеку свойственно ошибаться. А в Award-е работал не один человек.

Патчер "умеет" добавлять возможность выбора большего диапазона частот в BIOS Setup (т.е. изначально предполагается наличие самой возможности выбирать частоту из BIOS Setup). На некоторых платах это подразумевает лишь добавление некоторых "скрытых" биосописателями частот, а на других (большинство - от Intel), вообще, возможность "забыть" про перемычки на плате и делать всё из BIOS Setup.

Патчер "умеет" добавлять возможность включения асинхронного режима работы с памятью (так называемое "+PCI" - когда частота памяти выше частоты шины процессора) на VIA 693A/694X/694T (пояснение: на других - VIA693 и "ниже" асинхронность присутствует ЛИШЬ в "меньшую" сторону - когда частота памяти может быть МЕНЬШЕ частоты шины процессора). А также включение других вещей, ускоряющих скорость подсистемы памяти VIA-шных чипсетов - интерливинг (4-way), минимальные тайминги (2-2-2-5-2), IOQ Depth (8) и т.п. (это уже для всех VIA-чипсетов).

Патчер также добавляет (изменяет) некоторые другие мелкие опции, улучшающие интерфейс BIOS Setup. Например - выбор по умолчанию при выходе из BIOS Setup клавиши "Y" вместо "N" в старых (Award4.5x) биосах, установка даты по умолчанию на 2003-й год и другие действительно "мелкие", но во многих случаях крайне принципиальные вещи (особенно для людей "плотно" работающих с большим количеством плат, как я;).

Также, для P4-биосов, "изначально" имеющих поддержку Hyper-Threading, патчер "разлочивает" возможность выбора этой менюшки в BIOS Setup для любого процессора. (данная опция - в процессе тестирования).
Уточнение: Патчер НЕ_ДОБАВЛЯЕТ (пока;) поддержку HT, а именно "открывает" лишь возможность его выбора. Естественно, эта опция уже_должна_быть в биосе (иначе - что открывать?;). Проблема добавления HT в биосы изначально его не имеющие - в процессе изучения и при вашем участии/тестировании (см. "HyperThreading. Возможен ли на "старых" процессорах?") будет обязательно решена.

 

Другие возможности, которые находятся в текущей разработке:
- поддержка 64/128Mbit-ной памяти на P1-платформе (как правило - VIA VPX и некоторые i430TX), 256Mbit-ной памяти на P2/P3-платформе (как правило, речь идёт о VIA693A- и самых первых VIA694X-платах)
- добавление загрузки по "горячей клавише" с нужного устройства в биосы, не имеющие такой возможности

- Поддержка правки AMIBIOS и т.д.

И ещё много другого, на перечисление которого ушло бы слишком много времени, которое и так совершенно отсутствует.

 

Как работать с патчером?

Всё достаточно просто - копируете патчер в каталог с файлом прошивки (для "обработки") и запускаете:

bp имя_прошивки [ключи]

Ключи:

/c - Задать название процесора (выводимое при загрузке компьютера вручную (будет выводится для ВСЕХ вставленных в плату процессоров).

/d - Не удалять временные файлы.

/e - Показать информацию о файле биоса. Эта опция аналогична использованию "cbrom.exe/d" (только более "многоформатна"/информативна). При этом лишь выводится информация и ничего не "патчится".

/h - Вывод "хэлпа" (также выводится при запуске программы без переменных).

/m - Выбор пунктов для правки вручную. Перед каждым исправлением будет выдан соответсвующий запрос. Идеально подходит для поиска ошибки патчера. По умолчанию - патчер делает все пункты.

/p - Добавление "+PCI" (RAM_freq>CPU_freq) для плат на основе VIA 693A/694X/694T-чипсетов. (в процессе тестирования)

/s - Отключение срабатывания "отката"

/v - "разгон" (оптимизация скорости) памяти для VIA-based MB P1/P2/P3. (в процессе тестирования)

Примеры:
"bp 6130.bin /e"
"bp 6via86p.bin /p/c/d"


После "обработки" пропатченый файл нужно "зашить" в биос. Как? Если не в курсе - может, Вам не стоит это делать? Т.к. это ТРЕБУЕТ некоторых обязательных знаний. Правда это (процесс перешивки) очень много где в подробностях расписано (на том же iXBT.ru). Для тех, кто в курсе - поробности постепенно выкладываю на bios.rom.by.



п.с. описание патчера и его возможностей делалось на базе версиии 4.00.rc.7.1

 
 
Rambler's Top100 Рейтинг@Mail.ru
© 2002-2003 apple_rom