Модификация прошивки BIOS ноута ASUS A2500H/L, а именно - добавляем в прошивку BOOT загрузчик “Plop Boot Manager”.
Связано это с тем, что родная прошивка ASUS A2500H/L не особо хорошо “умеет” грузиться с USB, точнее (на мое мнение) вообще не умеет, потому, как все мои усилия закончились ничем. (в разделе Boot есть возможность включить boot c USB_ZIP устройства)и флешку ему подавай до 1Gb, не более. CD привод отдал душу богу уже давно.
Но ОС надо как-то устанавливать, поэтому было принято решение интегрировать (подшить) в Bios загрузчик Plop Boot Manаger-“маленький загрузчик, который грузит что угодно с чего угодно”. Ссылка на сайт автора - https://www.plop.at/en/home.html.
Не буду останавливаться на возможностях данного загрузчика, в сети предостаточно информации по нему.
Прежде чем начать хочу выразить Огромнейшую благодарность Роману (ник apple_rom) за оказанную помощь, техническую и моральную поддержку . Без участия Романа не родилась бы данная тема и не появился бы загрузчик в прошивке Bios Asus A2H/L.
Первым и самым важным моментом есть то, что необходимо запастись второй микросхемой BIOS c прошитой микропрограммой, которая используется в компе сейчас. Если микросхема запаяна в плату, необходимо выпаять ее и установить панельку(кроватку),в которую без труда можно будет вставлять резервную копию Bios, в случае не рестарта компа после прошивки.
Поскольку прошивка оказалась Asus-Award – утилит,(типа CBROM ,MODBIN)после долгих поисков, проб и неудач под него не нашлось, их просто не существует, а даже если и существуют, то мне не попадались. И поэтому прошивку править будем “ручками”. Первым делом понадобилось освободить место под новый модуль загрузчика, потому как в прошивке не оказалось свободных 30 Kb. Для этого запускаем утилиту >Bit14.exe a2h0213a.bin и в файле report1.dat(созданном Bit14.exe) смотрим состав модулей в нашей прошивке.
■ Award Decompression BIOS structure:
─────────────────────────────────────────────────────────────────
No. Item-Name Original-Size Compressed-Size Original-File-Name
──────────────────────────────────────────────────────────────────
0 System BIOS 20000h (128K) 114C5h (69,19K) stn.bin
1 IA-32 Microcode 502Ah (20,04K) 389Eh (14,15K) cpucode.exe
2 Other(6000:0000) 86D0h (33,7K) 43DEh (16,97K) AWARDEXT.ROM
3 Other(A800:0000) 6C81h (27,13K) 44B1h (17,17K) FILE1.ROM
4 Other(A000:0000) 1830h (6,05K) B58h (2,84K) AWARDEYT.ROM
5 ACPI table 3D38h (15,3K) 19DAh (6,46K) ACPITBL.BIN
6 Other(1002:0000) 1260h (4,59K) 7EFh (1,98K) crisis.bin
7 Other(8000:0000) 1525h (5,29K) 106Eh (4,11K) ADJ_A2H.ROM
8 LOGO1 ROM A000h (40K) 612Eh (24,29K) PXE_M18.ROM
9 OEM1 CODE C000h (48K) 728Dh (28,64K) 650lv2.08q
(Silicon Integr. Sys. (SiS) SiS650/1/GL/GX,740 GUI 2D/3D Accelerator BIOS)
10 LOGO BitMap 1888Ah (98,13K) 4725h (17,79K) POSTA7N4.OSB
11 Other(8013:0000) 124BAh (73,18K) 1C09h (7,01K) ASUSLOGO.BIN
──────────────────────────────────────────────────────────────────
Было решено выбросить модули всевозможных логотипов, в данном случае файлы №8;10;11
Для этого открываем a2h0213a.bin в hex редакторе(я использую Winhex) поиском по заголовкам –lh5- находим наши (PXE_M18.ROM,POSTA7N4.OSB,ASUSLOGO.BIN) модули и удаляем их из прошивки. Для тех, кто не вкурсе поясню про Lha архивы. Прошивка Bios состоит именно из модулей, упакованных с пом. Lha и, собранных в последовательность ,без пробелов. Поэтому для поиска начала модуля находим заголовок –lh5- ,отступаем на 2 байта влево (пример %.-lh5-)-это и есть начало Lha архива. Конец такого архива всегда “00”и после него следует байт CRC(FG 2D 15 55 00 DE)Байт CRC в конце каждого модуля, это фишка ASUS -
original.bin
CRC_original.bin
Awardext.bin
CRC_Awarext.bin
Cpucode.exe
CRC_Cpucode.exe
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Award Decompresion Bios
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Boot Block
CRC Bios
Таким образом, находим начало и конец ненужных модулей, выделяем и удаляем.
После, если потребуется, поджимаем модули, чтоб следовали один за другим без пробелов.
Должно получиться что-то вроде такого:
■ Award Decompression BIOS structure:
──────────────────────────────────────────────────────────────────
No. Item-Name Original-Size Compressed-Size Original-File-Name
──────────────────────────────────────────────────────────────────
0 System BIOS 20000h (128K) 114C5h (69,19K) stn.bin
1 IA-32 Microcode 502Ah (20,04K) 389Eh (14,15K) cpucode.exe
2 Other(6000:0000) 86D0h (33,7K) 43DEh (16,97K) AWARDEXT.ROM
3 Other(A800:0000) 6C81h (27,13K) 44B1h (17,17K) FILE1.ROM
4 Other(A000:0000) 1830h (6,05K) B58h (2,84K) AWARDEYT.ROM
5 ACPI table 3D38h (15,3K) 19DAh (6,46K) ACPITBL.BIN
6 Other(1002:0000) 1260h (4,59K) 7EFh (1,98K) crisis.bin
7 Other(8000:0000) 1525h (5,29K) 106Eh (4,11K) ADJ_A2H.ROM
8 9 OEM1 CODE C000h (48K) 728Dh (28,64K) 650lv2.08q
(Silicon Integr. Sys. (SiS) SiS650/1/GL/GX,740 GUI 2D/3D Accelerator BIOS)
Теперь прошиваем Bios мат.платы и перезагружаемся. Если все ок. переходим к подготовке файла загрузчика. Методику нашел на просторах интернет на forum.ixbt.com.
Понадобятся:
Порядок действий:
Нам нужно заменить загрузку с Lan на загрузку Plop
Полученный файл назовем plpbt_PCI.rom. Теперь нужно полученный файл добавить в прошивку Bios.Для этого, берем подобный- Award-овский Bios с которым нормально работает Cbrom.Я брал прошивку от Foxconn 461XP219.BIN.
С помощью
>cbrom198 461XP219.BIN /other 4011:0 plpbt_PCI.rom
добавляем загрузчик в прошивку от Foxconn, предварительно освободив под него место таким же образом, как я писал ранее. Теперь наш загрузчик добавлен с нужными заголовками в прошивку. Осталось его перенести из Foxconn в Asus прошивку. Для этого в HEX редакторе, в файле 461XP219.BIN находим модуль plpbt_PCI.rom, выделяем от начала(-lh5- минус 2 байта), до конца и копируем его в отдельный файл. В HEX редакторе oткрываем Asus Bios a2h0213a.bin,находим сразу за последним модулем ( 650lv2.08q ) пустое место (FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ) и сразу, без пробела, за байтом CRC вставляем наш ,вытащенный из Foxconn прошивки, файл plpbt_PCI.rom. Сохраняем всю прошивку и открываем в BIT14.exe.
■ Award Decompression BIOS structure:
───────────────────────────────────────────────────────────────────────
No. Item-Name Original-Size Compressed-Size Original-File-Name
───────────────────────────────────────────────────────────────────────
0 System BIOS 20000h (128K) 114C5h (69,19K) stn.bin
1 IA-32 Microcode 502Ah (20,04K) 389Eh (14,15K) cpucode.exe
2 Other(6000:0000) 86D0h (33,7K) 43E1h (16,97K) awardext.rom
3 Other(A800:0000) 6C81h (27,13K) 44B1h (17,17K) FILE1.ROM
4 Other(A000:0000) 1830h (6,05K) B58h (2,84K) AWARDEYT.ROM
5 ACPI table 3D38h (15,3K) 19DAh (6,46K) ACPITBL.BIN
6 Other(8000:0000) 1525h (5,29K) 106Eh (4,11K) ADJ_A2H.ROM
7 OEM1 CODE C000h (48K) 728Dh (28,64K) 650lv2.08q
(Silicon Integr. Sys. (SiS) SiS650/1/GL/GX,740 GUI 2D/3D Accelerator BIOS)
8 LOGO1 ROM 7400h (29K) 72DBh (28,71K) plpbt_PCI.rom
(Silicon Integr. Sys. (SiS) SiS900 10/100 Ethernet Adapter BIOS)
───────────────────────────────────────────────────────────────────────
■ Award Decompression BIOS Main CheckSums Status:
───────────────────────────────────────────────────────────────────────
No. Item-Name CheckSum Calculated-CheckSum Address Status
───────────────────────────────────────────────────────────────────────
0 System BIOS 80h 80h 114C5h Correct
1 IA-32 Microcode 0Bh 0Bh 14D64h Correct
2 Other(6000:0000) 25h 25h 19146h Correct
3 Other(A800:0000) 1Dh 1Dh 1D5F8h Correct
4 Other(A000:0000) F2h F2h 1E151h Correct
5 ACPI table 46h 46h 1FB2Ch Correct
6 Other(8000:0000) A5h A5h 20B9Bh Correct
7 OEM1 CODE 68h 68h 27E29h Correct
8 LOGO1 ROM ─── 8Bh ────── Absent
───────────────────────────────────────────────────────────────────────
В структуре файла видим добавленный модуль №8 как LOGO1 ROM – это из-за ID4011:0,нам это не мешает. Далее находим прочерки в графе checksum и addres,а между прочерков рассчитанный CRC модуля №8.Нужно “8B” записать в прошивку после модуля plpbt_PCI.rom сразу за нулевым байтом и сохранить прошивку. Контрольно ,еще раз открыть прошивку с пом. BIT14.exe и проверить модуль №8,должно быть так:
8 LOGO1 ROM 8Ch 8Ch 27E2Bh Correct
Прошиваем a2h0213a.bin во флеш, перезагружаемся и заходим в Bios Setup.
В разделе Boot в графе “Onboard Lan Boot ROM” - ставим Enable .В списке boot устройств, включаем “INT18 Dewice (Network)” и поднимаем его на самый верх, чтобы под №1 списка стоял INT18 Dewice. Перезагружаем и, если все сделано правильно,видим меню Plop загрузчика.
Можно пользоваться. При желании, для красоты, можно поменять надписи в Bios Setup скажем к примеру “Onboard Lan Boot ROM” заменить на “Plop Boot Manager Rom”.
Дополнение:
С моей точки зрения, иметь модифицированный bios и не видеть этого в bios setup – это, мягко выражаясь, не эстетично. Поэтому решено было заменить надпись “INT18 Device (Network)”и”On Board Lan Boot ROM” на что-то более правдоподобное, связанное с добавленным модулем загрузчика. Хотя все проделанное ранее уже является полностью работоспособным и можно вполне оставить как есть, решать каждому индивидуально. Я за эстетичность и выбор мой очевиден.
Открываем файл BIOS в HEX редакторе и находим модуль AWARDEXT.ROM .Далее, уже по знакомому сценарию: выделяем, копируем и распаковываем его. В распакованном виде вновь открываем его в HEX редакторе. Поиском находим текст “INT18 Device (Network)” и прописываем вместо него свою надпись латиницей “**Plop Boot Manager** ”,тут я не менял количество символов, не знаю наверняка, что произойдет, если добавить или убрать пару букв, вероятнее всего это не имеет значения, но экспериментировать не стал. Аналогично поступаем с другим заголовком, определяющим Boot по сети,(менеджер Plop добавлен, как сетевое устройство).
После, опять-же, знакомые процедуры-добавляем отредактированный модуль в “левую” прошивку от Award 6.0 c помощью, уже знакомого, CB-рома который нормально работает с этим “левым”Award-ом.( >cbrom198 461XP219.BIN /other 6000:0 AWARDEXT.ROM).И снова в HEX редактор, как и с модулем загрузчика, выделяем AWARDEXT.ROM от начала(-lh5- минус 2 байта), до конца и копируем его в отдельный файл. В HEX редакторе oткрываем Asus Bios a2h0213a.bin и меняем модуль AWARDEXT.ROM отредактированным. Тут внимание!!! Новый (редактированный AWARDEXT) может отличаться по размеру от оригинала. Необходимо проконтролировать:
1.Чтобы модуль (+байт CRC) был добавлен без пробелов и остатков старых модулей, если он (модуль) вышел короче по размеру;
2.Чтобы модуль своим “фостом” не затер следующий за ним модуль, если он длиннее …
3.Чтобы общий размер прошивки остался прежним (262144);
4.Чтобы модуль декомпрессора и бутблока остались на прежних местах в адресном пространстве.
И если все нормально, продолжаем.
Далее отредактированную прошивку открываем с помощью BIT.EXE и правим CRC модуля AWARDEXT.ROM, как делали это с модулем загрузчика немного ранее.
Вложение | Размер |
---|---|
461xp219.bin | 256 КБ |
a2h_2017_m.bin | 256 КБ |
a2h0213a.bin | 256 КБ |
bit.exe | 258 КБ |
bromcfg.exe | 50.64 КБ |
cb198.exe | 252 КБ |
Давно хотел спросить - почему этот байт называют CRC? Там же обычная
контрольная сумма всех байт модуля (точнее младший байт этой суммы).
Адреса всех последующих инструкций сместятся, как следствие все
jump/near call/far call будут неправильными - BIOS откажет.
А можно ли то же самое сделать с АМИ биос?
Про AMI BIOS - можно, инструкция тут: Plop Boot Manager 5.0 - How to flash an AMI bios.
"Я вообще-то не механик, у меня другая специализация - обычно я делаю людям больно." (C)Alien - Resurrection
У меня лежит старичок с подобными проблемами, но есть два но. Первое "но", в нем PhoenixBIOS, о котором на сайте Plop Boot Manager'а ни слова. И второе "но", в нем нет сетевой карты.
За статью спасибо, очень познавательно и интересно!
Это решаемо. Нужна внешняя сетевая с поддержкой BootRom и, грубо говоря, plpbt_PCI.rom не встраивается в образ BIOS матери, а шьется в BootROM самой сетевой карты.
Старые PCI Интелы или 3Сom (с флешками на борту и утилитами прошивки) - весьма годны.
Или это ноут? Кто, если не секрет?
А кому счас легко...
Да, ноут. RoverBook Discovery FT5 на Pentium II.
Браво!! Есть теперь выход и у меня из подобной ситуации. Спасибо за инфу !
... дорогу осилит идущий, если есть верный друг, отличный конь, толковый мудрец и цель...
В середине 2023 годя столкнулся с проблемой. bromcfg.exe - 16 битное приложение и в Win 10 64 не работает (
Благо у меня на рабочем месте VirtualBOX с XP Mode стоит, с драйверами для сканирования по сети на HP LaserJet 3055
Там заработал bromcfg
Но дальше возникла проблема с CB198
Буду презнателен с подсказкой, в какую сторону копать. биос от foxconn порезал весь.
Делайте при помощи plpbtrom , работает на 64бит без проблем , качается на оффсайте плопа без проблем , просто с ключиком -инт18 для старой машины
Отличная статья! Я как раз ищу способ, чтобы "подружить" с материнской платой вот этой накопитель NVNe, чтобы была возможность сделать его загрузочным. Через переходник-карту PCI-E x1. Этот слот там единственный. Накопитель видится нормально из под Windows 7 Sp1 x64. И из под "Acronis" видится и форматируется. Но вот в штатном BIOS отсутствует в списках накопителей. Возможно этот способ доработки старого Legacy-BIOS поможет побороть проблему!? Есть способ с загрузочной флешкой "Clover", но хотелось-бы добиться штатной загрузки, без флешек, воткнутых на постоянной основе.
Отправить комментарий