Автор: 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 лет назад

Хотел добавить в системный 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


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

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

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

17 лет назад

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

Baza

17 лет назад

прибить логошку
Имеется в виду EPA LOGO.

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

17 лет назад

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 лет 3 месяца назад

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