前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NVIDIA Jetson Orin nano开发套件启动时间太久?

NVIDIA Jetson Orin nano开发套件启动时间太久?

作者头像
GPUS Lady
发布2023-05-29 14:45:32
4390
发布2023-05-29 14:45:32
举报
文章被收录于专栏:GPUS开发者GPUS开发者

有人在NVIDIA官方论坛上反应NVIDIA Jetson Orin NANO开发套件启动时间太久?如何缩短这个时间呢?

实际上NVIDIA® Jetson™ Linux 提供了一个通用的启动内核,您可以根据产品的要求进行自定义开发。为了减少内核启动时间,可以根据产品的需求自定义提供的内核。

内核包括一个默认配置,启用了所有支持的硬件功能,并搜索所有可用设备的启动脚本。这为各种控制器、功能、存储设备和启动配置提供了开箱即用的支持。

这种灵活性是有代价的:

  • 某些硬件支持功能需要时间进行初始化。
  • 启用所有软件功能,尤其是通过高级外设总线(APB)的功能,需要时间。
  • 扫描所有连接的存储和网络设备需要时间。

在受限或预配置的系统中,这种灵活性可能并不必要;系统设计师可能事先知道哪个存储设备包含所需的文件,或者某些设备不需要内核进行初始化。为了减少系统启动时间,可以配置内核以遵守这些约束条件。

对于以默认配置运行 Jetson Linux 的 NVIDIA® Jetson™ 系统,从冷启动到登录提示平均需要 12 秒。应用以下优化技术后,启动时间可以缩短到约 3 秒左右。

设备树节点

如果您没有使用 Jetson SoC 中的任何控制器,请禁用那些设备树条目的设备树节点。设备树目录位于:

<top>/hardware/nvidia/platform/t23x/
<top>/hardware nvidia/soc/t23x

刷写的设备树二进制文件(DTB)位于:

<top>/hardware/nvidia/platform/t23x/concord/kernel-dts/tegra234-p3701-0000-p3737-0000.dts

环境配置

您可以通过修改根文件系统中的环境配置来优化启动时间。

通过 UART 禁用控制台打印

通过 UART 进行控制台打印是内核启动时间的主要瓶颈。要减少瓶颈,您可以通过从平台配置文件中删除控制台设置来减少 UART 上的控制台打印量。此文件位于以下位置之一:

-对于 NVIDIA® Jetson AGX Orin™ 系列设备:

编辑 p3701.conf.common 并删除 console=ttyTCU0,115200。

-对于 NVIDIA® Jetson AGX Xavier™ 系列:

编辑 p2972-0000.conf.common 并删除 console=ttyTCU0。

-对于 NVIDIA® Jetson Xavier™ NX 系列:

编辑 p3668.conf.common 并删除 ``console=ttyTCU0。

执行此操作后,您仍可以通过帧缓冲区控制台查看控制台日志。

编译时配置

为了减少编译时间的配置,检查生成的配置文件以确定所需的配置。在定义所需的配置之后,确定哪些配置可以异步启动。对于这些配置,驱动程序探测在单独的线程中异步执行,而不是在主要的初始线程中执行。

此外,检查所需的配置并验证它们是否可以作为模块编程,以便在需要时加载驱动程序。当驱动程序在启动时不加载时,内核镜像减少,可以腾出更多的RAM空间。

将驱动程序移动到另一个线程

在您的驱动程序中添加 probe_type 属性,如下所示在您的驱动程序中添加 probe_type 属性

static struct platform_driver sdhci_tegra_driver = {
   .driver = {
      .name = "sdhci-tegra",
      .of_match_table = sdhci_tegra_dt_match,
      .pm = SDHCI_PLTFM_PMOPS,
      .probe_type = PROBE_PREFER_ASYNCHRONOUS,
   },
   .probe = sdhci_tegra_probe,
   .remove = sdhci_tegra_remove,
   .shutdown = sdhci_tegra_shutdown,
};

减少文件系统初始化时间

为了减少初始化文件系统所需的时间,修改以下配置将它们设置为模块:

CONFIG_FUSE_FS=m
CONFIG_VFAT_FS=m
CONFIG_NTFS_FS=m

禁用音频配置

要消除音频编解码器的初始化时间,请通过禁用音频配置来禁用声音:

# CONFIG_SND_SOC_TEGRA_ALT is not set
# CONFIG_SND_SOC_TEGRA_ALT_FORCE_CARD_REG is not set
# CONFIG_SND_SOC_TEGRA_T186REF_ALT is not set
# CONFIG_SND_SOC_TEGRA_T186REF_MOBILE_ALT is not set

模块化内核驱动程序

模块化内核驱动程序,以便在引导期间仅加载所需的部分。启动期间不需要的驱动程序包括 HID、NET、QSPI 和 USB。

禁用debugging

在生产配置中禁用调试内核 hack(FTRACE、TRACER、KMEMLEAK 等)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 设备树节点
  • 环境配置
  • 通过 UART 禁用控制台打印
  • 编译时配置
  • 将驱动程序移动到另一个线程
  • 减少文件系统初始化时间
  • 禁用音频配置
  • 模块化内核驱动程序
  • 禁用debugging
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档