我正在创建一个不会永久打开的可嵌入式远程应用程序。我一直在研究不同的操作系统发行版,并且可以通过使用具有更快读取速度的更好的SD卡来减少启动时间。我并没有固定在任何特定的发行版上,因此我可以尽可能减少使用最小的Linux发行版的必要性。
(我试图寻找人们为了提高启动时间而运行的基准,但是我没有发现任何有力的数据。)
我还可以使用构建根目录(另请参见YouTube视频Raspberry Pi-超快速启动时间-棉花糖娱乐系统)...
我正在创建一个不会永久打开的可嵌入式远程应用程序。我一直在研究不同的操作系统发行版,并且可以通过使用具有更快读取速度的更好的SD卡来减少启动时间。我并没有固定在任何特定的发行版上,因此我可以尽可能减少使用最小的Linux发行版的必要性。
(我试图寻找人们为了提高启动时间而运行的基准,但是我没有发现任何有力的数据。)
我还可以使用构建根目录(另请参见YouTube视频Raspberry Pi-超快速启动时间-棉花糖娱乐系统)...
Answers:
如果将Arch Linux与Fred建议的功能结合在一起,则应该获得一个通常快速启动的OS。
减慢操作系统启动时间的是
慢的读/写(I / O)速度。
因此,使用更快的SD卡会有所帮助,Class 10卡要比Class 4卡快得多。我误解了SD卡类的工作原理,在评论中已经很清楚地指出了这一点,这很不好。实际上,对于大文件传输(例如HD视频和诸如此类),Class 10卡将比Class 4卡更快。显然,对于较小的文件,第4类的性能也一样。再次,我不好,但是,嘿,我们都一次又一次地学习。
陷入困境的初始化序列。
如果您有很多在引导阶段启动的软件,则引导时间将变慢。更多的软件启动==更长的启动时间。
因此,如果需要快速启动,请从初始化序列中尽可能减少软件。您可以创建一个简单的脚本(或者我确定那里有一个脚本),该脚本将在主引导序列完成后启动软件,从而使负载分散更多。
基本上就是这样。正如我之前所说的,结合Linux的功能可能是要采用Arch Linux。Arch是一个非常小的操作系统,对于初学者来说可能不是最好的选择,但是如果您有Linux的经验,那就去做吧。它只需要一点设置,因为它具有最低的安装要求,仅此而已。
希望您的项目进展顺利!
我建议使用Arch Linux。
我得到的正常启动时间是5s(内核)+ 5s(到用户空间),并且不需要太多的工作,因为它systemd
用于init。
使用静态链接的内核而不是modprobing驱动程序也可以大大提高性能。通过仔细配置和重新编译内核,还可以进行其他优化。
1) Do this in command line, 2) Do this and this 3) Modify this and this in config.txt 4) Boot, it will take 3.2 seconds! 5) Here is the result of my benchmarks: ...
)
使用TinyCoreLinux。它是为快速加载和承受电源故障而设计的。
1) Download an image here: +link 2) Flash it on your microSD 3) Modify this and this in config.txt 4) Boot, it will take 3.2 seconds!
)
您可以尝试使用eINIT来加快启动过程::http : //sourceforge.net/projects/einit/
不幸的是,目前(2016年10月),eINIT主页指出:
eINIT曾经是Linux和FreeBSD的/ sbin / init程序的替代实现。好吧,我想它仍然存在,但是该项目已经搁置了多年。