Продолжаем исследовать возможности Flash Images Tool по внесению правок в BIOS и связанные с ним стуктуры.
В предыдущей статье «Редактируем BIOS» мы рассмотрели декомпозицию флеш-образа на составные части: регионы и разделы (партиции). Полученный в результате этим манипуляций образ базовой системы ввода и вывода годен к работе с утилитой AMIBCP.
Сейчас наша задача обратна к предыдущей — вернуть в файл измененный BIOS и собрать из имеющихся частей код для заливки во Flash ROM.
Обновление образа Flash Image
Для получения результирующего файла с обновлением необходимо загрузить бинарный файл BIOS в структуру Flash Image. Для этого нужно перейти в BIOS Region и двойным кликом активизировать строку меню Binary Input File:
В модальном окне следует указать путь к бинарнику, ранее отредактированному с помощью утилиты AMIBCP:
Успешное завершение этой операции приводит к тому, что параметр Binary Input File приобретает следующий вид:
Обратите внимание, что сейчас его значение равно $SourceDir\edited.rom вместо ранее полученного в результате декомпозиции d:\amibcp\amibios\Decomp\BIOS Region.bin. Теперь контент утилиты FTool готов к операции Rebuild.
Запустив ее с помощью клавиши F5 (или пункта Build Image из меню Build), контролируем финальную стадию процесса генерации нового образа Flash Image. Его следует искать в директории d:/amibcp/Build под именем outimage.bin.
Сообщения об ошибках
Ошибки, возникшие на этапе построения выходного файла, логируются в ftool.log и дублируются кодами завершения операции (Build thread exit code).
Одной из характерных ситуаций является сообщение The flash parts specified aren't big enough to hold the image that is being built!, смысл которой состоит в том, что вместо бинарного файла BIOS в меню Binary Input File вводится файл образа Flash Image.
Трактовка этой ошибки применительно к нашему примеру означает, что в результирующий файл размером 4 мегабайта не поместится он сам плюс служебная информация, хранящаяся в Descriptor Region и Manageability Engine Region. Вместо него в качестве бинарного файла необходимо указать edited.rom размером 2 мегабайта.
P.S.
Если вам понравилась статья либо, наоборот, не понравилась, если не получилось повторить описанный эксперимент или у вас есть предложения, то оставьте конструктивные комментарии и пожелания.