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

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

savely

18 лет 2 месяца назад

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

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

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

savely

18 лет 2 месяца назад

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

Ну, раз компания собралась, значит дело будет! Разработка EFI модулей еще интересна тем, что можно сделать приложение, которое будет запускаться без ОС. Это значит, что можно на базе старенького ПК сделать какой-нибудь автомат или еще что-нить очень дешевое. А можно написать .NET Framework for EFI 

Так или иначе, давайте сделаем что-то вроде быстрого старта для разработчика EFI модулей. У меня есть опыт таких разработок, но четко излагать концепции я не умею, надеюсь что Роман, Савелий и еще кто-нибудь, устранят этот недостаток. 

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

icbook

18 лет 2 месяца назад

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

Ладно, я пока свалю до кучи всё что нужно для разработчика EFI приложения:

1. Version EFI 1.10.14.62 of the EFI Toolkit (ZIP 15.8MB) http://www.intel.com/technology/efi/toolkit_agree.htm (http://download.intel.com/technology/efi/docs/EFI_Toolkit_1.10.14.62.zip)

<font face="Arial" size="1">2. Microsoft Visual Studio .Net 2003

3. Подопытный компьютер с EFI BIOS + EFI Shell

4. Копировать файлы удобно с помощью ключа USB Flash

5. Для отладки желательно: POST card, RS-232 cable.

С таким набором можно начинать писать Hello Program

Как сбилдить описано в <font face="Helvetica-Bold" size="1">EFI Developer Kit (EDK) Getting Start Guide</font>, приложение получается с расширением .efi. Копируем на подопытный компьютер, далее грузимся в EFI Shell, там набираем что-то вроде:

map -r

fs0:

Hello.efi

</font>

Чтото Интеловская ссылка не работает. Нашел еще сайт по этой теме http://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