Автор: 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-адреса преобразовываются в ссылки автоматически.

maco

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

[off]
для чайника в этом деле
Для чайника в этом деле существуют более простые вещм, чем добавление модулей ручками :).
Compiller как раз их описал :).[/off]

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

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

TO Compiller: Спасибо за ответ. НО то, что вы написали, это я все перепробовал и ничего не получается. Тут описана суть проблемы https://rom.by/comment/195257
Сейчас прошу разъяснить как внедрить/обновить "ручками", о чем тут и писал apple_rom

maco

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

[off]Тогда разбирайтесь с заголовком lha-архивов, заодно почитайте Pinczakko's Guide to Award BIOS reverse engineering (здесь ссылки лежат). Поразбирайтесь с тем же WinHex'ом.
После этого желательно задавать конкретные вопросы, а не один глобальный типа "Опишите всю последовательность действий для чайника со всеми мелочами".[/off]

Compiller

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

Попробуйте ещё - вдруг совсем случайно сработает cbrom 2.20 в чистом DOS. Причём DOS лучше взять от Windows Millenium.
Вроде как там с DPMI повеселее.
Ещё вариант зашейте ваш RAID BIOS в пзушку и всуньте ПЗУшку в сетевушку типа Realtek 8139 (Acorp L100) и запустите матплату с сетевушкой и raid.
Но хотя это уже крайний вариант.

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

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

А возможно ли добавить в старый биос CPU ID новых процов. Железно они работают, а вот программно "Uncnown" и напряжение не меняется. (

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

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

Добрый день. У меня такая проблема - хочу научить свой ноут бук загружать ОС со встроенного картриддера, но увы в вариантах загрузки в биосе нет упоминания pci устроиств только usb помогите решить этот вопрос. Ноутбук acer aspire 6920G.

NiTr0

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

Amma
Можно. Хотя для начала обновитесь на последнюю прошивку от производителя платы.
И неплохо бы озвучить модель платы.

izmaya
Кард-ридер у вас как раз USB ИМХО.

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

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

NiTr0, материнская плата Asus M2N-SLI Deluxe: http://usa.asus.com/product.aspx?P_ID=szSFtrap7crpBaQE
последняя версия биоса 1701
Процессор конкретно AMD PHENOM II x2 550 BE(+так же все последние Феномы) Работает отлично, даже гонится, но не определяется ни в биосе, ни в винде соответственно, не мониторится нормально температура. И самое неприятное - нельзя корректно менять напряжение.

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

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

но все же как добиться появления варианта загрузки с картриддера?

Compiller

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

Перво-наперво попытаться пообщаться с техсаппортом Acer - модель вроде не очень старая может чего и ответят.