嵌入式Linux-启动时间优化

嵌入式linux产品启动时间优化 嵌入式linux产品启动时间优化 目录 1. 分析启动时间的工具 2. uboot启动时间优化 2.1 uboot参数配置 2.2 uboot裁剪 3. linux启动时间 3.1 linux裁剪 3.2编译模块 3.3 文件系统优化 阅读详情
由于物联网项目中需要对设备的启动时间有快速启动的要求,目前的节点嵌入式linux启动时间是28秒左右,现在有了一点自由的时间,决定对这个东西的启动速度做一下优化,看看能提高多少.
   把过程记录以下,供以后学习使用。
   系统主要配置:
    ZYNQ:zc7010
    u-boot:2014.2
    OS:Linux 2014.2
    编译器:gcc4.2.0 20070413 (CodeSourcery Sourcery G++ Lite 2007q1-10)
原来系统启动步骤:
   fsbl> U-boot 1.3.4 -> Linux ->uramdisk
   u-boot阶段把内核和ROOTFS从QSPI中拷贝出来,然后启动Linux。
 
优化第一步:
   修改u-boot,把QSPI的读取速度进行提升
优化第二步:
    对内核进行裁剪,把不需要的硬件驱动砍掉
优化第三步:
   自定义rootfs,缩小文件系统,以及对inittab、rcS脚本的冗余裁减。


从网上找的一些优化的思路:

1.  用Image替代zImage,zImage是压缩后的内核镜像文件,所以使用Image就省去的加载时的解压所消耗的时间(大概可以节省2~3秒的启动时间)。但若使用Image则应考虑NandFlash的空间是否够用。

2.文件系统镜像有ramdisk、jffs2和cramfs三种,内核加载这三种镜像的速率cramfs最快,其次jffs2,最后是ramdisk。其中cramfs是只读文件系统。通常一个产品是三者的结合。

3.优化bootloader,减少其运行时间。

4.减少kernel体积,比如将不是在启动阶段必须加载的驱动模块留在文件系统后面加载,减少kernel的运行和加载时间。

5.优化或关闭调试串口输出。

6.驱动程序放在文件系统后面加载,先显示应用程序界面,再在后台加载必要的驱动模块。

7.将整个系统运行环境保存到RAM中,加电只是个系统恢复过程。

8. 仔细优化kernel和每个驱动模块,将每个部分的延时调试到最快。

9. 应用程序的优化,减少应用程序的启动时间。

10.生成系统启动时间报告

较为简单可行的方式是通过PrintkTime功能为启动过程的所有内核信息增加时间戳,便于汇总分析。PrintkTime最早为CELF所提供的一个内核补丁,在后来的Kernel 2.6.11版本中正式纳入标准内核。所以大家可能在新版本的内核中直接启用该功能。如果你的Linux内核因为某些原因不能更新为2.6.11之后的版本,那么可以参考CELF提供的方法修改或直接下载它们提供的补丁:http://tree.celinuxforum.org/CelfPubWiki/PrintkTimes

  开启PrintkTime功能的方法很简单,只需在内核启动参数中增加“time”即可。当然,你也可以选择在编译内核时直接指定“Kernel hacking”中的“Show timing information on printks”来强制每次启动均为内核信息增加时间戳。这一种方式还有另一个好处:你可以得到内核在解析启动参数前所有信息的时间。因此,我选择后一种方式。

  当完成上述配置后,重新启动Linux,然后通过以下命令将内核启动信息输出到文件:

dmesg -s 131072 > ktime

  然后利用一个脚本“show_delta”(位于Linux源码的scripts文件夹下)将上述输出的文件转换为时间增量显示格式:

/usr/src/linux-x.xx.xx/scripts/show_delta ktime > dtime

  这样,你就得到了一份关于Linux启动时间消耗的详细报告。

 

注意:

优化嵌入式Linux系统的启动时间时注意,启动时间的减少也是有代价的,比如花费的人力,项目进展时间,产品的安全与稳定,以及系统的其他资源的开销,比如说存储空间等。

通常bootloader写入NorFlash,而内核Image和文件系统镜像写入NandFlash。NandFlash容易出现坏道,而NorFlash要相对好些。将bootloader写入NorFlash则可防止因为bootloader损坏而导致整个系统崩溃。而将bootloader写入NandFlash则可保证不把NorFlash损坏,因为可以通过NorFlash恢复NandFlash数据。


[MR]RCM约束下的手术机器人 RCM(Remote Center of Motion)约束,通俗讲就是做微创手术时,机械臂插进身体,机械臂受身体的插入点的约束,不能乱动。 相关参考论文 Task Control with Remote Center of Motion Constraint for Minimally Invasive Robotic Surgery ... 阅读详情

相关推荐

Python实现支付宝转账接口

由于工作需要使用python开发一个自动转账接口,记录一下开发过程。 首先需要在蚂蚁金服上申请开通开发者账户,有了开发者账户就可以使用沙箱进行开发了。 在开发之前我们需要在沙箱应用中填写密钥,密钥的获取可以使用阿里提供的工具包自动生成。 前期准备工作完成了,接下来是编写代码部分。主要用到了python-alipay-sdk库,使用pip安装即可,如果安装的过程中遇到问题推荐使用Anaconda...

FanMLei的博客 8516

嵌入式linux系统快速启动优化的方法

(1)上电首先执行芯片内部固化的代码,这段代码会将BootLoader读取到芯片的iRAM中执行,初始化内存,并将BootLoader代码搬运到内存中继续运行;(2)BootLoader是启动引导代码,主要作用是将内核加载到内存中并启动。RAM架构的芯片是uboot,X86架构的芯片是BIOS。(3)内核会初始化外设,挂载根文件系统并执行启动脚本,脚本里会加载驱动并启动应用程序;

weixin_42031299的博客 5175

PX4无人机-Gazebo仿真实现动态目标追踪的视觉控制方案

本文详细介绍了PX4无人机在Gazebo仿真环境中实现动态目标追踪的视觉控制方案。从PX4与Gazebo仿真环境搭建、动态目标追踪核心技术栈、仿真环境深度定制技巧到追踪算法的优化实践,提供了全面的技术指导和常见问题排查方法,帮助开发者高效实现无人机视觉追踪功能。

weixin_29196315的博客 450

嵌入式 Linux 启动时间优化

1 简介 本章包含的话题有启动时间的测量、分析、人因工程(human factors)、初始化技术和优化技巧等。 产品花在启动方面的时间直接影响终端用户对该产品的第一印象。 一个消费电子设备不管如何引人注目或者设计得怎么好,设备从关机状态到可交互的使用状态所需的时间对于获得正面的用户体验尤为关键。案例 #1 就是在关机状态从头启动一个设备的例子。 启动一个设备涉及到许多步骤和一系列的事件。为了使用...

qq_43248127的博客 950

Android车载应用开发与分析(11)- 车载Android应用开发入门指南

将时间回退到2017年我大学刚毕业时,彼时移动互联网就已经开始退潮,各大个培训机构也纷纷停止了Android相关的培训,曾经热火朝天的应用开发从那时起,就开始走向下坡路,小程序以及众多跨平台框架也让市场对Android原生开发的需求逐年降低,市场需求的降低也造就了Android开发的面试变得史无前例的“卷”。 终于我在2019年选择离开了互联网,投身当时还不是非常火热的车载Android领域继续从事Android原生开发。而这一年中国首个外商独资的整车制造项目,“...

linkwj的博客 1万+

UE5 VlcMedia 插件编译与流媒体播放实战

本文详细介绍了在虚幻引擎5中编译并集成VlcMedia插件以解决流媒体播放难题的实战指南。针对UE5不再默认支持Win32 API导致的编译错误,文章提供了核心的构建配置文件修改步骤,并指导如何启用插件、创建VLC媒体播放器,最终成功播放如.m3u8等格式的网络直播流或点播视频。

weixin_29013129的博客 339

linux时间极限,Linux系统管理 启动时间的极限优化方案

在上次完成嵌入式应用的Linux裁减后,Linux的启动时间仍需要 7s 左右,虽然勉强可以接受,但仍然没有达到我个人所追求的目标——2s 以内。况且,在实际的商用环境中,设备可靠性的要求可是“5个9”(99.999%,即OOS时间低于5分钟/年),这就意味着每减少一秒钟Linux启动(设备复位)时间,对可靠性都是一个明显的提升。言归正传,如何着手对Linux的启动时间进行优化呢?CELF(The...

weixin_42197841的博客 331

Allegro如何用自带的功能将线段变成铜皮操作指导

在做PCB设计的时候,有时根据设计需要将线段变成铜皮,可以借助辅助工具来实现这一操作,但是Allegro自身也自带这个功能,如下图。勾选Delete original objects。如何用自带的功能将线段变成铜皮操作指导。勾选Convert to shape,需要把这段走线变成铜皮。

weixin_54787054的博客 2946

优化嵌入式Linux的启动时间的秘密

01 工具链/应用程序优化 导读:嵌入式Linux在应用中往往希望系统能在尽量短的时间内启动,以提高用户体验。而且在有的应用场合,对启动时间具有严格的时间要求,尤其在工业或者医疗器械应用领域。此时如何加快Linux的启动,将成为一个挑战,对于大多数应用开发人员而言,由于Linux系统的复杂性,对于如何提高启动速度,往往无从下手。那么阅读完本文,将获得清晰完整的解决思路。 注:本文转载自微信公众号:嵌入式ARM。 1.降低启动时间的一般思路 在准备降低系统的启动时间时,思路上应建立以下的切入点:

枫潇潇 3506

Winform从入门到精通(1)——Label(史上最全)

本篇文章是对专栏《winform控件从入门到精通》的详细介绍

qq_34059233的博客 4万+

【异常】Python环境中没有安装 `openpyxl` 模块提示ModuleNotFoundError: No module named ‘openpyxl‘

是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的库。只是示例版本号,你可以根据需要选择不同的版本。安装完成后,再次尝试运行你的程序,应该就不会再出现。,这表明你的Python环境中缺少。运行一个Python程序时遇到了。如果由于某些原因你无法直接使用。,你可以指定版本号来安装,这里。要解决这个问题,你需要安装。

奶爸的编程之路,也就一周冷个三天 3396

目前速度最快的linux,谁将是最后的王者?

谁将是最后的王者?平均启动时间:21秒。3.Arc LinuxArc Linux(或称Arc)是一种以轻量简洁为设计理念的Linux发行版,其目的是有一个快如闪电的启动时间。开发团队秉承简洁、优雅、正确和代码最小化的设计宗旨。其属于轻量级选手,其简单的设计让它容易被轻松扩展和配置成为任何想要的系统类型。Arc LinuxArch 基本理念是快速、轻巧、弹性与简单。这并非华而不实的行话,他们都是事实...

weixin_39689428的博客 3645

Quartus II编译时出现Error (119013): Current license file does not support the EP4CE6E22C6 device

Quartus II编译时出现Error (119013): Current license file does not support the EP4CE6E22C6 device, Quartus的安装过程不同于ISE/vivado的安装。“Current license file does not support”这种情况多出现在高版本的quartus中综合很久以前的代码,使用很早型号的FPGA或是CPLD。对于这种情况,就得在官网或是其他网站上下载包含所需Device的库文件。

夜半少年的博客 1万+

嵌入式 linux启动时间优化

嵌入式 Linux 启动时间优化 2015年11月6日星期五 有些应用对系统启动时间有着特殊的要求。在很多场合下,这些系统并不需要针对所有任务立即就位,但是针对某些关键任务(例如接收以太网命令或者显示用户界面)则必须能够应对。该博文将提供一些方法和简单的步骤,在 ...

weixin_43138570的博客 1685

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

优化嵌入式Linux的启动时间之内核

导读:嵌入式Linux在应用中往往希望系统能在尽量短的时间内启动,以提高用户体验。而且在有的应用场合,对启动时间具有严格的时间要求,尤其在工业或者医疗器械应用领域。此时如何加快Linux的启动,将成为一个挑战,对于大多数应用开发人员而言,由于Linux系统的复杂性,对于如何提高启动速度,往往无从下手。那么读完优化嵌入式Linux的启动时间系列文章,将获得清晰完整的解决思路。本文将从内核的角度探讨如...

嵌入式客栈 1307

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

优化嵌入式Linux的启动时间之Bootloader

优化嵌入式Linux的启动时间之Bootloader 注:本文转载自微信公众号嵌入式客栈——优化嵌入式Linux的启动时间之Bootloader 原创逸珺嵌入式客栈2020-03-05 导读:嵌入式Linux在应用中往往希望系统能在尽量短的时间内启动,以提高用户体验。而且在有的应用场合,对启动时间具有严格的时间要求,尤其在工业或者医疗器械应用领域。此时如何加快Linux的启动,将成为一个挑战,对于大多数应用开发人员而言,由于Linux系统的复杂性,对于如何提高启动速度,往往无从下手。那么读完优化...

枫潇潇 829

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

优化嵌入式Linux的启动时间之文件系统

导读:嵌入式Linux在应用中往往希望系统能在尽量短的时间内启动,以提高用户体验。而且在有的应用场合,对启动时间具有严格的时间要求,尤其在工业或者医疗器械应用领域。此时如何加快Linux的启动,将成为一个挑战,对于大多数应用开发人员而言,由于Linux系统的复杂性,对于如何提高启动速度,往往无从下手。那么读完优化嵌入式Linux的启动时间系列文章,将获得清晰完整的解决思路。本文将从优化文件系统的角...

嵌入式客栈 1694

嵌入式linux的调试时间,嵌入式LINUX启动时间优化

目录:1. 实践过程2. 参考帖子2.1 嵌入式Linux-启动时间优化:要点如下:优化第一步:?? 修改u-boot,把QSPI的读取速度进行提升优化第二步:??? 对内核进行裁剪,把不需要的硬件驱动砍掉优化第三步:?? 自定义rootfs,缩小文件系统,以及对inittab、rcS脚本的冗余裁减。从网上找的一些优化的思路:1.? 用Image替代zImage,zImage是压缩后的内核镜像文件...

weixin_33356544的博客 373

优化嵌入式Linux的启动时间之启动脚本

优化嵌入式Linux的启动时间之启动脚本 注:本文转载自微信公众号嵌入式客栈——优化嵌入式Linux的启动时间之启动脚本 原创逸珺嵌入式客栈2020-03-04 导读:嵌入式Linux在应用中往往希望系统能在尽量短的时间内启动,以提高用户体验。而且在有的应用场合,对启动时间具有严格的时间要求,尤其在工业或者医疗器械应用领域。此时如何加快Linux的启动,将成为一个挑战,对于大多数应用开发人员而言,由于Linux系统的复杂性,对于如何提高启动速度,往往无从下手。那么读完优化嵌入式Linux的启动时...

枫潇潇 654

嵌入式linux开机时间,嵌入式Linux启动时间优化的秘密之五-Bootloader

本文主要讲述嵌入式Linux启动时间优化的秘密,我们继续上篇没有讲完的嵌入式Linux启动时间优化方法,本文主要会讲Bootloader。想看上一篇的请查看本文结尾的链接。Bootloader1. 裁剪删除不必要的功能。通常引导加载程序包括许多仅用于开发所需的功能。用较少的功能编译您的bootloader。优化所需的功能。调整引导加载程序以获得最快的性能。U-Boot是事实上的嵌入式bootloa...

weixin_34579167的博客 372

优化嵌入式Linux的启动时间之工具链/应用程序优化

优化嵌入式Linux的启动时间之工具链/应用程序优化 注:本文转载至微信公众号嵌入式客栈——优化嵌入式Linux的启动时间之工具链/应用程序优化 原创逸珺嵌入式客栈2020-03-01 导读:嵌入式Linux在应用中往往希望系统能在尽量短的时间内启动,以提高用户体验。而且在有的应用场合,对启动时间具有严格的时间要求,尤其在工业或者医疗器械应用领域。此时如何加快Linux的启动,将成为一个挑战,对于大多数应用开发人员而言,由于Linux系统的复杂性,对于如何提高启动速度,往往无从下手。那么阅读...

枫潇潇 449

Linux内核启动速度优化,嵌入式Linux启动时间优化的秘密之五-Bootloader

描述本文主要讲述嵌入式Linux启动时间优化的秘密,我们继续上篇没有讲完的嵌入式Linux启动时间优化方法,本文主要会讲Bootloader。想看上一篇的请查看本文结尾的链接。Bootloader1. 裁剪删除不必要的功能。通常引导加载程序包括许多仅用于开发所需的功能。用较少的功能编译您的bootloader。优化所需的功能。调整引导加载程序以获得最快的性能。U-Boot是事实上的嵌入式bootl...

weixin_35713476的博客 904

ab授权文件_优化嵌入式Linux的启动时间之文件系统

版权声明:所有文章版权归嵌入式客栈所有,如商业使用,须嵌入式客栈授权。欢迎关注微信公众号,内容更丰富,关注可免费领取2051G嵌入式Linux,单片机、FPGA、DSP、AI相关书籍以及视频学习资料。导读:嵌入式Linux在应用中往往希望系统能在尽量短的时间内启动,以提高用户体验。而且在有的应用场合,对启动时间具有严格的时间要求,尤其在工业或者医疗器械应用领域。此时如何加快Linux的启动,将成为...

weixin_39626690的博客 373

嵌入式Linux启动时间优化:从9.45秒到2.41秒

嵌入式系统启动时间是衡量性能的关键指标,尤其在工业控制和医疗设备等实时性要求高的场景。Linux系统启动流程涉及Bootloader加载、内核初始化、根文件系统挂载和应用启动等多个阶段。通过编译器优化选择Thumb2指令集和uClibc运行时库,结合FFmpeg裁剪和静态编译技术,可显著减少二进制体积。内核层面禁用非必要模块、预设lpj值以及采用initramfs方案,配合U-Boot Falcon模式跳过二次加载,最终实现74.5%的启动加速。这些优化手段在BeagleBone Black平台上验证,将视

weixin_35649491的博客 593
上一篇: 嵌入式Linux-系统优化
下一篇: 嵌入式linux-u-boot优化
linux_0416
博客等级 码龄9年 79粉丝 39原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值