Je crée une application distante intégrable qui ne sera pas activée en permanence. J'ai joué avec différentes distributions de système d'exploitation et je peux réduire considérablement le temps de démarrage en utilisant de meilleures cartes SD avec des vitesses de lecture plus rapides. Je ne suis pas fixé sur une distribution particulière, donc je peux me déshabiller autant que nécessaire pour utiliser une distribution Linux minimale.
(J'ai essayé de rechercher des repères que les gens ont exécutés pour améliorer le temps de démarrage, mais je n'ai rien trouvé avec des chiffres précis.)
Je pourrais aussi utiliser build root (voir aussi la vidéo YouTube Raspberry Pi - Super Fast Boot Time - Marshmallow Entertainment System ) ...
Réponses:
Si vous combinez Arch Linux avec les fonctionnalités suggérées par Fred, vous devriez obtenir un système d'exploitation à démarrage généralement rapide.
Ce qui ralentit les temps de démarrage du système d'exploitation est
Vitesses de lecture / écriture (E / S) lentes.
Donc , vous en utilisant une carte SD plus rapide va aider,
une carte de classe 10 sera sensiblement plus rapide qu'une carte de classe 4. J'ai mal compris comment fonctionnaient les classes de cartes SD, et cela a été souligné très clairement dans les commentaires, ma mauvaise. En fait, une carte de classe 10 sera plus rapide qu'une carte de classe 4 pour les transferts de fichiers volumineux tels que la vidéo HD et ainsi de suite. Apparemment, la classe 4 fonctionne aussi bien avec des fichiers plus petits. Encore une fois, mon mauvais, mais bon, nous apprenons tous de temps en temps.Une séquence d'initialisation enlisée.
Si vous avez beaucoup de logiciels qui se déclenchent pendant la phase de démarrage, le temps de démarrage sera plus lent. Plus de logiciels démarrent == Temps de démarrage plus long.
Ainsi, si vous avez besoin d'un démarrage rapide, coupez autant de logiciels que possible de la séquence d'initialisation. Vous pouvez créer un script simple (ou je suis sûr qu'il y en a un) qui lancera le logiciel une fois la séquence de démarrage principale terminée, répartissant la charge un peu plus.
C'est essentiellement ça. Arch Linux est probablement le chemin à parcourir, combiné avec les fonctionnalités mentionnées par Fred, comme je l'ai déjà dit. Arch est un système d'exploitation très minimal et n'est peut-être pas la meilleure chose à utiliser pour un débutant, mais si vous avez de l'expérience sous Linux, alors allez-y. Cela prend juste un peu de configuration, car il est livré avec le strict minimum à installer et c'est tout .
J'espère que votre projet va bien!
la source
Je suggère d'utiliser Arch Linux.
J'obtiens un temps de démarrage normal de 5s (noyau) + 5s (vers l'espace utilisateur) et cela ne nécessite pas beaucoup d'efforts, car il utilise
systemd
for init.la source
systemd
fait beaucoup de différence par rapport àsysvinit
. Voir ma réponse .J'ai écrit un article ici à ce sujet.
En bref: utilisez
systemd
.Vous pouvez facilement faire fonctionner votre application RaspberryPi moins de 8 secondes après avoir branché le cordon d'alimentation ou moins de 3 secondes après le démarrage de Linux.
Un exemple ici, mon service s'appelle
samplerbox.service
:Remarque: Je n'ai pas essayé d'optimiser le temps de l'espace utilisateur parce que je n'en ai pas besoin: mon application démarre tôt de toute façon, donc cela ne me dérange pas si l'attribution de réseau DHCP / IP prend 8 secondes après le lancement de mon application.
la source
La solution optimale est probablement de construire une distribution qui ne fait exactement que ce que vous voulez qu'elle démarre, de cette façon, vous êtes garanti un temps minimal (en utilisant un système d'initialisation minimaliste comme sinit ). Vous pouvez également envisager d'utiliser la fonction de suspension sur disque ( hibernation ) du noyau Linux. Une fois démarré, les opérations de suspension et de reprise plus tard sont assez rapides et le système est entièrement éteint entre-temps.
la source
L'utilisation d'un noyau lié statiquement au lieu de pilotes de modprobing peut également augmenter considérablement les performances. Il y a d'autres optimisations à faire en configurant et recompilant soigneusement un noyau.
la source
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: ...
)Utilisez TinyCoreLinux . Il est conçu pour un chargement rapide et pour survivre aux pannes de courant.
la source
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!
)Vous pouvez essayer d'utiliser eINIT pour accélérer le processus de démarrage:: http://sourceforge.net/projects/einit/
Malheureusement actuellement (octobre 2016), la page d'accueil eINIT note:
la source
Supprimez tous les modules du noyau que vous n'utiliserez pas.
la source