題:
如何縮短Raspberry Pi的啟動時間?
Layke
2014-03-26 17:15:27 UTC
view on stackexchange narkive permalink

我正在創建一個不會永久打開的嵌入式遠程應用程序。我一直在研究不同的操作系統發行版,並且可以使用更好的 SD卡和更快的讀取速度來減少啟動時間。我並沒有固定在任何特定的發行版上,因此我可以盡可能地減少使用最小的Linux發行版。

(我試圖尋找人們為提高啟動時間而運行的基準,但是我沒有發現任何有力的數據。)

我也可以使用 build root(另請參見YouTube視頻 Raspberry Pi-超快速啟動時間-棉花糖娛樂系統 )...

您應該投票結束這個問題。然後,用戶將被重定向到原始問題並添加更多答案。由於尚未被標記為已回答。
我只是在想這個人有很多活動(觀點不那麼高,僅僅是因為這個人還不到一天,所以),更多的選票和更多的答案,所以我認為最好離開這個人向上,然後將答案移到此處。我認為這真的是為了方便。 1個用戶將答案移了過來,而3個用戶將答案移了下來,因此失去了所有投票,對話等權利。有什麼理由我們應該選擇一種或另一種方式?我不在乎,我只是想回答的其他人可能不想搬家,因此我們失去了滿足感
@ppumkin查看有關關閉重複項的此Meta.SE帖子:[請勿刪除良好的重複項](http://meta.stackexchange.com/questions/32311/do-not-delete-good-duplicates)和[此SE博客文章](http://blog.stackoverflow.com/2009/04/handling-duplicate-questions/)。我認為他們同意我的觀點。除非重複項是另一項的複制粘貼或質量很差,並且*和*因為該答复項具有大量答案/活動,否則我們應該將它們都保持開放狀態。
是的-您不應該刪除它們,但是它們會問相同的問題,現在關於同一件事有兩個線程。我認為這是重複關閉的主要功能,可以將重複鏈接到一個地方。現在沒有人知道另一個問題,也許一個月後可能會用不同的答案問同樣的問題。因此,即使隨著時間的流逝和新技術的出現,也只應更新1個答案。那是我的想法,這是在繁忙的交流中如何完成的。
@ppumkin好點,只要這一點沒有被刪除即可。我最初查看了“休假”,但我想將此標記為重複是正確的方法。我唯一能想到的是,我至少要對標記的原件比對副本上的質量更高。這裡絕對不是這種情況。
是的,你是對的。這裡還有更多答案。似乎得到了更多的關注。我想我們需要讓主持人決定,因為他們會更好地了解在這裡做什麼。無論如何。在為您的答案分配投票時做得很好:)我確信OP感謝您的貢獻。 +1
謝謝你的誇獎。請不要覺得我正在為代表做這件事,或者不要將注意力放在另一個問題/您的答案上,我只是認為這是保持開放狀態的更好選擇。這樣,人們可以繼續添加討論內容,就像自從整個騙局開始以來添加的兩個新內容一樣。這在聊天中可能會更好,但是只要問題解決了,我就很高興。
八 答案:
RPiAwesomeness
2014-03-26 19:37:53 UTC
view on stackexchange narkive permalink

如果將Arch Linux與Fred建議的功能結合起來,您應該會獲得一個通常快速啟動的操作系統。

減慢操作系統啟動時間的是

  1. 慢的讀/寫(I / O)速度。

    因此,使用更快的SD卡將會有所幫助, 10類卡將比4類卡快得多 strike>。我誤解了SD卡類的工作原理,在評論中已經很清楚地指出了這一點,這很不好。實際上,對於大文件傳輸(例如HD視頻和諸如此類),Class 10卡要比Class 4卡更快。顯然,對於較小的文件,第4類的性能也一樣。再次,我不好,但是,嘿,我們都一次又一次地學習。

  2. 一個陷入困境的初始化序列。

    如果您有很多在引導階段啟動的軟件,則引導時間將變慢。更多的軟件啟動==更長的啟動時間。

    因此,如果需要快速啟動,請從初始化順序中盡可能多地減少軟件。您可以創建一個簡單的腳本(或者我確定那裡有一個腳本),該腳本將在主啟動序列完成後啟動軟件 ,將負載分散更多。

  3. ol>

    基本上就是這樣。正如我之前所說的,結合Linux的功能可能是要使用Arch Linux。 Arch是非常的最小操作系統,對於初學者來說可能不是最好的選擇,但是如果您有Linux的經驗,那就去做吧。只需進行一點設置,因為它具有最低的安裝和就這樣

    希望您的項目進展順利!

SD卡“等級”是嵌入式系統性能的非常差的指標。 “類別”等級適用於大型連續文件傳輸(例如使用數百萬像素的數碼相機),而不適用於小型文件(例如啟動腳本)。在4k讀寫操作中,Class 4卡通常比大多數Class 10卡好100倍以上。有具有良好IOPS的Class 10卡,但是這些型號很少而且相差甚遠。
是的,我同意@BenVoigt-當我使用第4類時,似乎小的寫入和更新速度很快,但是,在第10類中進行較大的傳輸要好得多。我希望我可以使用由電池供電的RAM卡來獲得即時性能。
對不起,我不知道。我將立即解決。我了解到,班級越高,速度就越高。感謝您指出,我剛剛學到了一些:D也感謝您的支持:)
我想知道為什麼我的答案被否決了。我並不完全介意失去代表,我只想知道應否決選,所以我可以改善答案。
10robinho
2014-03-26 19:08:43 UTC
view on stackexchange narkive permalink

我建議使用Arch Linux。

我的正常啟動時間為5s(內核)+ 5s(到用戶空間),並且不需要太多的工作,因為它使用的是 systemd 進行初始化。

-1
@JohnLaRooy不錯。我以為與傳統init相比,性能上的差異主要是因為systemd可以並行化,但由於不必為所有內容分叉和解釋shell腳本,因此也可以節省時間。
@goldilocks我不同意,我嘗試過,與`sysvinit`相比,`systemd`有很大不同。參見[我的答案](http://raspberrypi.stackexchange.com/a/32077/12350)。
@Basj甚至更好地知道。我刪除了對此的評論,可能不會“在引導時間方面有很大不同,因為它是在單個內核上”。我主要使用systemd,但是TBH我不太注意啟動時間。
Basj
2015-05-30 17:52:12 UTC
view on stackexchange narkive permalink

我在這裡上寫過一篇文章。

簡而言之:使用 systemd

插入電源線或後,您可以輕鬆地在不到8秒的時間內運行RaspberryPi應用。 Linux啟動開始後不到3秒

在此示例中,我的服務稱為 samplerbox.service

enter image description here

注意:我沒有嘗試優化用戶空間時間,因為我不需要它:我的應用程序反正啟動得很早,所以我不介意網絡DHCP / IP歸屬是否需要我的應用啟動後8秒。

Fred
2014-03-26 18:09:19 UTC
view on stackexchange narkive permalink

最佳解決方案可能是構建一個發行版,該發行版僅能完全滿足您希望在啟動時進行的發行,這樣可以確保您有最少的時間(使用諸如 sinit之類的簡約初始化系統)。或者,您可以考慮使用Linux內核的掛起磁盤(休眠)功能。一旦啟動,以後的暫停和恢復操作很快,並且與此同時系統完全關閉。

Drunken Code Monkey
2014-03-27 08:22:36 UTC
view on stackexchange narkive permalink

使用靜態鏈接的內核而不是modprobing驅動程序也可以大大提高性能。通過仔細配置和重新編譯內核,還可以進行其他優化。

很抱歉碰到一個古老的答案。但是您能否提供更多有關“使用靜態鏈接的內核”的信息?
在這裡看看:https://www.raspberrypi.org/documentation/linux/kernel/building.md。
除此之外,要編譯靜態鏈接的內核,您只需要通過“ make menuconfig”或“ make xconfig”並將所需的驅動程序包含在內核中,而不是將它們選擇為模塊即可。這樣做會將它們烹煮到vmlinuz中,並讓您跳過啟動時的modprobe序列,這會花費大量時間來檢測和加載所需的內核模塊。
謝謝您的回答。為了使它有用,您是否可以包括一些可重複的步驟以使其起作用? (類似於`1),在命令行中執行此操作,2)執行此操作,並執行此操作3)在config.txt中修改此操作,並執行此操作4)啟動,將花費3.2秒! 5)這是我的基準測試結果:...`)
並非如此,重新編譯內核並不是一個5個步驟的簡單過程。網絡上有很多方法指南,向您展示如何配置和編譯Linux內核...
avra
2014-03-27 13:39:11 UTC
view on stackexchange narkive permalink

使用 TinyCoreLinux 。它是為快速加載和避免電源故障而設計的。

謝謝您的回答。您能否包括一些可重複的步驟以使其正常工作? (類似於“ 1”),在此處下載圖像:+ link 2)在microSD上將其刷新3)在config.txt中對此進行修改4)啟動,這將需要3.2秒!)
user13783
2014-03-27 14:20:16 UTC
view on stackexchange narkive permalink

您可以嘗試使用eINIT來加快啟動過程:: http://sourceforge.net/projects/einit/

目前很不幸(2016年10月) eINIT主頁說明:

eINIT曾經是Linux和FreeBSD的/ sbin / init程序的替代實現。好吧,我想它仍然存在,但是該項目已經擱置了多年。

我們正在[就此處有關無信息的僅鏈接的答案嘗試新政策](http://meta.raspberrypi.stackexchange.com/q/842/5538)。如果該帖子未經過編輯以包含可以作為答案的信息(無論是最少的信息),那麼它將在48小時內轉換為Community Wiki,以簡化由社區更正的信息。
mrpi64
2014-04-02 17:10:16 UTC
view on stackexchange narkive permalink

刪除所有不使用的內核模塊。

該站點上的答案應包括執行建議的操作所需的步驟(如何確定加載了哪些模塊,需要哪些模塊以及如何將其刪除),以及更多信息的參考和鏈接。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...