Добавление в старый BIOS загрузки с USB с помощью Plop Boot Manager на примере ASUS A2500H/L

Модификация прошивки BIOS ноута ASUS A2500H/L, а именно - добавляем в прошивку BOOT загрузчик “Plop Boot Manager”.

Asus A2500H/L - USB-загрузчик Plop-Boot-Manager

Связано это с тем, что родная прошивка ASUS A2500H/L не особо хорошо “умеет” грузиться с USB, точнее (на мое мнение) вообще не умеет, потому, как все мои усилия закончились ничем. (в разделе Boot есть возможность включить boot c  USB_ZIP устройства)и флешку ему подавай до 1Gb, не более. CD привод отдал душу богу уже давно.

Asus A2500H/L - USB-загрузчик Plop-Boot-Manager - 2

Но ОС надо как-то устанавливать, поэтому было принято решение интегрировать (подшить) в 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.

Понадобятся:

  1. plpbtrom.exe и plpbtrom.bin из пакета Plop Boot Manager
  2. bromcfg.exe

Порядок действий:

  1. Создаем загрузчик "plpbtrom.exe -forceINT -INT18 -compress plpbtrom.bin plpbt.rom"
  2. Конвертируем plpbt.rom с помощью bromcfg.exe в pci rom "bromcfg.exe plpbt.rom"

Нам нужно заменить загрузку с Lan на загрузку Plop

  • Change configuration (Y/N)?y
  • Vendor ID? 1039,( для других плат можно посмотреть на втором экране загрузки или в диспетчере устройств, в свойствах сетевой карты.)
  • Device ID? 0900,( для других плат можно посмотреть на втором экране загрузки или в диспетчере устройств, в свойствах сетевой карты.)
  • PCI device type?  (e.g. 020000 for Ethernet):020000

Полученный файл назовем 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.

Asus A2500H/L - USB-загрузчик Plop-Boot-Manager - 3

В разделе Boot в графе “Onboard Lan Boot ROM”  -  ставим Enable .В списке boot устройств, включаем “INT18 Dewice (Network)” и поднимаем его на самый верх, чтобы под №1 списка стоял  INT18 Dewice. Перезагружаем и, если все сделано правильно,видим меню Plop загрузчика.

Asus A2500H/L - USB-загрузчик Plop-Boot-Manager

Можно пользоваться. При желании, для красоты, можно поменять надписи в  Bios Setup скажем к примеру “Onboard Lan Boot ROM” заменить на “Plop Boot Manager Rom”.

Asus A2500H/L - USB-загрузчик Plop-Boot-Manager 2

Дополнение:

С моей точки зрения, иметь модифицированный  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.bin256 КБ
a2h_2017_m.bin256 КБ
a2h0213a.bin256 КБ
bit.exe258 КБ
bromcfg.exe50.64 КБ
cb198.exe252 КБ
Если данная информация оказалась полезной/интересной - плюсаните, пожалуйста:

Цитата:
Прошивка Bios состоит именно из модулей, упакованных с пом. Lha и, собранных в последовательность ,без пробелов. Поэтому для поиска начала модуля находим заголовок –lh5- ,отступаем на 2 байта влево (пример %.-lh5-)-это и есть начало Lha архива. Конец такого архива всегда “00”и после него следует байт CRC(FG 2D 15 55 00 DE)Байт CRC в конце каждого модуля, это фишка ASUS -

Давно хотел спросить - почему этот байт называют CRC? Там же обычная

контрольная сумма всех байт модуля (точнее младший байт этой суммы).

Цитата:
Поиском находим текст “INT18 Device (Network)” и прописываем вместо него свою надпись латиницей “**Plop Boot Manager** ”,тут я не менял количество символов, не знаю наверняка, что произойдет, если добавить или убрать пару букв, вероятнее всего это не имеет значения, но экспериментировать не стал

Адреса всех последующих инструкций сместятся, как следствие все
jump/near call/far call будут неправильными - BIOS откажет.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей