Tworzę urządzenie gospodarstwa domowego, które wewnętrznie używa Raspberry Pi do obsługi interfejsu użytkownika i niezbędnego połączenia WiFi. Połączony z R-Pi mam ekran LCD AdaFruit:
i klucz USB Wi-Fi:
A także klawiatura. Nic więcej. System operacyjny to OpenElec , który jest dość uproszczonym systemem operacyjnym.
Jednak gdy użytkownik włączy urządzenie, R-Pi potrzebuje wielu sekund, zanim zaakceptuje dane wprowadzone przez użytkownika.
Dlaczego tak długo trwa, gdy uruchamia się z pamięci flash? Dziesiątki sekund wydają się świetnym obliczeniem.
Czy jest coś, co można zrobić, aby uruchomić boot Raspberry Pi w mniej niż 5 sekund? Czy mogą przejść w tryb hibernacji, w którym zapisuje swoją pamięć RAM do FLASH, a następnie odczytują ją ponownie po włączeniu?
W przeciwnym razie, czy istnieje alternatywa dla Raspberry-Pi o podobnych możliwościach (mały ekran LCD, USB do klucza Wi-Fi), który można uruchomić w czasie krótszym niż 5 sekund?
Odpowiedzi:
Nie pracowałem z Raspberry Pi, ale skróciłem czas uruchamiania z wbudowanymi systemami Linux, więc mam kilka ogólnych odpowiedzi.
1) OpenElec może być doskonale działającą osadzoną dystrybucją, ale dystrybucje dla początkujących / demo zwykle rzucają się do zlewu kuchennego, aby dać ci szeroki zakres możliwości, ale często oznacza to, że zaczynają się usługi, których nie potrzebujesz. Więc zajrzyj do katalogów init i wyłącz lub odłóż wszystko, co nie jest istotne dla twoich celów. Jeśli nie potrzebujesz niczego graficznego, w wolniejszych systemach X Window lub procesy graficzne mogą być wieprzami w czasie rzeczywistym. Niekoniecznie dlatego, że nie może odpowiednio wygenerować grafiki, ale załadowanie wszystkich bibliotek do pamięci zajmuje dużo czasu. A ładowanie zajmuje trochę czasu, gdy wszystko, czego chcesz, to ładowanie lub oczekiwanie na załadowanie.
2) Karty SD mają różne prędkości odczytu, kup najszybszą, którą urządzenie może obsłużyć. A może sprawdź, czy pamięć USB ładuje się szybciej. Prawdopodobnie nie będziesz potrzebować kart 40 Mb / s, ale przejście z taniej karty SD na kartę obsługującą transfery 10 Mb / s może mieć znaczenie - znowu w zależności od tego, jakie karty SD obsługuje Pi. Jako styczna: zjechanie z karty SD, jeśli system plików jest zapisywalny, nie jest świetne dla stabilności długoterminowej. W razie potrzeby może być konieczne skonfigurowanie ustawień rozruchu w celu traktowania karty jako tylko do odczytu lub całkowicie innych ustaleń systemowych.
3) Jeśli naprawdę potrzebujesz grafiki, iluzja bycia uruchomionym jest czasem łatwiejsza do uzyskania niż faktyczna gotowość na każde wejście. Istnieją programy uruchamiające ekran powitalny konsoli, które mogą bardzo szybko wyświetlić grafikę, podczas gdy wszystkie inne usługi, których potrzebujesz, należy uruchomić. Widziałem przypadki, w których początkowa grafika panelu sterowania jest używana jako statyczny ekran rozruchowy, który zamienia się na działający na żywo, gdy system jest gotowy - użytkownik rzadko naprawdę chce wprowadzić dane w ciągu 2-3 sekund od wyświetlenia ekranu w górę.
Jeśli nadal szukasz krótszych czasów uruchamiania, poszukaj tutaj listy obszarów do sprawdzenia.
źródło
Częścią odpowiedzi może być kwestia przepustowości. Chociaż karty SD używają pamięci flash NAND, mogą przesyłać dane tylko szeregowo. W porównaniu do, powiedzmy, mikroukładu flash NAND, który został przylutowany do płytki, który mógł komunikować się bezpośrednio z CPU za pomocą równoległej magistrali. Ogólna szybkość transferu byłaby z grubsza zależna od kilku czynników, takich jak szybkość zegara magistrali i rozmiar przesyłanych plików.
Szybkość transferu karty SD jest w rzeczywistości dość niska w porównaniu z nowoczesnym dyskiem twardym SATA III, a nawet SATA II. Poza portem SATA, USB 3.0 to kolejna alternatywa, która ma dość wysoką szybkość transferu przy stosunkowo niskim koszcie.
Więcej informacji można znaleźć tutaj , tutaj i tutaj .
Procesor, z którego korzysta Pi, jest dość niskiej jakości (stąd cena). Oznacza to, że brakuje mu szybkich interfejsów, takich jak SATA lub USB 3.0. Poza emulacją oprogramowania tych protokołów (która prawdopodobnie będzie również cierpieć z powodu poważnych problemów z przepustowością), niewiele można zrobić poza przycinaniem tłuszczu z systemu operacyjnego.
Według OpenElec, Pi nie obsługuje hibernacji , ale jeśli przeczytasz trochę dalej, mają porady dotyczące przyspieszenia twojego Pi .
źródło
Ogólnie rzecz biorąc, czytanie z SD jest bardzo wolne, więc wpływa drastycznie.
Wypróbuj program rozruchowy i dowiedz się, czy jest jakiś czas, aby poprawić czas uruchamiania.
Lub możesz skonfigurować własne jądro, aby miało bardzo mały rozmiar. Lub pomijanie niepotrzebnej inicjalizacji (wyszukiwanie dziwne lub coś takiego) może pomóc.
źródło
Potrzebujesz minimalistycznej dystrybucji Linuksa Pi, takiej jak PiCore . IT buty do wiersza polecenia po zaledwie 7 sekund , a ona potrzebuje 25 sekund na X. Możesz grać z nim w QEMU , jeśli chcesz.
źródło