我正在創建一個不會永久打開的嵌入式遠程應用程序。我一直在研究不同的操作系統發行版,並且可以使用更好的 SD卡和更快的讀取速度來減少啟動時間。我並沒有固定在任何特定的發行版上,因此我可以盡可能地減少使用最小的Linux發行版。
(我試圖尋找人們為提高啟動時間而運行的基準,但是我沒有發現任何有力的數據。)
我也可以使用 build root(另請參見YouTube視頻 Raspberry Pi-超快速啟動時間-棉花糖娛樂系統 )...
我正在創建一個不會永久打開的嵌入式遠程應用程序。我一直在研究不同的操作系統發行版,並且可以使用更好的 SD卡和更快的讀取速度來減少啟動時間。我並沒有固定在任何特定的發行版上,因此我可以盡可能地減少使用最小的Linux發行版。
(我試圖尋找人們為提高啟動時間而運行的基準,但是我沒有發現任何有力的數據。)
我也可以使用 build root(另請參見YouTube視頻 Raspberry Pi-超快速啟動時間-棉花糖娛樂系統 )...
如果將Arch Linux與Fred建議的功能結合起來,您應該會獲得一個通常快速啟動的操作系統。
減慢操作系統啟動時間的是
慢的讀/寫(I / O)速度。
因此,使用更快的SD卡將會有所幫助, 10類卡將比4類卡快得多 strike>。我誤解了SD卡類的工作原理,在評論中已經很清楚地指出了這一點,這很不好。實際上,對於大文件傳輸(例如HD視頻和諸如此類),Class 10卡要比Class 4卡更快。顯然,對於較小的文件,第4類的性能也一樣。再次,我不好,但是,嘿,我們都一次又一次地學習。
一個陷入困境的初始化序列。
如果您有很多在引導階段啟動的軟件,則引導時間將變慢。更多的軟件啟動==更長的啟動時間。
因此,如果需要快速啟動,請從初始化順序中盡可能多地減少軟件。您可以創建一個簡單的腳本(或者我確定那裡有一個腳本),該腳本將在主啟動序列完成後啟動軟件 ,將負載分散更多。
基本上就是這樣。正如我之前所說的,結合Linux的功能可能是要使用Arch Linux。 Arch是非常的最小操作系統,對於初學者來說可能不是最好的選擇,但是如果您有Linux的經驗,那就去做吧。只需進行一點設置,因為它具有最低的安裝和就這樣。
希望您的項目進展順利!
我建議使用Arch Linux。
我的正常啟動時間為5s(內核)+ 5s(到用戶空間),並且不需要太多的工作,因為它使用的是 systemd
進行初始化。
我在這裡上寫過一篇文章。
簡而言之:使用 systemd
。
插入電源線或後,您可以輕鬆地在不到8秒的時間內運行RaspberryPi應用。 Linux啟動開始後不到3秒。
在此示例中,我的服務稱為 samplerbox.service
:
注意:我沒有嘗試優化用戶空間時間,因為我不需要它:我的應用程序反正啟動得很早,所以我不介意網絡DHCP / IP歸屬是否需要我的應用啟動後8秒。
使用靜態鏈接的內核而不是modprobing驅動程序也可以大大提高性能。通過仔細配置和重新編譯內核,還可以進行其他優化。
使用 TinyCoreLinux 。它是為快速加載和避免電源故障而設計的。
您可以嘗試使用eINIT來加快啟動過程:: http://sourceforge.net/projects/einit/
目前很不幸(2016年10月) eINIT主頁說明:
eINIT曾經是Linux和FreeBSD的/ sbin / init程序的替代實現。好吧,我想它仍然存在,但是該項目已經擱置了多年。
刪除所有不使用的內核模塊。