Hello,
I want to optimize the boot time by removing the UEFI shell. I followed the steps mentioned in
I have removed the shellPkg from NVIDIA.coomon.dsc.inc
and NVIDIA.fvmain.fdf.inc
files. But still, there were Shell Pkg dependencies in Jetson.dsc.
Is there any way that I can turnoff the shell from the top level?
I’ve cloned the edk2-nvidia from r35.6.1-updates branch
and I was able to build the UEFI firmware without the Docker option.
Please find the attached build log for review.
Hardware : Jetson AGX Xavier Devkit
Version : R35.6.1
Host System Os : Ubuntu 22.04.5 LTS.
BUILDLOG_Jetson.txt (10.6 KB)
I’d really appreciate your help.
Thanks
Vamsi
Hi v_vuyyuru,
I’ve verified it working to build UEFI source with the following steps.
- clone the source
$ edk2_docker edkrepo clone nvidia-uefi-r35.6.1-updates NVIDIA-Platforms r35.6.1-updates
- apply the patch in edk2-nvidia
Platform/NVIDIA/NVIDIA.common.dsc.inc | 3 +++
Platform/NVIDIA/NVIDIA.fvmain.fdf.inc | 3 +++
2 files changed, 6 insertions(+)
diff --git a/Platform/NVIDIA/NVIDIA.common.dsc.inc b/Platform/NVIDIA/NVIDIA.common.dsc.inc
index d3450d65..87483bb7 100644
--- a/Platform/NVIDIA/NVIDIA.common.dsc.inc
+++ b/Platform/NVIDIA/NVIDIA.common.dsc.inc
@@ -883,6 +883,7 @@ CONFIG_MEMORY_TEST=n
MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf
Drivers/ASIX/Bus/Usb/UsbNetworking/Ax88772c/Ax88772c.inf
+!if 0
#
# UEFI application (Shell Embedded Boot Loader)
#
@@ -912,6 +913,8 @@ CONFIG_MEMORY_TEST=n
<PcdsFixedAtBuild>
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
}
+!endif
+
MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf
MdeModulePkg/Application/VariableInfo/VariableInfo.inf
diff --git a/Platform/NVIDIA/NVIDIA.fvmain.fdf.inc b/Platform/NVIDIA/NVIDIA.fvmain.fdf.inc
index 2e5ea98d..2e86e8fd 100644
--- a/Platform/NVIDIA/NVIDIA.fvmain.fdf.inc
+++ b/Platform/NVIDIA/NVIDIA.fvmain.fdf.inc
@@ -182,6 +182,7 @@
INF NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
INF NetworkPkg/HttpBootDxe/HttpBootDxe.inf
+!if 0
#
# Shell dynamic commands
#
@@ -192,6 +193,8 @@
# UEFI applications
#
INF ShellPkg/Application/Shell/Shell.inf
+!endif
+
INF MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf
INF MdeModulePkg/Application/VariableInfo/VariableInfo.inf
INF SecurityPkg/EnrollFromDefaultKeysApp/EnrollFromDefaultKeysApp.inf
--
- build UEFI source
$ edk2_docker edk2-nvidia/Platform/NVIDIA/Jetson/build.sh
Hello Kevin,
Thanks for your reply. I applied the patch and It works. I’ve tried removing the network stack in the same way mentioned in the Boot Time Optimization — NVIDIA Jetson Linux Developer Guide 1 documentation
I got this error while building uefi. Please look into the buildlog.
ERROR - Compiler #4000 from /home/vamsi/edkrepo/nvidia-uefi/edk2-nvidia/Platform/NVIDIA/Jetson/Jetson.dsc(...): Instance of library class [NetLib] is not found
BUILDLOG_Jetson.txt (10.6 KB)
This was my patch file to remove the network stack.
patch_file.txt (3.3 KB)
I’d really appreciate your help.
Thanks
Vamsi