В генте нашел, а в дебиане не нашел.
Искал так
Есть какой-то другой пакет (с исходниками):
https://packages.debian.org/trixie/source/edk2
но мне непонятно, почему он не нашелся сразу
https://packages.debian.org/trixie/efi-shell-x64
что с этим пакетом делать? Установить, а дальше?
dpkg -L efi-shell-x64
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/efi-shell-x64
/usr/share/doc/efi-shell-x64/changelog.Debian.gz
/usr/share/doc/efi-shell-x64/copyright
/usr/share/efi-shell-x64
/usr/share/efi-shell-x64/shellx64.efi
и это не то, что мне надо. Обещали-то библиотеки, хидеры, утилиты…
apt source edk2
извлекает всё в текущую директорию,
и это не как в Gentoo
«в соответствии с FHS чаще выбирают один из трёх мест:
- /usr/src — для системных исходников и модулей ядра (только root). Подходит, если хотите хранить исходники пакетов, относящихся к системе.
- /var/cache/apt/archives или /var/tmp — временные файлы сборки; /var/tmp для долгоживущих временных данных, /tmp для кратковременных.
- /usr/local/src или ~/src — для локально собранных пакетов пользователем (рекомендуется для пользовательских сборок).»
Ну, допустим, /usr/local/src/edk2
Но я не собирался его компилировать руками!
https://github.com/tianocore/tianocore.github.io/wiki/Build-Instructions/
https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC
https://github.com/tianocore/tianocore.github.io/wiki/Common-instructions
. edksetup.sh
Loading previous configuration from /usr/local/src/edk2/edk2-2025.02/Conf/BuildEnv.sh
WORKSPACE: /usr/local/src/edk2/edk2-2025.02
EDK_TOOLS_PATH: /usr/local/src/edk2/edk2-2025.02/BaseTools
CONF_PATH: /usr/local/src/edk2/edk2-2025.02/Conf
И для сборки ему чего-то нехватает:
"gcc" -MMD -MF /usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64/CryptoPkg/Library/OpensslLib/OpensslLibCrypto/OUTPUT/openssl/crypto/bio/bss_core.obj.deps @/usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64/CryptoPkg/Library/OpensslLib/OpensslLibCrypto/OUTPUT/cc_resp.txt -c -o /usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64/CryptoPkg/Library/OpensslLib/OpensslLibCrypto/OUTPUT/openssl/crypto/bio/bss_core.obj /usr/local/src/edk2/edk2-2025.02/CryptoPkg/Library/OpensslLib/openssl/crypto/bio/bss_core.c
/usr/local/src/edk2/edk2-2025.02/EmulatorPkg/Unix/Host/X11GraphicsWindow.c:18:10: fatal error: X11/extensions/XShm.h: Нет такого файла или каталога
18 | #include <X11/extensions/XShm.h>
| ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [GNUmakefile:379: /usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64/EmulatorPkg/Unix/Host/Host/OUTPUT/X11GraphicsWindow.obj] Ошибка 1
build.py...
: error 7000: Failed to execute command
make tbuild [/usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64/EmulatorPkg/Unix/Host/Host]
build.py...
: error F002: Failed to build module
/usr/local/src/edk2/edk2-2025.02/EmulatorPkg/Unix/Host/Host.inf [X64, GCC, DEBUG]
- Failed -
Build end time: 08:28:58, Nov.03 2025
Build total time: 00:00:24
Допустим я доустановил что-то и собирал EDK II, вот
find /usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64 -maxdepth 1 -iname ‘*.efi’
...
./EbcDxe.efi
...
./UefiPxeBcDxe.efi
...
Последние установленные пакеты:
grep "status installed" /var/log/dpkg.log | grep "$(date +%Y-%m-%d)"
2025-11-03 05:03:48 status installed efi-shell-x64:all 2025.02-8
2025-11-03 08:19:03 status installed acpica-tools:amd64 20250404-1
2025-11-03 08:19:03 status installed nasm:amd64 2.16.03-1
2025-11-03 08:19:03 status installed python-is-python3:all 3.13.3-1
2025-11-03 08:19:03 status installed man-db:amd64 2.13.1-1
2025-11-03 08:30:51 status installed libxfixes-dev:amd64 1:6.0.0-2+b4
2025-11-03 08:30:51 status installed libxext-dev:amd64 2:1.3.4-1+b3
2025-11-03 08:30:51 status installed libxrender-dev:amd64 1:0.9.12-1
2025-11-03 08:30:51 status installed libxrandr-dev:amd64 2:1.5.4-1+b3
2025-11-03 08:30:53 status installed man-db:amd64 2.13.1-1
find . -iname HelloWorld.efi
./Build/EmulatorX64/DEBUG_GCC/X64/HelloWorld.efi
./Build/EmulatorX64/DEBUG_GCC/X64/MdeModulePkg/Application/HelloWorld/HelloWorld/OUTPUT/HelloWorld.efi
./Build/EmulatorX64/DEBUG_GCC/X64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.efi
/usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64/MdeModulePkg/Application/HelloWorld/HelloWorld/OUTPUT/HelloWorld.efi
«Если для сборки укажешь целевую архитектуру EBC, то вместо HelloWorld.efi под X64 получишь HelloWorldEbc.efi.»
Ранее на сайте:
2025-10-05,
lesopilorama, Читал про UEFI, много думал.
2018,
ncrmnt, tianocore
В интернете:
2013-11-13, icbook, Теория и практика EFI Byte Code, https://habr.com/ru/articles/201954/
(используют FASM для получения EBC и патчат файл-результат)
Про EBC:
https://github.com/tianocore/tianocore.github.io/wiki/EBC-FAQ
https://github.com/tianocore/tianocore.github.io/wiki/Tasks-Build-a-C-compiler-for-EBC
«EBC has a unique feature that is not found in other intermediate languages, natural indexing. Natural indexing has made compiler development for EBC notoriously difficult.»
«The original EBC compiler is the Intel C Compiler for EFI Byte Code. This compiler is very expensive ($955)»
https://github.com/yabits/llvm/tree/retrage/ebc
«LLVM backend for EFI Byte Code»
«Since LLVM 9.0, the LLVM linker now supports PE/COFF output»
«Rebasing his work up to the latest LLVM is the recommended starting point for any future work»
«Getting the compiler stable on Linux should be the first goal»



