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



和USB Wifi加密狗:



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

但是,当用户打开设备电源时,R-Pi会花很多秒钟才能接受用户输入。

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

是否有什么办法可以在5秒内完成Raspberry Pi的启动?他们是否可以进入某种休眠模式,将RAM写入闪存,然后在上电时再次读取?

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

评论

很好的问题,您能否粘贴启动日志并链接到它?在启动过程中不知道它在做什么,无法做很多事情;)

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

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

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

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

#1 楼

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

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

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

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

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

评论


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

– SF。
2014年5月24日12:03

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

– Digikata
14年5月24日在16:58

#2 楼


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


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

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

更多的信息可以在这里,这里和这里找到。


是否可以在5秒内完成Raspberry Pi引导?


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


它们可以吗?进入某种休眠模式,它将RAM写入闪存,然后在加电时再次读回吗?


根据OpenElec,Pi不支持休眠,但是如果您再读一点,他们对如何加快Pi速度有一些建议。

#3 楼

一般而言,从SD读取速度非常慢,因此会产生很大的影响。

尝试一下引导图,弄清楚是否有任何点可以缩短引导时间。

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

#4 楼

您需要像PiCore这样的简约Linux Pi发行版。它仅需7秒钟即可启动到命令提示符,而X则需要25秒钟。如果需要,可以在QEMU中使用它。