Вход:  Пароль:  
FreeSource: BIOS-bootrom ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

Использование BIOS в качестве бутрома

Оглавление документа

Для чего все это

Как известно, для того, чтобы удаленно загрузить компьютер по протоколу PXE (как, впрочем, и RPL, но его мы здесь касаться не будем), нужна либо сетевая карта с bootrom'ом (специальная микросхемка (E)EPROM), либо бортовая сетевушка, для которой ее «бутром» живет в биосе. Но, поскольку бортовая сеть есть не везде, программаторы тоже есть не у всех, а на некоторых сетевых картах нету даже и колодки под bootrom (хотя распайка под нее есть, по-моему, везде), то было бы неплохо для загрузки с внешней, т.е., не бортовой, сетевушки, обойтись биосом.


Вся технология базируется на одном интересном факте: биосу абсолютно неинтересно, где находится сетевой чип, на борту или на PCI-плате. Если в нем есть код удаленной загрузки с этого чипа, он все равно загрузится.

Что вам понадобится

Для того, чтобы запихнуть код загрузки в биос, вам понядобятся:

  1. «Подопытный» компьютер с сетевой картой, и основной, на котором будут производиться (почти) все действия.
  2. Загрузочная дискетка с чистым ДОСом, без всяких himem'ов, emm'ов и прочего. Если таковой нету – возьмите здесь то, что больше нравится, и уберите все лишнее.
  3. Утилита для перепрошивки биоса. Если у вас есть родная для вашей материнки (очень желательно ДОСовская, с виндовыми я не эксперементировал) – отлично (особенно касается ASUS'ов), если нету – возьмите awdflash для Award/Phoenix, amiflash для AMI, или uniflash для чего угодно, скорее всего что-то подойдет.
  4. Утилита для модификации биоса. Если биос Award/Phoenix – это cbrom (брать, например, здесь, если AMI – amibcp здесь. Если эти версии не хотят работать с вашим биосом – ищите другие, гугль в помощь1! Большинство этих утилит работают под ДОСом, и вполне нормально себя чувствуют как под Win, так и под dosemu.
  5. Собственно образ «бутрома». Он свой для каждого сетевого чипа. Меньше всего проблем с Realtek'ами – они спокойно отдают все на своем сайте, для rtl8139 идите сюда и берите PXE ROM code с самого живого на данный момент зеркала :) Для VIA Rhine у меня когда-то был, но потерялся, так что ищите (возможно, это подойдет). С 3Com'ами у меня были какие-то проблемы, точно не помню. Для чипа BC001 мне вообще не удалось ничего найти, хотя честно искал. Общий принцип для поиска: нам нужен не образ бутрома, а модуль для биоса, который вообще-то предназначен для бортовой сети. Так что нужный файлик с большой вероятностью имеет расширение .lom (LAN on Motherboard). Еще один хороший источник бутромов – etherboot, последние версии поддерживают PXE, работает с огромным количеством сетевых карт. Для старых 10Mbit карт — фактически, единственный вариант. Если неохота собирать образ самому – есть отличная собиралка rom-o-matic. Их бутромы (формат zrom) отлично вшиваются в биос.
  6. Для Realtek'а нужна еще утилита настройки карты. Для rtl8139 это rset8139, вытягивается там же, где и модуль биоса. Для других, скорее всего, ничего не нужно.

Последовательность действий2

  1. Создайте ДОСовскую загрузочную дискетку и сбросьте на нее выбранный вами прошивальщик биоса. Поудаляйте все, кроме command.com, io.sys, msdos.sys и вашего прошивальщика.
  2. Загрузите с этой дискеты подопытный компьютер и с помощью прошивалки сохраните образ биоса в файл (скажем, bios.bin) на дискете. Для awdflash это делается так: awdflash bios.bin /sy /pn
  3. На рабочем компьютере сбросьте этот образ в отдельную директорию, сделайте копию, например, в bios.old, и сюда же бросьте модификатор биоса и модуль для вашей сетевой.
  4. Добавьте модуль загрузки в образ биоса. Для cbrom так: cbrom215 bios.bin /d – посмотреть, нет ли в биосе другого загрузчика; cbrom215 bios.bin /pci release – удалить этот загрузчик, если надо (если там несколько pci модулей – оно спросит, какой удалять); cbrom215 bios.bin /pci rtspxe_m.lom – добавить в биос нужный загрузчик; cbrom215 bios.bin /d – проверить, действительно ли он добавился. Если карта не PCI, а ISA – соответственно, пишите везде /isa вместо /pci.
  5. Теперь сбросьте получившийся bios.bin обратно на дискетку, воткните ее в подопытный компьютер и перепрошейте биос. Для awdflash это делается так: awdflash bios.bin /py /sn. Если прошивалка на что-то ругалась, то желательно прошить обратно сохраненный вами bios.old, не перезагружая компьютер!3
  6. Перезагрузите подопытный компьютер. Если он загрузился – это уже хорошо :) Если еще и попытался найти DHCP сервер – еще лучше! Если не загрузился – попытайтесь восстановить биос. Эта тема здесь не рассматривается, методика восстановления сильно отличается в зависимости от материнки. Если загрузился, но удаленную загрузку пускать не хочет – читайте дальше.
  7. Как минимум для rtl8139, вам может понадобиться запустить на подопытном компьютере утилиту настройки сетевой карты, в данном случае – rset8139. В ней надо объяснить сетевушке, что на ней вроде как есть бутром. Указанный размер значения не имеет, главное, чтобы он там был.
  8. Если и после этого не заработало – ну, тогда не знаю :(

Полезные ссылки


1 На некоторых моделях ASUS'ов и ASRock'ов, в частности, P4VM800, стоит хитро ими модифицированный AMI биос, который родной AMI'шной утилитой не модифицируешь. Найти ASUS или ASRock модификатор мне не удалось. Так что, скорее всего, с этими матерями ничего не получится :(
2 Последовательность приблизительная, и можеть меняться в зависимости от модели материнской платы/биоса/сетевой карты/погоды в Зимбабве. Например, некоторые материнки перешиваются без загрузки с дискеты – биос сам видит, что на вставленной дискете лежит прошивалка. В общем, RTFM!
3 Правда, ругаться на то, что оно чего-то там не прописало, оно может еще и в том случае, если включена защита биоса от записи. Выключаться она может либо в setup'е биоса, либо перемычкой на материнской плате. Читайте инструкцию к материнке!


Страницы, ссылающиеся на данную: Dokumentacija/LTSP
ТЗ/ТерминальныеРешения


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]