Skip to content

Build UEFI SHELL binary from latest available EDK2 release – without prior installation of any build tools on Windows 11/10-64 platforms.

Notifications You must be signed in to change notification settings

KilianKegel/Visual-UEFI-SHELL

Repository files navigation

EDK2-UEFI-SHELL + Toro-UEFI-SHELL

Build UEFI SHELL binary from latest available EDK2 release tag

screnshot

VIDEO: https://www.youtube.com/watch?v=wXTQ_wsKwHw

Intention

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

Goal

Introduce ♉toro UEFI SHELL, an improved original Tianocore UEFI SHELL for engineers usage and development requirements.

Development improvements:

This enables developers to speed up their UEFI SHELL-development tasks by factor x10 or more

Usage improvements:

  • 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

Approach

Provide UEFI SHELL build process with the complete set of all required build tools for Windows 10/11 machines running the AMD64 instruction set:

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

Using the Enterprise WDK

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.

Howto

  1. download project recursively
  2. run LAUNCH.BAT to start the session
  3. run BUILD (build.cmd), to run the traditional EDK2 build

to run VS2022

  1. you need steps 0. .. 2. from above
  2. 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
  3. VS2022 directly creates a BOOTX64.EFI UEFI SHELL binary in its output directory UEFIBinaries

Revision history

20240829 v1.202408.0 build 41

  • update to edk2-stable202408
  • improve version enumeration: MINORVER is EDK2 stable release date

20240529 v1.6.0 build 31

20240225 v1.5.0 build 23

  • update to edk2-stable202402
  • improve portability, auto-download and setup of all required build tools

20240204 v1.4.0 build 22

  • 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 RUEFISCREENSHOT

20240114 v1.3.1 build 11

  • rearrange HELP listing for PLUGIN commands, listed below

20240107 v1.3.0 build 4

  • 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
    • 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)

20231201

  • update to edk2-stable202311
  • add DEFAULT_UEFI_DRIVE_NAMING switch to BOOTX64.INI, to enable UEFI default drive naming FS0:, FS1:, FS2: ...

20231119

  • update to TORO C Library 20231118
    • add ACPI timer based synchronization

20231029

20230917

  • introduce toro UEFI SHELL, ALPHA
  • update to TORO C Library 20230916

20230826

20230708

  • update/facelift BUILD.CMD and README.MD

20230604

20230519

  • add VS2022 GUI support to edit/navigate/postprocess/(partially)build BOOTX64.EFI: VisualUEFIShell\VisualUEFIShell.sln
    NOTE: VS2022 build is based on prior EDK2-build preprocessed AutoGen.h, AutoGen.c and *StrDefs.h.

20230512

  • fix Visual Studio installation and configuration to run on platforms with VS20XY already installed

20230507

  • fix embedded Python installation and configuration to run on platforms without Python previously installed

20230501

About

Build UEFI SHELL binary from latest available EDK2 release – without prior installation of any build tools on Windows 11/10-64 platforms.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published