Build UEFI SHELL binary from latest available EDK2 release tag
VIDEO: https://www.youtube.com/watch?v=wXTQ_wsKwHw
Tianocore community doesn't provide UEFI SHELL binaries anymore. The discontinuation was announced with https://edk2.groups.io/g/devel/topic/patch_shellbinpkg_remove/31209298?p=.
Tianocore community promised to "publish all Shell binaries to the according Assets part directly. edk2 release link: https://github.com/tianocore/edk2/releases"
Regrettably the latest available ShellBinPkg
was published with edk2-stable202002 and is somehow out-dated.
https://github.com/tianocore/edk2/blob/edk2-stable201903/ShellBinPkg/UefiShell/X64/Shell.efi provides access to the latest available UEFI SHELL binary, and is even more out-dated.
So this is a pretty bad situation for UEFI SHELL users (e.g. computer industry's test engineers, BIOS engineers), since they have to build UEFI SHELL on their own to get an up-to-date version.
The latest Visual UEFI SHELL Binary can be found here:
https://github.com/KilianKegel/Visual-UEFI-SHELL/tree/main/UEFIBinaries
Introduce ♉toro UEFI SHELL, an improved original Tianocore UEFI SHELL for engineers usage and development requirements.
- provide original Visual Studio VS2022 tool chain for Tianocore UEFI SHELL
- speedup build time
- modern development experience
- complete Visual Studio look and feel
- add ANSI-C-API (toro C Library source code) as an additional standardized application programming interface (API) for internal usage.
- based ond the above statement, create internally a PLUGIN-mechanism
to easily insert .EFI-binaries directly into UEFI SHELL as additional shell commands:
diskpart
original binary from Intel UEFI Shell Disk Utilitiesacpibin
,acpidump
,aslcompiler
original binary from ACPICA (ACPI component architecture) port to UEFI at Tianocore.find
,more
MSDOS clones from Visual-MSDOS-Tools-for-UEFI-Shellrtcdmp
RTC dump, andsiodmp
universal SuperIO dump.- just invoke
help
in the command line
- just invoke
This enables developers to speed up their UEFI SHELL-development tasks by factor x10 or more
- add conventional MSDOS-style drive names A:, B:, C:, ...
- introduce
\EFI\BOOT\BOOTX64.INI
configuration file - initially at boot switch to predefined screen resolution
- remove annoying UEFI SHELL count down at start
- provide key F5 while Starting UEFI Operating System ... to skip
STARTUP.NSH
Provide UEFI SHELL build process with the complete set of all required build tools for Windows 10/11 machines running the AMD64 instruction set:
- Microsoft EWDK 1703 EnterpriseWDK_rs2_release_15063_20170317-1834.zip
- Python 3.10.11 python-3.10.11-embed-amd64.zip
- NASM 2.16.01 nasm-2.16.01-win64.zip
Additionally provide Microsoft Visual Studio VS2022 support for that particular Tianocore EDK2 component ShellPkg
,
to enable developers to build, navigate through, explore, modify, extend and easily understand basic concepts of UEFI SHELL using AI-assisted IntelliSense
of VS2022 – a state of the art integrated development environment.
The above tool set is automatically downloaded, extracted and setup during LAUNCH.BAT project start.
To speedup repeated installations (avoid repeated downloads of huge tool images), the images may be –initially– stored permanently in local folder/share, beyond an environment variable MYDOWNLOADS.
To do so:
- create a folder %USERPROFILE%\MYDOWNLOADS
- create the environment variable MYDOWNLOADS and assign the above folder location to it:
- insert WINDOWS-R + control.exe
- select User Accounts
- select Change my environment variables
- create a NEW environment variable
- Variable name: MYDOWNLOADS
- Variable value: %USERPROFILE%\MYDOWNLOADS
https://learn.microsoft.com/en-us/windows-hardware/drivers/develop/using-the-enterprise-wdk
The Enterprise Windows Driver Kit (Enterprise WDK) is a command-line build environment that does not require any installation prior to use. Once you have downloaded the EWDK, you can manage it with version control software or you can zip the files and copy as needed. A .zip file created with the Enterprise WDK contains all the necessary compilers, linkers, build tools, headers and libs to build Visual Studio-based driver projects.
The Enterprise WDK contains the necessary elements to build drivers and basic Win32 driver test applications. Use your favorite code editor to modify source code and project files. Because it is command-line based, the Enterprise WDK does lack some of the features incorporated into Visual Studio, such as an IDE, driver deployment and driver testing.
- download project recursively
- run
LAUNCH.BAT
to start the session - run
BUILD
(build.cmd), to run the traditional EDK2 build
to run VS2022
- you need steps 0. .. 2. from above
- start
VisualUEFIShell.sln
VS2022 solution from explorer – do not start from the above LAUNCHed command line
NOTE: EDK2 build automatically creates source code files that must already be available for VS2022 usage - VS2022 directly creates a
BOOTX64.EFI
UEFI SHELL binary in its output directoryUEFIBinaries
- update to edk2-stable202408
- improve version enumeration: MINORVER is EDK2 stable release date
- update to edk2-stable202405
- update to edk2-stable202402
- improve portability, auto-download and setup of all required build tools
- fixed MORE.EFI swallows empty lines
- improved CTRL-C: CTRL-upcase-C not supported by traditional TIANOCORE UEFI SHELL and drives users mad. Now CTRL-C && ctrl-c breaks.
- add famous RU.EFI binary as a PLUGIN
- rearrange HELP listing for PLUGIN commands, listed below
- adding PLUGINS from my-legacy-toolbox to Shell-internal command set
-
PCI dump family
- pcidmp32.efi, pcidmp16.efi, pcidmp8.efi
NOTE: pcidmp32.efi supports "/ALL" command line switch to dump all PCI devices recursively
- pcidmp32.efi, pcidmp16.efi, pcidmp8.efi
-
PCI write family
- pciwr32.efi, pciwr16.efi, pciwr8.efi
-
MEMory dump family
- memdmp64.efi, memdmp32.efi, memdmp16.efi, memdmp8.efi
-
MEMory write family
- memwr64.efi, memwr32.efi, memwr16.efi, memwr8.efi
-
I/O dump family
- iodmp32.efi, iodmp16.efi, iodmp8.efi
-
I/O write family
- iowr32.efi, iowr16.efi, iowr8.efi
-
RTC write
- rtcwr8.efi
-
RTC dump
- rtcdmp8.efi
-
- add version + build enumeration (experimental)
- update to edk2-stable202311
- add
DEFAULT_UEFI_DRIVE_NAMING
switch to BOOTX64.INI, to enable UEFI default drive naming FS0:, FS1:, FS2: ...
- update to TORO C Library 20231118
- add ACPI timer based synchronization
- add plugins:
- introduce toro UEFI SHELL, ALPHA
- update to TORO C Library 20230916
- update to edk2-stable202308
- keep binaries in the directory UEFIBinaries
- update/facelift BUILD.CMD and README.MD
- update to edk2-stable202305
- add VS2022 GUI support to edit/navigate/postprocess/(partially)build BOOTX64.EFI:
VisualUEFIShell\VisualUEFIShell.sln
NOTE: VS2022 build is based on prior EDK2-build preprocessedAutoGen.h
,AutoGen.c
and*StrDefs.h
.
- fix Visual Studio installation and configuration to run on platforms with VS20XY already installed
- fix embedded Python installation and configuration to run on platforms without Python previously installed
- edk2-stable202302
- initial revision