如何改善Raspberry Pi的启动时间?


15

我正在创建一个在内部用作Raspberry Pi的家用电器,以处理用户界面和必要的WiFi连接。连接到R-Pi,我有一个AdaFruit LCD屏幕:

Adafruit LCD

和USB Wifi加密狗:

USB WiFi加密狗

还有一个键盘。没有其他的。操作系统是OpenElec,它是一种精简的操作系统。

但是,当用户打开设备电源时,R-Pi需要花费几秒钟的时间才能接受用户输入。

如果从闪存启动,为什么要花这么长时间?数十秒似乎是大量的计算。

是否可以在5秒内完成Raspberry Pi的启动?他们是否可以进入某种休眠模式,在该模式下将其RAM写入FLASH,然后在上电时再次将其读回?

否则,是否有Raspberry-Pi的替代产品,具有类似的功能(小LCD屏幕,用于WiFi软件狗的USB),可以在5秒钟内启动?


很好的问题,您可以粘贴启动日志并链接到它吗?无法知道启动过程中做些什么;)
MDMoore313 2014年

2
正在启动什么?您是否正在运行一个最小的操作系统并将其剥离到根本上-没有台式机等??
Scott Seidman 2014年

2
@ScottSeidman-向我的问题添加了OpenElec。

1
我同意@BigHomie。如果不查看启动过程中发生的情况,就不可能提出任何改进建议。

1
@NickAlexeev-啊,老的重叠Stackexchanges问题。我猜所有R-Pi问题都会在那儿成为话题。

Answers:


13

我没有使用Raspberry Pi,但是我减少了嵌入式Linux系统的启动时间,因此我有一些一般性的答案。

1)OpenElec可能是一个完美可行的嵌入式发行版,但是初学者/演示发行版倾向于将其放入厨房水槽中,以为您提供广泛的功能,但这通常意味着有些服务是您不需要的。因此,请查看init目录并关闭或推迟出于您的目的而不必要的任何操作。如果您不需要任何图形化的东西,在较慢的系统上,X窗口或图形处理可能是实时的工作。不一定是因为它不能充分生成图形,但是将所有库加载到内存中需要花费时间。当您要加载的其他所有内容也正在加载或等待加载时,这需要花费时间。

2)SD卡的读取速度不同,请购买设备可以处理的最快速度。或者,也许看看USB记忆棒是否会加载得更快。您可能不需要40Mb / s卡,但是从便宜的SD卡变为可以处理10Mb / s传输的SD卡可能会有所作为-再次取决于Pi可以处理的SD卡。切线:如果文件系统可写,则在SD卡上运行对长期稳定性不利。如果需要,可能需要考虑配置引导设置,以将卡视为只读,或者完全进行其他系统布置。

3)如果您确实需要图形,有时比完全为任何输入做好100%的准备要容易。有一些控制台启动启动屏幕程序,可以在启动您需要的所有其他服务时非常快速地绘制图形。我见过一些实例,其中初始控制面板图形用作静态启动屏幕,当系统就绪时,该屏幕会换成可正常工作的屏幕-用户很少真正希望在显示屏幕的2-3秒内输入数据起来

如果您仍在寻找更快的启动时间,请在此处查找要研究的区域列表。


2
特别要注意第二点。内核启动和初始化脚本分别花费大约30:70%的启动时间。自定义内核的启动速度将提高40%,而自定义启动脚本的原始速度可提高90%,这意味着您可以轻松地将启动时间减半。
SF。

您是完全正确的,我交换了#1和#2的信息,因为我会先花一些时间在初始化脚本上,然后再进行其他操作。

8

如果从闪存启动,为什么要花这么长时间?

部分答案可能是吞吐量过高的问题。SD卡使用NAND闪存时,只能串行传输数据。相比之下,NAND闪存芯片被焊接到板上,后者可以通过并行总线直接与CPU通信。总体传输速率将大致取决于某些因素,例如总线的时钟速度和要传输的文件的大小。

与现代SATA III甚至SATA II硬盘驱动器相比,SD卡的传输速率实际上非常低。缺少SATA端口,USB 3.0是另一种选择,它具有很高的传输速率,而成本却相对较低。

可以在此处此处此处找到更多信息。

是否可以在5秒内完成Raspberry Pi的启动?

Pi使用的CPU相当低端(因此价格)。这意味着它缺少诸如SATA或USB 3.0的高速接口。缺少这些协议的软件仿真(这也可能会遇到主要的吞吐量问题),除了减少操作系统中的负担之外,没有什么可以做的。

他们是否可以进入某种休眠模式,在该模式下将其RAM写入FLASH,然后在上电时再次将其读回?

根据OpenElec的说法,Pi不支持休眠,但是如果您稍微读一点,他们会提供一些有关如何加快Pi速度的建议。


3

一般来说,从SD读取速度非常慢,因此影响很大。

给它一个尝试启动图,找出是否有任何时间可以缩短启动时间。

或者,您可以配置自己的内核,使其只有很小的大小。或者,跳过一些不必要的初始化(查找奇数之类的东西)可能会有所帮助。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.