Кто из практически писавших - не подскажете процедуру: что требуется и где можно это скачать-купить для разработки своего модуля? Про EDK с tianocore.org - понятно, а что ещё?
А я EFI SDK вроде с Интела брал... Там с примерами - скомпилить EFI Shell с десятком модулей и стартануть его с дискеты у меня получалось. Но реального опыта нет. Жаль, что на эксперименты времени почти нет...
Документов полно, но определенного ничего нет. Чтобы начать понимать нужно прочитать спек UEFI, а "на сухую" это понимается туго (я о себе). Надо попробовать сделать материал по этой теме, который бы просто описывал шаг за шагом.
Точно! Начинание понимания есть. Реальной практики - пока в общем доступе нет, насколько я знаю. Надо, чтоб приперло. Пока я не видел BIOS, в котором не работает классический ROM-SCAN. Вот появится - тогда резко все бросятся изучать EFI...
Роман, а вариант типа "девайс как Mass Storage", а там с него самого поднимется нужный функционал - рассматривался?
Ну, раз компания собралась, значит дело будет! Разработка EFI модулей еще интересна тем, что можно сделать приложение, которое будет запускаться без ОС. Это значит, что можно на базе старенького ПК сделать какой-нибудь автомат или еще что-нить очень дешевое. А можно написать .NET Framework for EFI
Так или иначе, давайте сделаем что-то вроде быстрого старта для разработчика EFI модулей. У меня есть опыт таких разработок, но четко излагать концепции я не умею, надеюсь что Роман, Савелий и еще кто-нибудь, устранят этот недостаток.
Надо подумать как на основе открытого кода сделать билдер, а также отладчик или эмулятор (у Интел он есть). Думаю что идей тут должно быть уйма...
С идеями, действительно, недостатка нет и не будет, но, как правильно заметил Савелий, пока не припечет, толком ни в чем разбираться не досуг. Если есть желание, можно обсудить простенькое приложение с практической функциональностью.
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
Я постарался сделать что-то вроде "Шаг-за-шагом".
Как сделать свой 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 SDK вроде с Интела брал... Там с примерами - скомпилить EFI Shell с десятком модулей и стартануть его с дискеты у меня получалось. Но реального опыта нет. Жаль, что на эксперименты времени почти нет...
А кому счас легко...
Документов полно, но определенного ничего нет. Чтобы начать понимать нужно прочитать спек UEFI, а "на сухую" это понимается туго (я о себе). Надо попробовать сделать материал по этой теме, который бы просто описывал шаг за шагом.
Точно! Начинание понимания есть. Реальной практики - пока в общем доступе нет, насколько я знаю. Надо, чтоб приперло. Пока я не видел BIOS, в котором не работает классический ROM-SCAN. Вот появится - тогда резко все бросятся изучать EFI...
Роман, а вариант типа "девайс как Mass Storage", а там с него самого поднимется нужный функционал - рассматривался?
А кому счас легко...
Ну, раз компания собралась, значит дело будет! Разработка EFI модулей еще интересна тем, что можно сделать приложение, которое будет запускаться без ОС. Это значит, что можно на базе старенького ПК сделать какой-нибудь автомат или еще что-нить очень дешевое. А можно написать .NET Framework for EFI
Так или иначе, давайте сделаем что-то вроде быстрого старта для разработчика EFI модулей. У меня есть опыт таких разработок, но четко излагать концепции я не умею, надеюсь что Роман, Савелий и еще кто-нибудь, устранят этот недостаток.
Надо подумать как на основе открытого кода сделать билдер, а также отладчик или эмулятор (у Интел он есть). Думаю что идей тут должно быть уйма...
С идеями, действительно, недостатка нет и не будет, но, как правильно заметил Савелий, пока не припечет, толком ни в чем разбираться не досуг. Если есть желание, можно обсудить простенькое приложение с практической функциональностью.
Открытая книга: icbook.com.ua
Ладно, я пока свалю до кучи всё что нужно для разработчика 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
Intel EFI Toolkit 1.10.14.62
Last tianocore EFI Toolkit 2.0.1.zip
В наборе есть эмулятор 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
Отправить комментарий