Wie starte ich Himbeer-Pi sehr schnell in Linux?

11

Ich möchte, dass mein Pi Zero unter Linux schnell (unter 1 Sekunde) bootet. In diesem Fall können wir so tun, als wäre es ein eingebetteter Controller und kein vollwertiger (aber langsamer) Standardcomputer.

Haben Sie (zusätzliche) Tipps, wie Sie dieses Ziel erreichen können?

Was ich schon versucht habe:

  • Verschiedene Optionen (wie Kernelparameter, benutzerdefinierte Kernel auf Standardverteilungen - Arch, Raspbian, Optimieren des Systemd-Materials usw.) - alle im Allgemeinen langsam
  • Ich habe einige Ressourcen zum Ändern der Bootloader-Kette gefunden, kann sie jedoch derzeit auf dieser Ebene nicht optimieren
  • Die besten Ergebnisse, die ich erzielen konnte, wurden von buildroot erzielt

Nach folgenden Regeln kann ich innerhalb von (ca.) 4 Sekunden booten, aber es ist trotzdem langsam:

  • Verwenden Sie nicht initrd
  • Verwenden Sie keine Module (binden Sie die erforderlichen Treiber in den Kernel ein)
  • Verwenden Sie nicht mehrere Geräte (lvm)
  • benutze keinen Überfall
  • Verwenden Sie kein Debug
    • debugfs
    • Kernel-Debug (in Kernel-Hacks)
  • Verwenden Sie kein PCI / PCMCIA
  • Verwenden Sie kein SATA / ATA
  • Verwenden Sie kein Bootup-Logo
  • Verwenden Sie keine vollständige C-Bibliothek wie glibc
  • Verwenden Sie keine Größenoptimierung
  • Aufbau
    • cmdline.txt
      • Verwenden Sie keine serielle Konsole:
        • löschen console=xxx, wobei xxx die serielle Schnittstelle ist
        • bearbeiten /etc/inittab(getty spawn)
      • Setup root fs Typ: rootfstype=ext4
    • config.txt
      • Verwenden Sie keine Startverzögerung: boot_delay=0
      • benutze keinen Regenbogen: disable_splash=1
      • Der abgesicherte Modus ist mir egal: avoid_safe_mode=1
Anspitzer
quelle
Ich bezweifle, dass Sie den Pi jemals dazu bringen werden, irgendwo in der Nähe von 1 Sekunde zu booten.
Steve Robillard
Ich denke, das Beste, was Sie bekommen können, ist unter 1 Minute. Wenn Sie wirklich einen schnellen Start für Ihre Anwendung benötigen, um etwas zu initialisieren, können Sie versuchen, alle Sensoren an einen Mikrocontroller anzuschließen und das Setup durchführen zu lassen. Lassen Sie dann den Pi den Mikrocontroller (über seriell?) Steuern, sobald er startet.
anonymoose
2
piCore (hergestellt von Tiny Core Linux) kann möglicherweise etwas schneller arbeiten.
Lichter0123

Antworten: