【Linux】解决Nvidia Jetson Xavier NX开发套件开机启动时间过长问题

2023-05-16

环境

硬件:Jetson Xavier NX 套件
系统:Ubuntu 20.04

解决

0、现象

在使用Nvidia 的Jetson Xavier NX套件,开发产品,准备发布时,每次设备开机重启时间都太长,用户体验很不好,决定优化一下开机启动时间。

1、分析

主要是禁用一些开机就启动的服务,以达到缩短开机启动时间的效果

2、思路

使用命令,罗列出开机启动的服务,以及耗费时间,然后查看那些耗时长的服务可以禁用。

systemd-analyze blame
4min 38.682s cron-daily.service                  
     11.693s NetworkManager-wait-online.service  
     11.641s alsa-restore.service                
      7.783s postfix@-.service                   
      6.362s systemd-udev-settle.service         
      3.614s nv-l4t-usb-device-mode.service      
      3.448s dev-nvme0n1p1.device                
      3.408s dev-mmcblk0p1.device                
      2.430s docker.service                      
      2.212s apt-daily-upgrade.service           
      1.933s apt-daily.service                   
      1.911s systemd-udev-trigger.service        
      1.502s apport-autoreport.service           
      1.402s blueman-mechanism.service           
      1.180s xrdp.service                        
      1.173s nv.service                          
      1.123s udisks2.service                     
      1.100s setssdroot.service                  
       999ms systemd-sysctl.service              
       986ms ua-timer.service                    
       907ms accounts-daemon.service             
       886ms networkd-dispatcher.service         
       826ms user@1000.service

我这里查询了一些耗时较长service的作用,给大家参考一下,以免禁用某些服务后,系统功能不正常。

1、startup.service 
它在设备启动时运行,并负责启动和运行NVIDIA Jetson平台的各种组件和服务。
禁用此服务可能会导致系统启动失败或无法正常运行。
因此,在禁用之前,请确保了解其可能会对系统的影响,并确保有备份或其他措施以避免系统损坏。
2、cron-daily.service
它负责在每天定时运行系统范围的cron脚本。这些脚本可以包括日志轮换、系统备份等任务。
cron-daily.service服务是由systemd-tmpfiles-clean.timer计时器触发的。
如果不需要在系统上运行任何每日cron脚本,则可以禁用cron-daily.service。
但是,如果禁用该服务,则可能无法完成一些重要的系统任务,例如日志轮换和备份等。
3、gdm.service
它负责启动GNOME桌面管理器(GDM),GDM是Linux桌面系统中最常用的桌面管理器之一。
当登录到系统时,GDM将负责显示登录屏幕,并在您完成身份验证后启动桌面环境。
如果不需要使用GNOME桌面环境,或者想使用其他桌面环境,则可以禁用gdm.service。
但是,如果禁用该服务,则无法使用GNOME桌面环境。
4、NetworkManager-wait-online.service 
它负责在系统启动时等待网络连接可用,以确保NetworkManager服务可以正确运行。
这是特别有用的,因为NetworkManager服务负责管理网络连接,如果在其运行之前没有网络连接,
则可能会导致网络连接的失败。
如果不使用NetworkManager服务或者不需要等待网络连接可用,则可以禁用NetworkManager-wait-online.service。
但是,如果禁用该服务,则需要确保在NetworkManager服务启动之前,已经有可用的网络连接。
5、alsa-restore.service
它负责在系统启动时恢复ALSA(Advanced Linux Sound Architecture)音频设置。 
ALSA是Linux内核中的音频架构,它提供了一种API,用于管理音频设备和播放音频。
如果不需要使用音频设备或希望使用其他音频系统,则可以禁用alsa-restore.service。
但是,请注意,如果禁用该服务,则可能无法正确设置和使用音频设备。
6、systemd-udev-settle.service
它负责等待所有udev设备完成初始化。udev是Linux系统中用于管理硬件设备的设备管理器。
该服务会在系统启动时运行,并等待udev完成其初始化过程,确保所有硬件设备都已经准备就绪。
如果您禁用此服务,则可能会导致系统启动失败或无法正常运行。
通常情况下,不建议禁用此服务。
7、docker.service
它负责启动和管理Docker容器服务。
Docker是一种开源容器化平台,可以让您在单个主机上轻松运行和管理多个独立的应用程序容器。
如果您不需要使用Docker,或者想要使用其他容器化平台,则可以禁用docker.service。
但是,如果禁用该服务,则无法使用Docker容器。
8、udisks2.service
它负责管理和监控Linux系统中的可移动设备和存储设备。
udisks2.service会在系统启动时自动启动,并在后台运行,监听系统中的存储设备插入和移除事件。
如果不需要使用可移动设备或存储设备,或者想使用其他管理工具,则可以禁用udisks2.service。
但是,如果禁用该服务,则可能无法正确管理和使用存储设备。
9、nv-l4t-usb-device-mode.service
它负责启用和管理USB设备模式。
这是一种功能,使Xavier NX设备可以在主机和从设备之间切换,以便在需要时作为外部存储器或USB网卡进行使用。如果不需要使用USB设备模式,或者想要使用其他方法进行外部存储器或USB网卡的使用,
则可以禁用nv-l4t-usb-device-mode.service。
但是,如果禁用该服务,则无法使用USB设备模式。
10、networkd-dispatcher.service 
它负责在网络配置更改时运行钩子脚本,以允许其他服务响应网络配置更改。
networkd-dispatcher.service服务通常与systemd-networkd网络守护进程一起使用。
如果不需要在网络配置更改时运行任何钩子脚本,或者想要使用其他网络守护进程,则可以禁用networkd-dispatcher.service。
但是,如果禁用该服务,则其他服务可能无法响应网络配置更改。

3、解决

经过分析,我决定禁用gdm.service、NetworkManager-wait-online.service、alsa-restore.service、docker.service、cron-daily.service这几个。禁用方法也很简单

//禁用服务
sudo systemctl disable gdm.service  注意此服务是桌面服务,要确定自己是否需用
sudo systemctl disable NetworkManager-wait-online.service
sudo systemctl disable alsa-restore.service
sudo systemctl disable docker.service
sudo systemctl disable cron-daily.service
//然后重启
reboot

如果需要恢复被禁用的服务可以使用

//启用服务
sudo systemctl enable cron-daily.service
//然后重启
reboot

OK!
至此,问题解决。欢迎留言交流

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Linux】解决Nvidia Jetson Xavier NX开发套件开机启动时间过长问题 的相关文章

随机推荐

  • 选择恐惧症的福音!教你认清MVC,MVP和MVVM

    相信大家对MVC xff0c MVP和MVVM都不陌生 xff0c 作为三个最耳熟能详的Android框架 xff0c 它们的应用可以是非常广泛的 xff0c 但是对于一些新手来说 xff0c 可能对于区分它们三个都有困难 xff0c 更别
  • FreeRtos嵌入式操作系统学习1--操作系统原理初探

    这里由于是第一篇文章 xff0c 不讲复杂的数据机构 xff0c 也不进行代码分析 xff0c 只讲嵌入式操作系统原理 先看下面一个简单的程序 xff1a void task1 while 1 Led1 1 xff08 1 xff09 de
  • 初学四旋翼之定高

    本项目使用US 100超声波模块测高 xff0c 与飞控的通讯方式为UART 硬件连接应注意 xff1a 通常飞控的发送管脚连超声波的接收管脚 xff0c 飞控的接收管脚连超声波的发送管脚 xff08 即tx rx xff1b rx tx
  • 初学四旋翼之光流定点

    本项目使用px4flow模块测速 xff0c 与飞控的通讯方式为I2C 安装时因注意光流模块与飞控的方向 xff08 一 xff09 为什么使用光流模块 xff1f 在悬停时 xff0c 若采用开环控制 xff0c 由于一些不可控的外界因素
  • 初学JetsonTX2之部署YOLO

    本人准备使用 YOLO进行人脸检测 xff0c 硬件设备为 Jetson TX2 查阅 YOLO 官网 xff0c 要部署 YOLO xff0c 首先要安装 CUDA CUDNN OPENCV xff0c 然后部署 Darknet xff0
  • C语言,超过10位数的字符串转整型函数

    include lt stdio h gt static long str2int const char str long temp 61 0 const char p 61 str if str 61 61 NULL return 0 i
  • C语言去掉MAC地址中的冒号

    include lt stdio h gt include lt string h gt void strdel char s char del x char p char q for p 61 s q 61 s p 61 39 0 39
  • Jetson Xavier NX 套件将系统装到SSD

    目录 第一步 xff1a 虚拟机 第二步 xff1a 装SDK Manager 第三步 xff1a 将系统装到eMMC 第四步 xff1a 将系统装到SSD内 xff0c 我以新买的500G硬盘为例 第五步 xff1a 装各种库 解决问题时
  • MySQL使用.ibd文件恢复或者迁移数据库

    使用86的Alice数据库的 ibd文件备份 恢复到76数据库 xff0c 该数据库版本为8 0 17 1 创建一个表确认与原始表结构一致 将86数据库的表结构导出 xff0c 在76上执行 xff08 注 xff1a 在5 5 26版本需
  • 学习ARM反汇编工具objdump和一个简单实例

    学习ARM反汇编工具objdump和一个简单实例 参考朱有鹏ARM裸机编程 1 反汇编的原理 amp 为什么需要反汇编 arm linux objdump D led elf gt led elf dis objdump是gcc工具链中的反
  • 从零开始学习UCOSII操作系统1--UCOSII的基础知识

    从零开始学习UCOSII操作系统1 UCOSII的基础知识 前言 xff1a 首先比较主流的操作系统有UCOSII FREERTOS LINUX等 xff0c UCOSII的资料相对比其余的两个操作系统的资料是多很多的 更重要的原因是自己本
  • 从零开始学习UCOSII操作系统2--UCOSII的内核实现

    从零开始学习UCOSII操作系统2 UCOSII的内核实现 参考书籍 xff1a 嵌入式实时操作系统 COS II原理及应用 嵌入式实时操作系统uCOS II 邵贝贝 第二版 1 任务的结构 任务控制块 首先这个任务控制块是非常的大的 xf
  • 从零开始学习UCOSII操作系统4--任务管理

    从零开始学习UCOSII操作系统4 任务管理 1 重讲任务 1 任务可以是一个无限的循环 xff0c 也可以在一次执行完毕后被删除 这里需要注意的是 xff0c 任务的代码并不是真正的删除了 xff0c 而是UCOSII不再理会该任务代码
  • 从零开始学习UCOSII操作系统7--信号量

    从零开始学习UCOSII操作系统7 信号量 参考博客 xff1a 64 http blog csdn net gatiemehttps blog csdn net gatieme article details 21071379 前言 xf
  • 从零开始学习UCOSII操作系统15--总结篇

    从零开始学习UCOSII操作系统15 总结篇 前言 xff1a 在大学的时候 xff0c 我们班级上面都有很多人觉得学习UCOSII 包括UCOSIII 是没什么厉害的 xff0c 因为很多人都喜欢去学习Linux操作系统 xff0c 但是
  • 手把手教你搭建TFTP服务器

    手把手教你搭建TFTP服务器 前言 xff0c 东西来自于网络 xff0c 但是根据自己的理解写了一下建议 xff0c 记录下来 xff0c 让下次不要在网络上面浪费时间搜索 1 保证自己的虚拟机能够上网 测试方法 xff1a 里面一般都有
  • 从零开始写一个单向不循环链表

    从零开始写一个单向不循环链表 总结 xff1a 郝斌数据结构与算法课程 数据结构概述 xff1a 定义 xff1a 我们如何把现实中大量的而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器 xff08 内存 xff09 中 xff0
  • STM32-CAN通信协议

    STM32 CAN通讯协议 CAN协议简述 CAN Controller Area Network xff08 控制器局域网 xff09 xff0c 由Bosch开发的一种面向汽车的通信协议 这是目前应用最广泛的通信协议 xff0c 更是尤
  • FreeRTOS-任务运行时间统计

    FreeRTOS 任务运行时间统计 引入 上一章节中我们讲述了任务信息获取 xff0c 我们已经能够获取绝大部分任务信息了 xff0c 但是任务还有一个很重要的信息 xff0c 那就是运行时间 如果我们知道了每个任务的运行时间和占比我们就可
  • 【Linux】解决Nvidia Jetson Xavier NX开发套件开机启动时间过长问题

    环境 硬件 xff1a Jetson Xavier NX 套件 系统 xff1a Ubuntu 20 04 解决 0 现象 在使用Nvidia 的Jetson Xavier NX套件 xff0c 开发产品 xff0c 准备发布时 xff0c