Автор: Pavel , 16 сентября 2007
На форуме часто встречаются просьбы помочь с добалением/удалением модулей в прошивку. Собственно мне надоело писать по сто раз одно и то же и решил я накатать маленькую статейку в Вики по этому поводу. По мере поступления новых вопросов на форуме, статья будет редактироваться, дополняться конкретными примерами. Это только черновик. Пока рассмотрена работа только с обычным Award BIOS. Примеры работы с ASUS Award BIOS и другими "брендовыми" прошивками будут добавлены по мере поступления вопросов.

Вот еще покопаюсь с AMIBCP и добавлю описание работы с ним.


Итак для добавления/удаления/замены модулей в Award BIOS существует утилита cbrom. На данное время актуальна версия 1.82
Здесь я коротко опишу примеры работы с Award BIOS для добавления новых модулей в прошивку. Это может пригодиться при установке в материнскую плату дополнительных контроллеров, допустим распространенного RAID-контроллера на чипе VIA-6421.

Типы модулей:
1. /isa - (уже не актуально, но скоро добавлю точное описание процедуры) 2. /vga - модуль встроенной видеокарты 3. /logo - тот самый логотип, который мы видим при включении материнской платы 4. /pci - модуль какого либо PCI-устройства. Это может быть BIOS RAID-контроллера, bootrom сетевой карты, etc. 5. /awdflash - интегрированный в BIOS прошивальшик. С его помощью производится обновление прошивки. 6. /cpucode - модуль микрокодов CPU. Иногда для запуска материнки с новым процессором требуется его обновление 7. /epa - логотипчик, который мы видим в правом-верхнем углу экрана при запуске матери. 8. /fnt0 - 5 Шрифты для многоязычных BIOS-ов
Есть еще достаточно много типов модулей, но в данном случае их знание нам не нужно.

Рассмотрим добавление модуля RAID-контроллера VIA-6421 в прошивку матплаты EPOX EP-8K3AP

Для начала получим список модулей уже имеющихся в прошивке
D:\Bios\BP>cbrom182 8k3ap.bin /d cbrom182 V1.82 [04/11/07] (C)Phoenix Technologies 2001-2007 ******** 8k3ap.bin BIOS component ******** No. Item-Name Original-Size Compressed-Size Original-File-Name ================================================================================ 0. System BIOS 20000h(128.00K) 13C01h(79.00K) 6a6lvpaj.BIN 1. XGROUP CODE 0B9C0h(46.44K) 0826Ch(32.61K) awardext.rom 2. ACPI table 035FEh(13.50K) 015B3h(5.42K) ACPITBL.BIN 3. YGROUP ROM 06390h(24.89K) 0384Ah(14.07K) awardeyt.rom 4. GROUP ROM[ 0] 039C0h(14.44K) 01B0Ch(6.76K) _EN_CODE.BIN 5. PCI ROM[A] 0C000h(48.00K) 06FFCh(28.00K) 372232b.rom 6. Flash ROM 09D8Eh(39.39K) 05638h(21.55K) AWDFLASH.EXE Total compress code space = 34000h(208.00K) Total compressed code size = 2EDAAh(187.42K) Remain compress code space = 05256h(20.58K) ** Micro Code Information ** Update ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID ------------------+--------------------+--------------------+-------------------

При простой попытке добавить модуль 6421.rom cbrom ругнется на недостаток места в прошивке
D:\Bios\BP>cbrom182 8k3ap.bin /pci 6421.rom cbrom182 V1.82 [04/11/07] (C)Phoenix Technologies 2001-2007 Adding 6421.rom ....... 48.8% 8k3ap.bin have not enough space for adding ROM. (Over 2694h bytes)

Значит нужно удалить что нибудь нам ненужное. В данном случае это интегрированный в прошивку флешер AWDFLASH.EXE
D:\Bios\BP>cbrom182 8k3ap.bin /awdflash release cbrom182 V1.82 [04/11/07] (C)Phoenix Technologies 2001-2007 [Flash ROM] ROM is release

Ну и собственно теперь добавляем модуль RAID-контроллера
D:\Bios\BP>cbrom182 8k3ap.bin /pci 6421.rom cbrom182 V1.82 [04/11/07] (C)Phoenix Technologies 2001-2007 Adding 6421.rom ....... 48.8%

Смотрим, что получилось
D:\Bios\BP>cbrom182 8k3ap.bin /d cbrom182 V1.82 [04/11/07] (C)Phoenix Technologies 2001-2007 ******** 8k3ap.bin BIOS component ******** No. Item-Name Original-Size Compressed-Size Original-File-Name ================================================================================ 0. System BIOS 20000h(128.00K) 13C01h(79.00K) 6a6lvpaj.BIN 1. XGROUP CODE 0B9C0h(46.44K) 0826Ch(32.61K) awardext.rom 2. ACPI table 035FEh(13.50K) 015B3h(5.42K) ACPITBL.BIN 3. YGROUP ROM 06390h(24.89K) 0384Ah(14.07K) awardeyt.rom 4. GROUP ROM[ 0] 039C0h(14.44K) 01B0Ch(6.76K) _EN_CODE.BIN 5. PCI ROM[A] 0C000h(48.00K) 06FFCh(28.00K) 372232b.rom 6. PCI ROM[B] 0F800h(62.00K) 0792Ah(30.29K) 6421.rom Total compress code space = 34000h(208.00K) Total compressed code size = 3109Ch(196.15K) Remain compress code space = 02F64h(11.85K) ** Micro Code Information ** Update ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID ------------------+--------------------+--------------------+-------------------

Теперь просто для примера рассмотрим случай с удалением одного из PCI-модулей, когда их несколько. Тут все еще проще.
Cbrom сам спрашивает какой именно модуль мы хотим удалить.
Удаляем добавленный нами модуль RAID-контроллера:
D:\Bios\BP>cbrom182 8k3ap.bin /pci release cbrom182 V1.82 [04/11/07] (C)Phoenix Technologies 2001-2007 PCI ROM - - - [A] : 372232b.rom PCI ROM - - - [B] : 6421.rom Enter a choice:b [PCI-B] ROM is release D:\Bios\BP>cbrom182 8k3ap.bin /d cbrom182 V1.82 [04/11/07] (C)Phoenix Technologies 2001-2007 ******** 8k3ap.bin BIOS component ******** No. Item-Name Original-Size Compressed-Size Original-File-Name ================================================================================ 0. System BIOS 20000h(128.00K) 13C01h(79.00K) 6a6lvpaj.BIN 1. XGROUP CODE 0B9C0h(46.44K) 0826Ch(32.61K) awardext.rom 2. ACPI table 035FEh(13.50K) 015B3h(5.42K) ACPITBL.BIN 3. YGROUP ROM 06390h(24.89K) 0384Ah(14.07K) awardeyt.rom 4. GROUP ROM[ 0] 039C0h(14.44K) 01B0Ch(6.76K) _EN_CODE.BIN 5. PCI ROM[A] 0C000h(48.00K) 06FFCh(28.00K) 372232b.rom Total compress code space = 34000h(208.00K) Total compressed code size = 29772h(165.86K) Remain compress code space = 0A88Eh(42.14K) ** Micro Code Information ** Update ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID ------------------+--------------------+--------------------+-------------------


Жду критики :) Конструктивной ;)
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

Unknown BIOS (не проверено)

17 лет 1 месяц назад

Хотел добавить в системный BIOS, BIOS адаптера VIA VT6421, но не хватает места. По описанию в BIOSе есть прошивщик, подскажите, как этот модуль должен называться и что еще можно удалить.

AWARD BIOS 6.0PG

0. system BIOS---------------------------------------8pe800.bin
1 XPGROUP CODE------------------------------------awardext.rom
2 ACPI table-------------------------------------------ACPITBL.BIN
3. EPA LOGO-------------------------------------------award.Bmp
4. YGROUP.ROM---------------------------------------awarddeyt.rom
5.GROP ROM[ 0]---------------------------------------_EN_CODE_BIN
6. PCI ROM[A]------------------------------------------rtspxe_m.lom
7. OEM0 CODE------------------------------------------CBF.BIN
8. NC-CPUCODE-----------------------------------------NCPUCODE.BIN


savely

17 лет 1 месяц назад

6. PCI ROM[A]------------------------------------------rtspxe_m.lom

ВIOS сетевой карты, можно удалить, если не нужна загрузка по сети.

alex003 (не проверено)

17 лет 1 месяц назад

Мало, еще надо 6,77К освобождать, что еще посоветуете

Baza

17 лет 1 месяц назад

прибить логошку

savely

17 лет 1 месяц назад

Имеется в виду EPA LOGO.

Unknown BIOS (не проверено)

17 лет 1 месяц назад

basa, saveliy спасибо за подсказку.
Всё равно не вмещается, наверно что-то не так делаю

TRiT0N (не проверено)

16 лет 11 месяцев назад

Всем Привет.
Отличная статья. Спасибо.
Но вот столкнулся с другими компонентами в описании CBROM.
И так оговорюсь сразу, что мат. плата ASUS P4S800-MX без sata на борту. Есть контроллер на VIA-6421. Нужно заставить мат. плату. грузится с sata hdd.
BIOS M/B тут: ftp://ftp.asus.com.tw/pub/ASUS/mb/sock478/p4s800-mx/
BIOS контроллера тут: http://esasoft.narod.ru/6421V431.zip
Лог cbrom версии 1:[php]CBROM32_149 1011C.bin /d
CBROM32 V1.49 [01/27/05 Release] (C)Phoenix Technologies 2001-2005
******** 1011C.bin BIOS component ********
No. Item-Name Original-Size Compressed-Size Original-File-Name
0. System BIOS 20000h(128.00K) 10486h(65.13K) System.ROM
1. Other(6000:0000) 089C0h(34.44K) 04728h(17.79K) Group2.ROM[/php]Лог cbrom версии 2:[php]CBROM 1011C.bin /d
CBROM V2.07 (C)Award Software 2000 All Rights Reserved.
******** 1011C.bin BIOS component ********
No. Item-Name Original-Size Compressed-Size Original-File-Name
0. System BIOS 20000h(128.00K) 10486h(65.13K) System.ROM
1. Other(6000:0000) 089C0h(34.44K) 04728h(17.79K) Group2.ROM
2. Other(0000:0000) 775000h(7636.00K4923CFh(4680.95K)[/php]Вот попробовал добавить из CBROM под ASUS. Лог:[php]ACBROM.EXE 1011C.bin /pci 6421.rom
Adding 6421.rom ....... 48.8%

ACBROM.EXE 1011C.bin /d
CBROM32 V1.15 [Oct 3 2007 Release] (C)ASUSTeK Computer Inc. 2007
******** 1011C.bin BIOS component ********
No. Item-Name Original-Size Compressed-Size Original-File-Name
0. System BIOS 20000h(128.00K) 10486h(65.13K) System.ROM
1. Other (6000) 089C0h(34.44K) 04728h(17.79K) Group2.ROM
2. PCI ROM[A] 0F800h(62.00K) 0792Ah(30.29K) 6421.rom[/php]Информация по теме:
https://rom.by/forum/Pomogite_pozhalujsta_dobavit_modul_v_bios_dlja_mplaty_Asus?page=2
awdbedit.exe ведет себя так же не корректно. acbrom 2.08 вылетает.
У кого нибудь есть какие либо идеи?
Отвечаю всем у кого такая же проблема:
Вернуть в магазин, пока не прошло 14 дней. Объяснить, что контроллер не загрузочный по причине того, что в нем отсутствует bios. Покупался не для того, что бы он был, а для того, что бы с него грузилась система. Вместо него я купил более дешевый, но зато рабочий контроллер на чипе Silicon Image на красном текстолите с 4мя портами SATA. Модель NONAME MA-SL3114. При загрузке компьютера видно лог контроллера, что он определяет HDD. В Windows подгружается драйвер контроллера и все ок. В интернете ищите драйвер для [Silicon Image SiI-3124], должен подойти.

П.С.: Если кто-то знает, чем редактировать эти bios`ы, то напишите сюда, возможно кому-то будет интересно. Возможно, такая утилита есть в архиве BIOS tool collection - BNOBTC, но найти в интернете данный архив достаточно проблематично (есть на торрентах).

Раз в этой теме есть описание модулей BiOS, то хотел бы уточнить, что за модули OEM [/oem0-7 : Add special OEM ROM to System BIOS]?

apple_rom

16 лет 11 месяцев назад

BIOS P4S800-MX - обычный "асусовский авард". Это значит, что за каждым модулем следует байт CRC, а не только за системным (original.bin у "родного" Award BIOS). Потому "обычные" cbrom сотоварищи и показывает корректно лишь первый за системным модулем. В то же время BIOS Patcher (старого розлива) и показывает, и работает с такими корректно:
Found 2Mbit Award BIOS (6.x)! =============================================================================== BIOS-PartName Segm:Offs Compress/Real_Size "Official" name - what`s meanining ------------------------------------------------------------------------------- System.ROM>>>>5000:0000>0001:045F/0002:0000>"original.tmp" - MAIN part Group2.ROM>>>>6000:0000>0000:4702/0000:89C0>"awardext.rom" - ALT part"original.t mp" - MAIN_2 part Group4.ROM>>>>A800:0000>0000:4923/0000:7750> Group3.rom>>>>A000:0000>0000:09D2/0000:1210> ACPITBL.BIN>>>4003:0000>0000:0DAA/0000:285B>"ACPITBL.bin" - ACPI table cpucode.exe>>>4001:0000>0000:8FAB/0000:A03A>"cpucode.bin" - microcodes GROUP21.ROM>>>4015:0000>0000:08CE/0000:2FF0> L1POSTStr.ro>>2400:0000>0000:05AD/0000:0AC4> rom\LOGO\awa>>4002:0000>0000:0279/0000:0642>"awardepa.bmp" - EPA picture rom\VGA\v69a>>4013:0000>0000:44B4/0000:8000> rom\NET\PXE_>>4011:0000>0000:6103/0000:A000> ------------------------------------------------------------------------------- CPU_microcodes (CPUID/version/type): ------------------------------------------------------------------------------- 0F0A>0014/Sock>>0F12>002E/Sock>>0F13>0005/Sock>>0F24>001E/Sock>>0F25>002B/Sock>> 0F27>0037/Sock>>0F33>000C/Sock>>0F34>0017/Sock>>0F34>0008/Sock>>0F41>0012/Sock>> 0F42>0003/Sock>>0F49>0003/Sock>> ===============================================================================
С учётом того. что в такой версии не используется общая CRC по всем модулям, как в "обычном" AwardBIOS (т.к. и так за кажды модулем есть своя CRC файла), то достаточно просто можно осуществить операцию внедрения/обновления "ручками".
1. Жмётся добавляемый файл.
2. Считается его 8bit-adding CRC и дописывается в конец.
3. Полученное дописывается в конец файловой цепочки модулей.
4. Если нужно заменить старый модуль "внутри цепочки" - поверх оного пишется вышеполученный файл+1byteCRC плюс оставшийся "хвост" из цепочки, следующих за заменённым модулем файлов. Например, в упомянутом BIOS это может быть файл GROUP21.ROM>>>4015:0000>0000:08CE/0000:2FF0>.

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

Unknown BIOS (не проверено)

16 лет 11 месяцев назад

Найден тот самый BIOS tool collection - BNOBTC:)
Скачал,проверил - оно!
Если не противоречит правилам,то даю ссылку:

http://rapidshare.com/files/169981456/bntbtc_-_6.1.20080913.rar

RA (не проверено)

16 лет 4 месяца назад

Вопрос в следующем: если в прошивку добавить модули ICH7RAID.BIN и ITE8212.ROM в бут блок ничего не надо дописывать? (иначе каким образом эти модули загрузятся во время исполнения биоса). Если ли разница в каком порядке расположены модули в прошивке, или есть какая то последовательность? Что означают эти модули: fron1.awd, b169d.pxe, ppminit.rom, dbf.bin, special.fnt ? биос от ga-8i945p pro.