Не слишком сложно предположить, что исторические "экзерсисы" волнуют-интересуют крайне "узкий круг ограниченных лиц". Если Вы себя к таковым относите - тут можно найти все подробности, в том числе лично принять участие в архивебологических раскопках с целью нахождения раритетных подверсий (например, v1.0-1.1, v4.x) awdflash.
Ну, а для всех "нормальных" изложу описание работы с awdflash на примере как-то мною разобранной версии с цифрами 8.64. Нонче уже есть более свежие (например, V8.73) потому чуть позже просто внесу поправки-уточнения.
Программа старенькая (сколько лет - скажу позже и отдельно ), потому писалась, понятно, "чисто" для DOS. При попытке запустить-таки ее из-под Windows - достаточно корректно матернется, что многозадачные ОС ей строго противопоказаны. Не пробовал запускать ее под линуксами сотоварищи, но есть веские основания, что "пошлет туда же".
Касаемо требований уже к самому DOS-у, то как многократно его пережившая, четко отлавливает наличие "зловредных" для нее всяческих менеджеров виртуальной памяти и пр. (в результате шлет все туда же, куда и любителей "пускатьподвинду"). Однако, опять же, "береженого - Бог бережет", потому простое правило - запускаем из-под "голого DOS-a. Который, правда, в последнее время, стремительно уходит в прошлое, однако в критических ситуациях (к которым обязательно относится любая перешивка любого биоса) по-прежнему остается безальтернативным средством. После, как буду еще корректировать все изложенное, выложу какие-нибудь варианты его раздобыть и установить, ежели под руками не найдется.
AWDFLASH v8.64 (12/14) (C)Phoenix Technologies Ltd. 2005 All Rights Reserved
Usage: AWDFLASH [FileName1] [FileName2] [/<sw>[/<sw>...]]
FileName1 : New BIOS Name For Flash Programming
FileName2 : BIOS File For Backing-up the Original BIOS
<Swtches> ?: Show Help Messages
py: Program Flash Memory pn: No Flash Programming
sy: Backup Original BIOS To Disk File sn: No Original BIOS Backup
Sb: Skip BootBlock programming Wb: Always Programming BootBlock
cd: Clear DMI Data After Programming cc: Clear CMOS Data After Programming
cp: Clear PnP(ESCD) Data After Programming
LD: Destroy CMOS Checksum And No System Halt For First Reboot
After Programming Tiny: Occupy lesser memory
QI: Qualify flash part number with source file
E: Return to DOS After Programming R: RESET System After Programming
F: Use Flash Routines in Original BIOS For Flash Programming
cks: Show update Binfile checksum cksXXXX: Compare Binfile CheckSum with XXXX
NVMAC:XXXXXXXXXXXX NVGUID:XXXXXXXXXXXXXX
Support nForce Input MAC,GUID Function,with "/wb" to update MAC and GUID.
Example: AWDFLASH 6A69R000.bin /py/sn/nvmac:xxxxxxxxxxxx/wb
Командная строка запуска стандартная - имя прошивальщика, далее имя файла прошивки, которую хотим зашить в биос. Если желаем сохнанить копию биоса перед прошивкой - также далее указываем имя файла для этого.
В самом конце идут ключи. Наиболее популярные, предназначенные для того, чтобы в процессе прошивки awdflash "не задавал лишних вопросов":
py - (от ProgrammYes) - Да, точно, абсолютно уверен - прошивать!
pn - (от ProgrammNo) - Нет, прошивать не надо!
sy - (от SaveYes) - Да, сохранить копию перед прошивкой.
sn - (от SaveNo) - Нет, сохранять не надо.
e - Выйти в DOS после окончания процесса прошивки.
Данные ключики, думаю, вполне понятны даже для тех, кто впервые столкнулся с перешивкой биос, потому в особых комментариях не нуждаются. Например, зная их, уже можно написать себе bat-файлик, где будут указаны нужные ключики. Вообще, полезно выработать привычку использовать в хозяйстве подобные вещи - один раз разобрался, сделал "на свежую голову" командный файл со всеми настройками-ключами, записал его на дискету (флэшку и т.д) да забыл как страшный сон. И когда придет время воспользоваться - не придется снова лезть в гугль и снова что-то читать-вспоминать, что там за "хакерские" ключики и кто что обозначает.
Кстати, последний ключик (/e - Выход в DOS) рекомендую использовать - "на всякий пожарный". Дабы если вдруг в самый последний момент вспомнится, что был зашит "не совсем тот" (чаще - "совсем не тот") - можно было еще что-то предпринять. Хотя по секрету могу сказать, что даже если этот ключ не был введен, а в процессе прошивки выяснилось, что зашито не то и на экране лишь пугающая надпись "Нажмите F1 для перезагрузки" - помните об "хакерской" уловке - нажать клавишу F10. Даже несмотря на ее отсутствие в списке возможных, awdflash (при чем любой версии) резко и послушно вернется в DOS. Где будет возможность еще раз прошить (не-)нужный биос.
Итак, по ходу мы уже можем записать для себя две основные комбинации ключиков. Одна для того, чтобы просто сохранить биос:
awdflash имя_копии /pn/sy/e
Все просто - НЕ перешивать, ДА - сохранить, и ВЫЙТИ в DOS после сей процедуры.
Такую комбинацию используем ПЕРЕД прошивкой для сохранения копии. Не рекомендую "смешивать" прошивку нового биоса и сохранение старого (в одной операции/запуске). Спешка в данном процессе строго противопоказана, а запустить два бат-файла не такое и утомительное дело. Кстати, о второй комбинации, для прошивки нового биоса, с учетом рассмотренных выше ключей, получим:
awdflash имя_прошивки /py/sn/e
Также просто - Да - перешивать, НЕ сохранять, и ВЫЙТИ в DOS после сей процедуры.
Предыдущей комбинацией мы уже сохранили биос, потому еще раз это дело совершенно ни к чему. А в случае частой перешивки биоса подобный подход (с разделением операций сохранения-прошивки) тоже крайне удобен - нет смысла каждый раз сохранять биос, достаточно одной первой, самой старой копии, и для прошивки можно будет запускать собственно лишь "прошивочную" комбинацию, помня, что "всякий пожарный" случай мы уже учли в начале опасных мероприятий.
Теперь постепенно будем разбирать все "более хакерские" ключики.
сс - (от СlearCMOS) - Очистить CMOS после прошивки.
Даже далекие от "железных" подробностей (компьютера), как правило, обязательно слышали про CMOS. В простом случае это есть "энергонезависимая память". Т.е. то место, куда перед выключением компьютера заносятся настройки биоса (в том числе выбранные Вами в BIOS-Setup). Известная также большинству "батарейка в компьютере" - как раз и питает эту "энергозависимую память". Выняв которую на некоторе время (от 5-30 секунд по техусловиям до получаса-"на ночь" при навсякислучайном подходе) можно не менее успешно очистить CMOS.
В частности, именно поэтому (сброс сохранненых ранее настроек, которых бывает совсем немало) я данный ключик не рекомендую к использованию. Вероятность того, что новая прошивка не заработает по этому поводу - мизерная, плюс у Вас обязательно будет возможность исправить ситуацию после вынув батарейку. Потому в "рекомендуемую" прошивочную комбинацию я его не включаю.
Следущие популярные и еще "более хакерские" ключики:
сp - (от СlearPnP) - Очистить область ESCD после прошивки.
сd - (от СlearDMI) - Очистить область DMI после прошивки.
Что это за хитрые ESCD(PnP)- и DMI-области, думаю, подробно объяснять смысла нет. Вкратце - в них хранится информация о конфигурации компьютера и по сути это также можно считать "энергонезависимой памятью". Просто размер CMOS (выше рассмотренной "энергонезависимой памяти") исчисляется всего лишь байтами (от 128 в старых до 512 в современных системах), а размер ESCD/DMI исчисляется килобайтами.
Однако в отличие от ключика /сс (очистки CMOS), данные два ключа настоятельно рекомендуются к использованию, т.к. по статистике незапуск системы с некорректными записями в ESCD/DMI крайне вероятен. При чем даже строго "правильный" биос (для текущей матплаты), просто более новой версии - запросто может посчитать "некорретными" записи, сделанные его предшественником (от биоса предыдущей версии). Так что с учетом этих ключиков подправляем нашу комбинацию для прошивки:
awdflash имя_прошивки /cd/cp/py/sn/e
Для подавляющего большинства, кому нужно "просто прошить" вышеописанных ключей хватит и дальше им можно не читать. Даже я бы сказал - нужно (не читать). Ибо совсем не разбираясь в обсуждаемой проблеме - можно лишь испортить, пытаясь применить не до конца понятные способы работы с прошивкой биос. Потому с оными прощаюсь, удачных Вам прошивок!
Итак, если Вы все еще читаете, значит, либо думаете, что Вас можно отнести к хакерам, либо так оно и есть. Ладно, главное - я предупредил.
Самый популярный "хакерский" ключик:
f - (от Force) - Шить!
В большинстве описаний данный ключ переводят как:
/F - Программировать средствами системного BIOS. Большинство современных BIOS содержат процедуры записи FlashROM. Используя ключ /F, программа AwardFlash программирует FlashROM алгоритмами, которые находятся в текущей версии BIOS. Если материнская плата выполнена с такими конструктивными особенностями, что использование алгоритмов Award Flash Writer не приводит к успешному результату, следует воспользоваться ключом /F.
В 99.999% случаев ни читатели, ни те, кто перепечатал это описание у других, ни даже авторы подобных строк - даже близко не понимают смысла написанного. Не пытаясь вдаваться в дискуссию по поводу "так ведь же написано - F: Use Flash Routines in Original BIOS For Flash Programming", просто отвечу - "вам шашечки или ехать?"
Так вот, для нас главное, что данный ключик очень важный и при установке влияет на принципиальные вещи:
Не проводятся проверки на совпадение BIOS ID прошиваемого файла и текущей прошивки
Не делаются проверки на совпадение BIOS_Lock фичи (для относительно новых систем)
Да и, вообще, не проверяется - Award-овский ли это биос.
Что обычно и нужно достаточно разбирающимся пользователям. Ведь тот же пропатченый биос awdflash с "обычными" ключиками запросто может отказаться шить, ругаясь на несоответствие PartNumber и т.п. Мало того, в некоторых случаях даже новые версии (биосов) имеют подобные отличия, что вызывает крайнее недоумение пользователей, когда в комплекте с прошивкой идет awdflash, который при этом яростно отбивается от попыток прошить новую версию биоса (даже если она действительно "та"). Так вот, чтобы реально пользоваться awdflash как прошивальщиком нужно две вещи:
- четко понимать, что Вы делаете.
- использовать ключик /f
Итого, на данный момент получаем следующую комбинацию ключиков для прошивки:
awdflash имя_прошивки /cd/cp/py/sn/e/f
Именно такую комбинацию я рекомендую в статье (по перешивке). Ее и нужно рассматривать как основную и решающую 99% проблем.
Далее разберем "еще более хакерские" ключики. Хотя правильней их назвать для "тонкой настройки", почему применимость их в реальных ситуациях крайне маловероятна. Почему лучше рассматривать оные как набор для "энтузиастов" (которые при этом хорошо понимают "для чего, собственно").
Sb - (от Skip BootBlock programming) - Шить без бутблока.
Wb - (от Write BootBlock) - Шить c бутблоком.
В бутблоке, как известно, находится "игла кощея". Повреждение которого приводит к умиранию компьютера по причине, что после включения именно бутблок получает управление. Потому производители биосов стараются никогда не менять эту часть прошивки (как правило, это последние 16-32кБ биоса, которые в памяти размещаются "в самом верху", в том числе где и находится "стартовый" адрес FFFF:FFF0). (Не менять, конечно же, для одной версии конкретной платы.)
В бутблоке кроме главного загрузчика компьютера располагается также и аварийная программа восстановления. В общем, важность бутблока делает крайне принципиальным вопрос его надежности, для чего и нужен, собственно, этот ключик - шить все, а бутблок не трогать. В результате, если что-то пойдет не так - останется главная часть, которая в аварийном порядке позволит спасти ситуацию (или хотя бы попытаться это сделать).
Алгоритм использования ключа следующий. Если параноидально боимся за бутблок и нужно во что бы ни стало "выжить" - добавляйте к ранееизученной комбинации перешивки еще и ключик /sb.
Если продолжаете себя относить к "продвинутым" - смело добавляйте в набор /wb. (Что я и рекомендую делать. )
Итого, комбинаций наших ключиков становится все больше, потому сейчас и дальше буду выделять лишь именно самый "крутой" наборчик. С бутблоком это:
awdflash имя_прошивки /wb/cd/cp/py/sn/e
Если ключи /sb и /wb не были указаны, то прошивальщик действует "по-простому" - если бутблок файла прошивки и бутблок в (текущем) биосе одинаковые - принудительно используется "внутренний" /sb. А из-за того, что подавляющее большинство биосов (одной и той же модели платы) имеют абсолютно одинаковые бутблоки - обычно это и выливается в сплошной "Sb по умолчанию".
"Декоративные операции".
R - (от RESET after programming) - Перегрузиться после прошивки.
После прошивки - сразу же перегрузиться. Рекомендуется использовать лишь тем, у кого прошивка биосов - "на потоке" (работники сервисных центров, например). Остальным - лучше "не спешить".
ns - (от No Show messages) - Не показывать сообщения.
Не мусолить глаза и делать свое дело "тихо-мирно". Аналогично предыдущей - рекомендуется больше для работников сервисных центров, когда, например, при клиенте приходится заниматься подобным мероприятием (обычно - в авральном порядке ). И чтобы не последовало лишних вопросов на тему "а что это вы такое злобное делаете с моей бесценной платой" - поможет сэкономить всем присутствующим немного нервов.
LD - (от Low Destroy) - Загрузиться после перезагрузки с "заводскими" значениями СMOS и при этом без остановки по F1.
Ключик с первого взгляда похож на /сс (ClearCMOS). И смысл, в принципе, аналогичен - "поломать" значения в CMOS, чтобы свежепрошитый биос был вынужден загрузить значения по умолчанию и не зависнуть, если в новой версии изменится назначение каких-то ячеек CMOS-памяти.
Однако в реальности он является "комплиментарным" (к /сс) - или чистим весь CMOS или лишь нарушаем ему CRC. В случае чистки (/сс) - забиваются FF-ками все ячейки с 10h по 7Fh. В случае же /LD - изменяются лишь ячейки 10h (записывается DDh), 11h (записывается CCh) и 12h (записывается BBh), что и приводет к нарушению CRC. Кроме того, второй бит ячейки 11h сбрасывается в 0, а он отвечает за то, оставливаться ли, если в процессе POST были ошибки (в том числе полученная неправильная CRC) - предлагая либо нажать DEL и войти в BIOS Setup либо нажать F1 для дальнейшей загрузки с значениями по умолчанию.
Как видно, использование данного ключика - строго "по вкусу".
Tiny - Использовать минимум оперативной памяти.
По умолчанию awdflash использует 128kB для основного буфера (равен полному размеру распакованного original.tmp, хотя это буфер "общего" назначения) и активно работает с расширенной памятью (в линейном режиме). При указании флажка /Tiny - ограничивается лишь 4кБ-ным буфером и все операции проходят только в "нижней" памяти (640кБ). Кроме того многие функции изменяются в сторону ограничения проверок, вывода на экран и т.п.
В общем, этот во многом "отладочно-артефактный" ключик сложно назвать востребованным и его применение можно посоветовать лишь для "совсем критических" ситуаций - когда какие-то проблемы с памятью и у Вас нет никаких других вариантов.
Замечание: выбор этого ключика приводит к принудительному установлению и ключика /f ("внутри" awdflash).
m256 - (от Memory buffer 256kB) - Использовать 256кБ-ный основной буфер.
В противовес /Tiny - этот задает 256кБ для основного буфера не "запрещая" пользоваться расширенной памятью и вносить какие-то ограничения. Однако и особых "улучшений" не дает, а при использовании /f практически игнорируется. Потому его использование аналогично случаю с /Tiny - в основном это чисто "отладочный" ключик и им можно больше лишь "баловаться", чем реально использовать.
ncksm - (от No count ChecKSuM) - Не проверять контрольную сумму.
По умолчанию проходит достаточно логичная операция проверки контрольной суммы (прошиваемого файла). Если по каким-то непонятным причинам нужно зашить файл с плохой CRC и при этом политические предубеждения не позволяет использовать ключик /f (с которым, как говорил - минимум проверок, в том числе - CRC не проверяется), то это как раз тот "золотой ключик".
Итого, закончив словоблудие, /ncksm - достаточно "декоративный" ключ, может понадобиться лишь хитрым писателям хитрых бат-файлов в хитрых сервисных центрах.
cks - (от Show ChecKSuM) - Вычислить и отобразить CRC прошивки.
Хотите узнать CRC биоса (файла прошивки)? Тогда это как раз то, что Вам нужно. Длинный список "полезностей" этого ключа на этом и заканчивается.
nobeep - (от No Beep) - Не пищать!
Работаете ночью, проживая в квартире с тещей и маленькими детьми с неотключаемым динамиком в корпусе компьютера? Не расстраивайтесь, Вы не одиноки, в Award Software тоже есть такие (как минимум - были), потому они позаботились и добавили этот чудесный ключик!
QI - (от Qualify ID) - Проверить BIOS ID прошивки и биоса.
Если нужно строго "не промахнуться" и прошить именно "тот" биос - можно использовать этот ключик, который сверяет BIOS ID файла прошивки с текущим в биосе и откажется прошивать при несовпадении.
Однако на практике не раз возникают случаи, когда даже "совершенно официальная" новая версия "почему-то" не проходит успешно подобную проверку, в результате чего полностью "доверять" данному ключу нельзя. Кроме того, как и многие другие ключи, при установке /f - он игнорируется. Потому рекомендовать его можно больше лишь для написания собственных бат-файлов, где будет возможность задать "строгую проверку".
count - (от Сount of Starts) - Считать количество запусков.
Истинные маньяки батфайлов и просто те, кто любит все считать - могут быть довольны. Специально для них есть возможность узнать, сколько же раз был запущен awdflash. При установке данного ключа в текущем каталоге ведется учет количества запусков в файле 'awdflash.txt' (который автоматически создается при первом старте), куда и записывается их число, увеличиваясь на единицу при каждом новом старте (с ключиком /count в строке запуска).
ct:X - (от Сount of Trying) - Количество попыток записи во флэш.
Весьма полезный местами ключик - возможность задать количество попыток записи в микросхему биоса. Формат простой, после /ct: задаем Х-количество попыток. В результате, если в процессе записи произошла ошибка, awdflash еще Х раз повторяет процедуру прошивки. Очень хороший вариант для сбойных/потенциально сбойных микросхем, когда нет возможности найти замену - рекомендую к использованию.
NVMAC:XXXXXXXXXXXX - (от Set NVidia MAC-address) - Задать MAC-адрес (интегрированной в чипсет) сетевой карты (только для плат на nVidia).
NVGUID:XXXXXXXXXXXXXX - (от Set NVidia GUID) - Задать GUID адрес FireWire (только для плат на nVidia-чипсетах).
Два ключика специально для обладателей материнских плат на чипсетах от nVidia. Прописывая значения в ХХ..Х можно задать/изменить MAC/GUID-адреса для встроенных (в чипсет) Firewire/LAN. Если эти ключи не указаны - остаются текущие.
Замечание: MAC/GUID обычно располагаются в бутблоке (точно узнать можно, глянув базовые адреса оных, которые располагаются за 32/28 байтов до конца прошивки), потому при желании их задать/изменить нужно шить с бутблоком.
device:XXXX - (от Force xxxx-device FlashType) - Принудительно шить как хххх-тип флэшки.
Ключ, позволяющий принудительно задать тип флэшки (хххх = Flash ID). Несмотря на кажущуюся "крутость" данного ключа, вариантов его применения не слишком много. Т.к. если имеются проблемы с детектом FlashID стандартным способом, то с бОльшей вероятностью можно предположить проблемы в системе нежели просто проблемы самой микросхемы, которая остается рабочей, "не признаваясь", кто она такая и как ее зовут.
Т.е. данный ключ имеет право на использование - когда все работает и нужно прошить исправную микросхему, которая по каким-то при причинам не выдает свой FlashID (почему ее и не может продетектировать прошивальщик и без чего после, соответственно, не может перешить). Однако в подавляющем большинстве случаев "недетекта" виновата не микросхема и принудительная попытка в таких случаях как правило приводит к печальным результатам. Потому для использования данного, иногда действительно, крайне полезного ключа - нужно очень четко понимать "кто виноват".
Чуть позже список поддерживаемых FLASH ID выложу отдельной страничкой.
nab - (от Not AwardBIOS) - Не AwardBIOS.
Ключик, четко дающий понять прошивальщику - работаем не с AwardBIOS. В результате, понятно, пропускаются всяческие проверки, характерные только для AwardBIOS-файлов.
Практической ценности данный ключик в свете намного более "правильного" /f - не представляет. Потому сфера применения - хитрые бат-файлы для энтузиастов-любителей.
unm - (от Use Not Match size images for flash) - Не учитывать несовпадения объемов биоса и прошивки.
Данный ключ заставляет прошивальщик не учитывать факт несовпадения размера файла прошивки и прошиваемого биоса. Может оказаться крайне полезным в случаях, когда под рукой окажется микросхема большей мегабитности (объема), чем "родная". Потому рекомендуется помнить и применять в таких (например, нужно прошить 2Мбит-ную, а есть только 4Мбит-ные аналоги) ситуациях.
sdp - (от Show Default Parameter) - Вывести значение по умолчанию.
smi - (от Use SMI subroutiness for flash) - Прошивать с использованием SMI-процедур.
nbl - (от No check BIOS Lock) - Не проверять BIOS Lock.
hide - (от Use Hide option for ARF35LV020) - Использовать hide-опцию для прошивки ARF35LV020.
bb - (от BIOS + BIOS ) - Поддержка дуал-биосных систем.
При использовании этого ключика - автоматически "включается" и /f.
ssd - (от Solid State Disk ) - Поддержка твердотельных дисков.
новые...
mac1:XXXXXXXXXXXX - (от Set MAC-address) - Задать MAC-адрес (интегрированной в чипсет) сетевой карты.
guid1:XXXXXXXXXXXXXX - (от Set GUID) - Задать GUID адрес FireWire .
Севко Роман aka apple_rom.
Продолжение и изменения следуют...
Если просканировать старший сегмент (F000) BIOS на строчку $@AWDFLASH, лежащую на границе
параграфа, то сразу за ней будут 12 или 13 адресов функций работы с FLASH
Все функции обязательно лежат в F000-сегменте и завершаются командой Ret Far
Зная эти функции, написал маленькую прожку для превращения "писюхи" в программатор:
благодаря этому удалось прошить РППЗУ M27C2001 от GI, 12v рядом в кроватке от Flash !!!
Теперь копия моей БИОС всегда под рукой и в ПЗУ !!!
ИМХО Велика работа.
ТОлько забыл ключи /iu /op/ew
Отправить комментарий