Автор: 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-адреса преобразовываются в ссылки автоматически.
Инженеры из Phoenix Tech сделали очень хороший Wiki ресурс по UEFI: http://wiki.phoenix.com/wiki/index.php/UEFI
Очень удобно - вся информация "под рукой".

goose (не проверено)

17 лет назад

Если есть слюникс, то все еще проще.

http://gnu-efi.sourceforge.net/

Поддерживает архитектуры IA-64, x86, x86_64.
Внимание я пробовал только с IA-64 (Itanium)-машинкой.
Сейчас лень доставать, вспоминать, но там все ОЧЕНЬ просто.
В ридми описано. Позволяет девелопить на обычном C, компиляет
соответственно твикнутым gcc. Все что отличается, так это имя
процедуры точки входа, efi_main() или как-то так :)

Кстати, под ia64 в риалтайме никак не поотлаживаешь, без загрузки
в родную среду, tiancore не умеет ia64 трогать. Максимум - вывод
objdump'а в виде итаниумного ассемблера, все :(

Вот и задание, напиши в качестве модуля интерактивный отладчик :-)
2 goose:
Я не пробовал gnu-efi. А в чем выигрыш от его использования? EDK так же написан на Си, в спеке описаны все его функции. Билдить под конкретную платформу микрософтовскими или интеловскими компиляторами и отлаживать все-равно нужно с конкретным железом. Года два назад я пытался найти симулятор для разразботки БИОСа, но ничего не нашел - когда приходит новое железо, то симулятора для него точно еще никто не написал. Так что остается только In-Target режим для отладки, и хорошо когда есть ITP.

goose (не проверено)

17 лет назад

2 ТоварищЪ:
А я и не говорил про конкретную выгоду.
Я описал специфическую ситуацию.

Я игрался на Itanium, и мне поставить туда бесплатный дистрибутив GNU/Linux с доступными хотя и слишком упрощенными утилитами было куда проще чем поставить Win2003 и ждать когда у него исчерпается триал (про обходные пути молчу). Это глупая отмазка.

А настоящая в том что MS VC++ насколько я знаю не существует в нативном виде под ia64-архитектуру. Покрайней мере мне его достать не удалось. Для работы понадобится отдельно компилятор на Itanium'ной машине и мостик, чтобы можно было управлять процессом неспосредственно из IDE (MS VC++, но на x86-машине).

Т.к. ни о какой интерактивной отладке или просто проверке работы приложения без загрузки в среду ia64efi - такой набор точно не дал бы никаких преимуществ. Все что можно было себе позволить - листинг ассемблера.
Есть такая студия с ia64, но по большему счету все-равно какой компилятор ей подсунуть x86, ia64 или ARM. Скомпилировать можно все что душе угодно, другое дело отладка. А что gnu-efi имеет интерактивный отладчик ia64 или о чем речь?

goose (не проверено)

16 лет 12 месяцев назад

2 ТоварищЪ:

Речь зашла в тупик :)

> А что gnu-efi имеет интерактивный отладчик ia64

Я уже говорил, конечно нет.
Более того даже интерактивная отладка во многих случаях не помогла, если бы такая и была бы воплощена.

Потому что в основном что свои модули что чужие чаще нужны для работы с конкретным железом. А т.к. документация у той же HP закрыта на такие вещи, и сам ничего не отреверсишь, то и толку нет.

Пример? Доступ к настройкам fan'ов компьютера.

Miyka

14 лет 8 месяцев назад

Подниму тему. Ситуация такая: Не сочтите за глупость, но не могли бы вы мне объяснить как пользоваться исходниками EFI? Дело в том что сигнатурный поиск выдает только файлы с объявлениями структур и дефайнов... а где код?

Miyka

14 лет 8 месяцев назад

При сборке EFI выпадает 2 ошибки:
1. Разрешимая, сслылается на строку !IF "$(EFI_SPECIFICATION_VERSION)" >= "0x0002000A" в файле makefile и содержит следующей текст:
c:\tiano\edk\Sample\Tools\Source\makefile(44): fatal error U1080: operator and/or operand usage illegal
Короче говоря, ее мы смогли обойти, но довольно радикальный способом, поэтому если кто нибудь знает что является причиной подскажите пожалуйста.
2. Не разрешимая, на ней сейчас стоим.
[b]NT32 fatal error U1095: expanded command line [/b]'cl /nologo /W4 /WX /GX /Gy /c /Foc:\tiano\edk\Sample\Platform\Nt32\Build\Tools\GenCRC32Section.obj -I c:\tiano\edk\Foundation -I c:\tiano\edk\Foundation\Efi -I c:\tiano\edk\Foundation\Framework -I c:\tiano\edk\Sample\Platform\Nt32 -I c:\tiano\edk\Foundation\Core\Dxe -I c:\tiano\edk\Foundation\Include -I c:\tiano\edk\Foundation\Efi\Include -I c:\tiano\edk\Foundation\Framework\Include -I c:\tiano\edk\Foundation\Include\IndustryStandard -I c:\tiano\edk\Foundation\Include\Ia32 -I c:\tiano\edk\Foundation\Include\Pei -I c:\tiano\edk\Foundation\Library\Pei\Include -I c:\tiano\edk\Sample\Include -I "c:\tiano\edk\Sample\Tools\Source\Common" /Zi /Gm /Fdc:\tiano\edk\Sample\Platform\Nt32\Build\Tools\GenCRC32SectionObj /D EFI_SPECIFICATION_VERSION=0x0002000A /D PI_SPECIFICATION_VERSION=0x00010000 /D TIANO_RELEASE_VERSION=0x00080006 /D UTILITY_BUILD="\"Edk1.06\"" /D UTILITY_VENDOR="\"TianoCore.org\"" /D EFI_DEBUG /D EFI_DEBUG_CLEAR_MEMORY /D EFI_PEI_PERFORMANCE /D EFI_DXE_PERFORMANCE /D EFI_DXE_PERFORMANCE /D EFI_PEI_REPORT_STATUS_CODE_ON /Od /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D __RPCASYNC_H__ -I c:\tiano\edk\Foundation -I c:\tiano\edk\Foundation\Efi -I c:\tiano\edk\Foundation\Framework -I c:\tiano\edk\Sample\Platform\Nt32 -I c:\tiano\edk\Foundation\Core\Dxe -I c:\tiano\edk\Foundation\Include -I c:\tiano\edk\Foundation\Efi\Include -I c:\tiano\edk\Foundation\Framework\Include -I c:\tiano\edk\Foundation\Include\IndustryStandard -I c:\tiano\edk\Foundation\Include\Ia32 -I c:\tiano\edk\Foundation\Include\Pei -I c:\tiano\edk\Foundation\Library\Pei\Include -I c:\tiano\edk\Sample\Include -I "C:\Tiano\EDK\Sample\Tools\Source\Common" "C:\Tiano\EDK\Sample\Tools\Source\GenCRC32Section\GenCRC32Section.c" /Fo"C:\Tiano\EDK\Sample\Platform\Nt32\Build\Tools\GenCRC32Section.obj"' [b]too long[/b] Stop. NMAKE : fatal error U1077: 'C:\Windows\system32\cmd.exe' : return code '0x2' Stop. NMAKE : fatal error U1077: 'C:\Windows\system32\cmd.exe' : return code '0x2' Stop.
Если радикально разобраться с файлом GenCRC32Section то вместо него ошибка будет ссылаться на GenDepex, короче так будет до конца всех перечисленных файлов, далее опять компилим и получаем:
NMAKE : fatal error U1077: 'C:\Windows\system32\cmd.exe' : return code '0x1'

Помогите разобраться. /images/smiles/eusa_think.gif

Конфигурация системы:
WinXP sp3 (На самом деле не зависит от ОС, пробовали и на 7 и на разных sp ХР)
Visual Studio 2003 .Net (аналогичные ошибки с VS2010).

Спасибо.

savely

14 лет 8 месяцев назад

Помогите разобраться

Что не ясно в переводе "expanded command line .... too long"?

P.S. Подозреваю, среда компиляции криво настроена, путей к include в командной строке явно перебор.

Miyka

14 лет 8 месяцев назад

Что не ясно в переводе "expanded command line .... too long"?
P.S. Подозреваю, среда компиляции криво настроена, путей к include в командной строке явно перебор.

Если бы было все так просто. Дело в том что это ошибка переходит от одного файла к другому. Т.е. я ее исправляю и она теперь ссылается на другой файл. Без "expanded command line .... too long" вылезает ошибка
NMAKE : fatal error U1077: 'C:\Windows\system32\cmd.exe' : return code '0x1'
, а далее тупик. Ладно, это я собирал TianoEDK, а тут попробовал Интеловоской.
После некоторого шаманства, EDK от Intel заработала и закомпилила мне все что было указано.
Но тут встаёт вопрос, что делать дальше? У меня есть EFI совместимый модуль, есть образ, я умею вклеивать модуль в образ, который корректно распознаётся BIOSPаtcher, а как объяснить оболочке, что этот модуль надо запустить? Ведь должно быть типа таблицы модулей или они как то вызываются последовательно или еще что.
Спасибо.