Wie wir alle wissen, ist in der Linux-Umgebung alles eine Datei und Dateien können alles darstellen. Das Dateisystem ist eine Sammlung dieser gemeinsamen Komponenten. Im eingebetteten Bereich werden auf Busybox basierende Rootfs häufig zum Erstellen von Dateisystemen verwendet.
busybox gibt es seit fast 20 Jahren und hat sich mittlerweile zum Mainstream-Tool zum Erstellen von RootFS in der Embedded-Branche entwickelt.
Der Code von Busybox ist vollständig Open Source. Sie können die offizielle Website aufrufen und unter „Get BusyBox“ auf „Quelle herunterladen“ klicken, um die Schnittstelle zum Herunterladen des Quellcodes aufzurufen.
“
Offizieller Website-Link:
https://busybox.net/“
Nach dem Herunterladen des Quellcodes muss der Quellcode vor der Kompilierung in die Kompilierungsumgebung kopiert werden. Dies umfasst hauptsächlich drei Aspekte:
1. Einstellungen der Kompilierungs-Toolkette
2. Einstellung des Kompilierungsmodus
3. Vom Dateisystem unterstützte Funktionen
Die ersten beiden Punkte müssen ausgefüllt werden, während der dritte Punkt nach den eigenen Bedürfnissen des Nutzers formuliert wird.
Führen Sie make menuconfig aus, um die Konfigurationsoberfläche aufzurufen.
Einstellungen für die Kompilierungs-Toolchain
Die eingestellte Cross-Compilation-Toolkette muss mit der Toolkette übereinstimmen, die beim Kompilieren des Kernels verwendet wird. Wenn die Cross-Compilation-Toolkette beispielsweise auf arm-linux-gnueabi- eingestellt ist, geben Sie die Build-Optionen ein, um sie festzulegen .
Natürlich können Sie die Makefile-Datei auch im Stammverzeichnis eingeben, um die entsprechende Cross-Compilation-Toolkette und Plattforminformationen zu ändern.
Einstellung des Kompilierungsmodus
Legen Sie fest, ob die kompilierte Bilddatei statisch oder dynamisch ist. Wenn sie dynamisch kompiliert wird, müssen Sie die lib-Bibliothek unter der Cross-Compilation-Toolkette manuell in den endgültigen _install-Ordner kopieren und umgekehrt. Die Konfiguration der statischen Kompilierung ist wie folgt. Sie können sehen, dass die Eingabeaufforderung in Klammern keine gemeinsam genutzten Bibliotheken enthält. Wenn diese Option nicht aktiviert ist, ist die Kompilierungsmethode dynamisch.
**Legen Sie die von rootfs unterstützten Funktionen fest
**
busybox kann Hunderte von Befehlszeilen und anderen Funktionen unterstützen, die je nach Bedarf erhöht oder verringert werden können. Wenn Sie beispielsweise eine Devmem-Befehlszeile hinzufügen, aktivieren Sie das entsprechende Aktivierungsfeld.
Kompilieren
Nachdem Sie make und make install ausgeführt haben, wird im Kompilierungspfad der Ordner _install generiert, der bin, sbin, usr und andere Dateien enthält. Überprüfen Sie den gerade hinzugefügten Befehl devmem und stellen Sie fest, dass er kompiliert wurde.
Kopieren Sie zu diesem Zeitpunkt das unter Busybox kompilierte _install als Grundgerüst von rootfs und fügen Sie dann weitere erforderliche Komponenten hinzu.
Kopieren Sie alle Dateien unter _install und erstellen Sie die Ordner lib und etc. Kopieren Sie dann die lib-Bibliothek unter der Cross-Compilation-Toolkette arm-linux-gnueabi in den erstellten lib-Ordner.
Dann erstellen Sie nacheinander Home, Opt, Run, Sys, Var, Boot, Dev, Media, Proc, TMP, Usr
Konfigurieren Sie das etc-Verzeichnis
Bevor Sie die rcS-Datei erstellen, müssen Sie den Ordner init.d im Verzeichnis etc manuell erstellen und rcS im Ordner init.d erstellen.
Führen Sie an dieser Stelle den folgenden Befehl aus, um ein kompaktes Rootfs zu packen und zu generieren.
tar -jcvf rootfs.tar.bz2 *
Verwenden Sie mfgtools, um das komprimierte rootfs.tar.bz2 auf mmc herunterzuladen, starten Sie das System erneut. Sie können sehen, dass das erstellte Root-Dateisystem normal funktioniert und der zuvor hinzugefügte devmem-Befehl auch normal ausgeführt werden kann.
Das obige ist der detaillierte Inhalt vonBringen Sie Ihnen Schritt für Schritt bei, wie Sie Linux-RootFS erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!