Изготовление загрузочной флешки с эмулятором EFI — DUET
- 15 февраля 2009
В прошлом посте я описал возможность загрузки в режиме EFI для плат Intel со встроенным (хоть и хорошо замаскированным) «аппаратным» EFI. Теперь как же быть всем остальным, не имеющим «счастья» обладать интеловской материнкой? Тут все чуть сложнее, но выход также есть: существует эмулятор, практически полностью реализующий все функции efi на текущем железе — DUET. Скачать исходники его можно здесь (нужно зарегистрироваться), но для их сборки понадобится windows и visual studio 2005 (2008). Для сборки x64-файлов необходимо при установке Visual Studio 2005/2008 поставить галку «x64 compiler support» (или как-то так, точно не помню) в выборе опций. VS2003 не умеет собирать x64-файлы.
Как собирать?
1. Качаем релиз edk по вышеупомянутой ссылке и распаковываем его в c :\edk.
2. Ищем в интернете masm 6.15 (ссылок полно) и тоже распаковываем его, скажем, в c:\masm615
3. Создаем в папке c:\edk файлик env.cmd следующего содержания:
call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
set EDK_SOURCE=c:\edk
set MASMPATH=c:\masm615
set EFI_BOOT_DISK=E:
скорректируйте пути, соответственно вашим.
4. редактируем файл c:\Edk\Sample\Platform\DUET\Build\config.env, дабы измнить в нем следующие строки:
EFI_BUILD_TARGET_X64 = YES
USE_VC8 = YES
USE_VC8_X64 = YES
5. редактируем файл c:\Edk\Sample\Platform\DUET\Build\duet.env, если хотим убрать/добавить какие-либо efi-фичи.
6. запускаем консоль (cmd.exe) и в ней:
c:\edk\env.cmd
cd c:\Edk\Sample\Platform\DUET\
nmake uefi64 (или uefi32)
сборка может занять продолжительное время.
7. готовим флешку: у меня она прописана в env.cmd как диск E:. Внимание: на флешине должна присутствовать mbr (т.е. она должна быть загрузочной, сделать ее такой можно с помощью, например, программки flashboot).
cd uefi64 (или uefi32)
nmake createusb
перевтыкните флешку и:
nmake usb
8. Готово, можно загружаться! С помощью этой флешки каждый теперь может получить вполне работающую систему с efi на любой плате!







