Свой модуль для EFI

Кто из практически писавших - не подскажете процедуру: что требуется и где можно это скачать-купить для разработки своего модуля? Про EDK с tianocore.org - понятно, а что ещё?

Аватар пользователя savely

Цитата:
Про EDK с tianocore.org - понятно, а что ещё?

А я EFI SDK вроде с Интела брал... Там с примерами - скомпилить EFI Shell с десятком модулей и стартануть его с дискеты у меня получалось. Но реального опыта нет. Жаль, что на эксперименты времени почти нет...

А кому счас легко...

Документов полно, но определенного ничего нет. Чтобы начать понимать нужно прочитать спек UEFI, а "на сухую" это понимается туго (я о себе). Надо попробовать сделать материал по этой теме, который бы просто описывал шаг за шагом.

Аватар пользователя savely

Точно! Начинание понимания есть. Реальной практики - пока в общем доступе нет, насколько я знаю. Надо, чтоб приперло. Пока я не видел BIOS, в котором не работает классический ROM-SCAN. Вот появится - тогда резко все бросятся изучать EFI...
Роман, а вариант типа "девайс как Mass Storage", а там с него самого поднимется нужный функционал - рассматривался?

А кому счас легко...

Ну, раз компания собралась, значит дело будет! Разработка EFI модулей еще интересна тем, что можно сделать приложение, которое будет запускаться без ОС. Это значит, что можно на базе старенького ПК сделать какой-нибудь автомат или еще что-нить очень дешевое. А можно написать .NET Framework for EFI 
Так или иначе, давайте сделаем что-то вроде быстрого старта для разработчика EFI модулей. У меня есть опыт таких разработок, но четко излагать концепции я не умею, надеюсь что Роман, Савелий и еще кто-нибудь, устранят этот недостаток. 
Надо подумать как на основе открытого кода сделать билдер, а также отладчик или эмулятор (у Интел он есть). Думаю что идей тут должно быть уйма...

Аватар пользователя icbook

С идеями, действительно, недостатка нет и не будет, но, как правильно заметил Савелий, пока не припечет, толком ни в чем разбираться не досуг. Если есть желание, можно обсудить простенькое приложение с практической функциональностью.

Ладно, я пока свалю до кучи всё что нужно для разработчика EFI приложения:
1. Version EFI 1.10.14.62 of the EFI Toolkit (ZIP 15.8MB) intel.com/technology/efi/toolkit_agree.htm (download.intel.com/technology/efi/docs/EFI_Toolkit_1.10.14.62.zip)


2. Microsoft Visual Studio .Net 2003
3. Подопытный компьютер с EFI BIOS + EFI Shell
4. Копировать файлы удобно с помощью ключа USB Flash
5. Для отладки желательно: POST card, RS-232 cable.
С таким набором можно начинать писать Hello Program
Как сбилдить описано в EFI Developer Kit (EDK) Getting Start Guide, приложение получается с расширением .efi. Копируем на подопытный компьютер, далее грузимся в EFI Shell, там набираем что-то вроде:
map -r
fs0:
Hello.efi

Чтото Интеловская ссылка не работает. Нашел еще сайт по этой теме refit.sourceforge.net/ Там можно скачать имидж загрузочного диска с EFI Shell

В наборе есть эмулятор SecMain.exe! После того как сбилдил имидж FvRecovery.fd, его можно его запустить:

set EFI_MEMORY_SIZE=20

set EFI_FIRMWARE_VOLUMES=FvRecovery.fd

secmain.exe



Просто супер! 

Я постарался сделать что-то вроде "Шаг-за-шагом".
Как сделать свой Application module для EFI:

- установить MS Visual Studio 2003
- распаковать архив EDK, например в c:\Tiano\
- Распаковать пример модуля HelloEfi.zip to c:\Tiano\Edk\Sample\Application\
- скопировать init.bat в c:\Tiano\
- Добавить строчку в c:\Tiano\Edk\Sample\Platform\Nt32\Build\Nt32.dsc


  Sample\Application\HelloEfi\HelloEfi.inf

- запустить Visual Studio .NET 2003 Command Prompt
- запустить c:\Tiano\Edk\init.bat
- nmake all
- как результат, должен быть файл C:\Tiano\Edk\Sample\Platform\Nt32\Build\IA32\HelloEfi.efi

Теперь можно запустить EFI Shell:
- nmake run
- дальше в EFI Shell, после таймаута, запустить HelloEfi.efi:
- fsnt0:
- HelloEfi.efi
Hello EFI!

Чтобы выйти из EFI Shell:
- reset

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

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые 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.

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

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