Изготовление загрузочной флешки с эмулятором EFI — DUET

В прошлом посте я описал возможность загрузки в режиме 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 на любой плате!

Загрузка в режиме EFI на плате Intel DP35DP

Многие из обладателей интеловских плат (DP35DP, DX38BT, BadAxe2 и пр.) слышали или читали о поддержке UEFI, но воспользоваться этим способом загрузки было не просто. Здесь я приведу детальное руководство для всех желающих поэкспериментировать в этой области.
На самом деле, на этих платах EFI (точнее, x64 UEFI) конечно же есть, но с двумя упущениями: полностью отсутствует консоль (shell) и... поддержка режима AHCI. Последнее особенно странно, учитывая, что в CSM («эмулятор» биоса, через который мы обычно работаем) эта поддержка реализована. Возможно, в более современных биосах или платах на P45 или X58 она и добавилась, но на моей DP35DP с bios 0517 ее нету.

Все дальнейшее описание производится для операционных систем типа FreeBSD или Mac OS X. Впрочем, найти руководство по работе с разделами GPT EFI под Windows при помощи diskpart совсем несложно. Много полезного содержится, например, тут. Итак приступим:

1. монтируем efi-раздел (для загрузки в EFI необходим GPT-диск!):
sudo mkdir /Volumes/EFI
sudo mount -t msdos /dev/disk0s1 /Volumes/EFI

2. кидаем в него shell в папке /efi/boot/ (например этот, от Tianocore EDK) или любой другой efi-модуль, названный bootx64.efi (этот путь обязателен: /efi/boot/bootx64.efi!) и имеющий x64-архитектуру.

3. перезагружаемся и переключаем контроллер в ide-режим, сохраняем настройки и заходим в экран Boot Options (F10).
Должна получится примерно такая картина (Windows Boot Manager не в счет — запись в nvram осталась в наследство от давно снесенной висты):

efi boot options

4. выбираем «Internal EFI Shell — Hard Drive» и грузим наш efi-shell (или что-нить другое). Если надпись не появляется, система виснет при загрузке или возвращается обратно в boot options — обновите биос (у меня на 0517 все гарантировано работает, на 03ХХ и 04ХХ были проблемы) и убедитесь в том, что загрузочный efi-файл имеет архитектуру x64.

5. ура, мы в консоли:

efi shell dp35dp

Packages update

Временный пост для выкладывания обновы для dp35dp под mac os. Intel-DP35DP-complete_v0.1
и ASUS-P5GC-MX/1333 тоже.

ДР!

Юбилей, однако...

Компьютеры себя не оправдали:(

Компьютеры себя не оправдали

Весь вечер убил на то, чтобы по-человечески настроить перманентное VPN-соединение под Mac OS на уровне сервиса (pppd daemon). Насколько легко и непринужденно это делается в винде, настолько же мутно и необъяснимо это настраивается в unix-like среде.

Зато, картину хорошую узрел! Художник — Николай Копейкин, тот самый, который сотворил «Слонов Петербурга».
Нравится!

Чудо-музыка


Идея, конечно, не нова, но уж больно красочно соединили здоровскую песню и видеоряд:).

Приветствия

dirty.ru

Эти приветствия меня когда-нибудь сведут с ума.

Снова роботы

Роботы

По наводке отсюда. А тут еще очень много вкусного непосредственно от автора.

Хабр отныне элитен

Хабр регистрация

Теперь и на хабр просто так не попасть. Все околофутуриковское становится теперь элитным. Кто нынче поверит, что Лепра когда-то была всего лишь изолятором для забаненых на dirty:). Так-то!

Twin Peaks в картинках

Twin Peaks
Twin Peaks

Веселые картинки со съемок Twin Peaks. Всем любителям фильма/сериала смотреть обязательно!