Boot Time Optimization#
NVIDIA® Jetson™ Linux provides a generic BSP for developing your product. To decrease boot time, customize the provided BSP components based on the requirements of your product.
For a Jetson AGX Orin™ Developer Kit running NVIDIA JetPack™ 6.0, boot from the internal QSPI and eMMC with the default configuration. The average time from a cold power-on to the login prompt is approximately 43 seconds. By applying the following optimization techniques, the boot time can be significantly reduced to approximately 26 seconds.
For a Jetson Thor™ Developer Kit running NVIDIA JetPack™ 7.0, boot from the internal QSPI and NVMe with the default configuration. The average time from a cold power-on to the login prompt is approximately 38 seconds. By applying the following optimization techniques, the boot time can be significantly reduced to approximately 24 seconds.
Disable MB1/MB2 Logs#
For an example using the Jetson AGX Orin™ series, modify the log_level value to 0 in Linux_for_Tegra/bootloader/tegra234-mb1-bct-misc-common.dtsi.
For an example using the Jetson Thor™ series, modify the log_level value to 0 in Linux_for_Tegra/bootloader/tegra264-mb1-bct-debug-defaults.dtsi.
debug {
uart_instance = <2>;
wdt_period_secs = <10>;
-#ifdef DISABLE_UART_MB1_MB2
log_level = <0>;
-#else
- log_level = <4>;
-#endif
enable_wdt = <1>;
disable_wdt_globally = <0>;
enable_rcm_usb3 = <0>;
Modify Combined UART#
For an example using the Jetson AGX Orin™ series, decompile Linux_for_Tegra/bootloader/generic/tegra234-bpmp-3701-0000-3737-0000.dtb with a suitable DTB tool into DTS format.
Next, delete the contents inside the /serial node of the generated DTS file.
Afterward, recompile tegra234-bpmp-3701-0000-3737-0000.dts back into DTB format.
For an example using the Jetson Thor™ series, decompile Linux_for_Tegra/bootloader/generic/tegra264-bpmp-3834-0008-4071-xxxx.dtb with a suitable DTB tool into DTS format.
Next, delete the contents inside the /serial node of the generated DTS file.
Afterward, recompile tegra264-bpmp-3834-0008-4071-xxxx.dts back into DTB format.
/ {
serial {
- port = <127>;
- has_input;
};
};
Modify UEFI Components#
For end users, some UEFI components are not necessary.
Refer to miniUEFI Support chapter in UEFI Adaptation.
Kernel Optimization#
Pass
quietto the kernel command line by adding it to/boot/extlinux/extlinux.conf.For strategies on reducing kernel boot time, refer to Kernel BootTime Optimization.
Enable Service#
The nvbootkpi.service is installed to /etc/systemd/system/.
To note the systemd_end timestamp in the carveout, first verify that the service unit is present on the target, then enable it:
Verify the unit file exists:
systemctl list-unit-files nvbootkpi.service
If the service is listed, proceed to the next step.
Enable the service:
systemctl enable nvbootkpi.service
After collecting boot time metrics, you can optionally disable the service:
systemctl disable nvbootkpi.service
Check Profiler Entries#
Run cat /sys/kernel/tegra_bootloader/profiler to get timestamps from carveout.