Ich werde Build-Umgebung einrichten, um mein eigenes Linux-Embedded-System für AT91SAM9X25 Board zu machen. Ich verwende buildroot, um dies zu tun. Der make-Befehl erstellt alle Ziele, zuerst erstellt er toolchain, dann Pakete und dann rootfs und Bilder von rootfs (tar, cpio ...). Um rootfs neu zu erstellen verwende ich normalerweise make clean und dann make. Der Befehl make clean entfernt alle und die Toolchain.wie man rootfs in buildroot wieder herstellt
Also die erste meine Frage ist: Gibt es eine Möglichkeit, rootfs neu zu erstellen, ohne Toolchain zu bauen? Es benötigt viel Zeit.
Auch ich baue Linux-Kernel innerhalb von Buildroot. Ich habe BR2_LINUX_KERNEL [= y] in Buildroot aktiviert. Das Linux ist so konfiguriert, dass es das Initial RAM-Dateisystem verwendet. Um den Kernel zu erstellen, benötigte es ein Image von rootfs (welches von buildroot erstellt werden sollte). Wenn ich make unter root von buildroot starte, scheitert das Gebäude mit dem Fehler 'buildroot-2013.05/output/images/rootfs.cpio' kann nicht geöffnet werden. Denn (wenn ich das richtig verstehe) ist die Buildsequenz toolchain - pakages - rootfs - linux kernel - images von rootfs. Wenn es versucht, Linux-Kernel zu erstellen, wird das Bild rootfs.cpio nicht erstellt.
Also die zweite Frage ist: Wie Linux in Buildroot zu erstellen, wenn ich Initial RAM-Dateisystem verwenden möchte?
Gibt es möglicherweise effizientere Alternativen als buildroot?
Vielen Dank im Voraus.
Lassen Sie mich meine Frage bezüglich des Erstellens von Linux Kernel in buildroot umformulieren (könnte ich erklärt nicht klar genug sein). Buildroot macht: 1.Toolchain -> 2.Packages -> 3.Linux Kernel -> 4.rootfs Bilder. Aber in Schritt 3 (Linux-Kernel) sind rootfs-Images erforderlich, da Linux als initiales RAM-Dateisystem konfiguriert ist, aber wir haben es nur in Schritt 4 bekommen. Das Problem - Ich sehe Fehlermeldung in Schritt 3: Es gibt kein rootfs.cpio – Yuri
* "Linux als Verwendung konfiguriert Initial RAM Dateisystem" * - ** Ist Buildroot auch für initramfs ** konfiguriert? Der Fehler in Schritt 3 bedeutet, dass Sie Buildroot nicht korrekt konfiguriert haben. Ihre Bedenken, wie Buildroot mit einem scheinbar problematischen Huhn-Ei-Problem umgehen kann, sind in der [commit-Beschreibung für "Unterstützung für initramfs hinzufügen"] beschrieben (http://git.uclibc.org/buildroot/commit/?id=f507921d391bb2578261a9e45c003e72302dc67a). . Im Wesentlichen führt Buildroot Schritt 3 mit einer * empty * initramfs-Datei durch und führt dann einen zusätzlichen Schritt # 5 aus, um einen Kernel mit dem tatsächlichen initramfs zu erzeugen. – sawdust
Ihre Antwort (d. H. Das Entfernen der .stamp_xxx-Dateien) war sehr nützlich, um die Neuerstellung von rootfs zu erzwingen. Allerdings habe ich den rootfs mit einem Overlay zusätzliche Dinge hinzugefügt. Wenn ich zu einer (geringfügig) anderen Konfiguration ohne das rootfs-Overlay übergehe, wird die Datei aus dem alten Overlay NICHT aus der Struktur unter "target /" oder aus dem endgültigen Bild entfernt. Ich habe versucht, den Inhalt von "target" zu löschen, aber das verursachte einen Build-Fehler (es ist keine einfache Build-Ausgabe). Gibt es eine Möglichkeit, Dinge, die aus den Roots entfernt wurden, zu säubern, ohne eine vollständige Entfernung/Wiederherstellung durchzuführen? – Jeremy