Erstellen Sie ein Root-Dateisystem (rootfs) basierend auf Linux
- 1. Erforderliche Bedingungen
- 2. Installieren Sie die Cross-Compilation-Kette
- 3. Laden Sie das Buildroot-Codepaket herunter
- 4. Starten Sie buildroot, um das Root-Dateisystem zu erstellen
- 5. Konfiguration des Dateisystems menuconfig
-
- 5.1.Zieloptionen —> Konfigurationsanweisungen
- 5.2.Build-Optionen —> Konfigurationsanweisungen
- 5.3.Toolchain —> Konfigurationsanweisungen
- 5.4.Systemkonfiguration —> Konfigurationsanweisungen
- 5.5.Kernel —> Konfigurationsanweisungen
- 5.6.Zielpakete —> Konfigurationsanweisungen
- 5.7.Dateisystem-Images —> Konfigurationsanweisungen
- 5.8.Bootloader —> Konfigurationsanweisungen
- 6. Bestätigen und speichern Sie die Konfiguration
- 7. Kompilieren
1. Erforderliche Bedingungen
Entwicklungsumgebung: Ubuntu16.04
Entwicklungsplattform: f1c100s
2. Installieren Sie die Cross-Compilation-Kette
1. Erstellen Sie einen neuen Ordner: mkdir toolchain und geben Sie ein: cd toolchain
2. Laden Sie die Kompilierungskette herunter: wget https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi. tar .xz
Hinweis: Wenn ein entsprechendes Cross-Compiler-komprimiertes Paket vorhanden ist, kopieren Sie es einfach in das entsprechende Verzeichnis und dekomprimieren Sie es selbst.
3. Dekomprimieren: xz -d file.tar.xz Erneut dekomprimieren: tar -xvf file.tar
4. Kopieren Sie es in das entsprechende Verzeichnis (ich habe es in /usr/local/arm-gcc/ abgelegt, Sie können den Pfad entsprechend Ihren eigenen Bedürfnissen auswählen, Sie werden ihn später benötigen)
5. Öffnen Sie .bashrc: vim .bashrc und fügen Sie den bin-Dateipfad der Kompilierungskette hinzu (ähnlich wie beim Hinzufügen von Umgebungsvariablen unter Windows):
Fügen Sie am Ende der Datei den folgenden Inhalt hinzu
PATH="$PATH:/usr/local/arm-gcc/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin/"
Dann speichern und beenden und schließlich die Umgebungsvariablen aktualisieren: Quelle .bashrc
3. Laden Sie das Buildroot-Codepaket herunter
1. Sie können das neueste Codepaket über den Link https://buildroot.org/download.html herunterladen (das Öffnen der Webseite ist sehr langsam, es sei denn, Sie können ... na ja, „Over the wall“).
4. Starten Sie buildroot, um das Root-Dateisystem zu erstellen
1) Kopieren Sie das heruntergeladene komprimierte Paket buildroot-2021.02.6.tar.gz nach Ubuntu, dekomprimieren Sie es und geben Sie das Verzeichnis buildroot-2021.02.6 ein (es wird empfohlen, ein neues Verzeichnis zu erstellen).
mkdir make_rootfs
tar -xzvf buildroot-2021.02.6.tar.gz
cd buildroot-2021.02.6
5. Konfiguration des Dateisystems menuconfig
1) Rufen Sie die grafische Konfigurationsoberfläche auf
make menuconfig
5.1.Zieloptionen —> Konfigurationsanweisungen
1) Da wir f1c100s verwenden und die CPU-Architektur ARM9 ist, müssen wir den Konfigurationsinhalt wie folgt ändern:
5.2.Build-Optionen —> Konfigurationsanweisungen
Generierungsoptionen: Wählen Sie entsprechend Ihrer tatsächlichen Situation. Hier verwende ich direkt die Standardkonfiguration.
5.3.Toolchain —> Konfigurationsanweisungen
Auswahl der Kompilierungs-Toolkette: Dies muss entsprechend Ihrer tatsächlichen Situation geändert werden. Insgesamt wurden hier 9 Orte geändert.
1)Toolchain-Typ () —>
Der Standardwert ist Buildroot-Toolchain (interne Toolchain).
Hier wählen wir Externe Toolchain (externe Toolchain)
2)Toolchain () —>
Wählen Sie eine benutzerdefinierte Toolchain aus
3)Toolchain-Ursprung () –>
Wählen Sie die Toolchain-Quelle aus. Standardmäßig wird Vorinstallierte Toolchain (vorinstallierte Toolchain) ausgewählt.
4)Toolchain-Pfad ()
Pfad der Cross-Compilation-Toolchain
Suchen Sie den Pfad Ihrer eigenen Cross-Compilation-Toolchain und geben Sie ihn ein. Wenn Sie die Cross-Compilation-Kette oben installiert haben, kennen Sie den Pfad bereits: /usr/local/arm-gcc/gcc-linaro-7.2 .1-2017.11-x86_64_arm -linux-gnueabi
5) ($(ARCH)-linux) Toolchain-Präfix ()
Konfigurieren Sie das Präfix der Cross-Compilation-Toolkette
Meine Cross-Compilation-Toolkette ist: arm-linux-gnueabi, also füllen wir sie aus als: $(ARCH)-linux-gnueabi
6)Externe Toolchain-gcc-Version () –>
Wählen Sie die externe Cross-Compilation-Toolchain-Version aus
arm-linux-gnueabi-gcc -v
Da wir uns auf Version 7.2.1 befinden, wählen Sie Version 7.x der externen Cross-Compilation-Toolkette
7)Externe Toolchain-Kernel-Header-Serie () —>
Externe Tool-Chain-Kernel-Header-Serie. Hier geben wir das Cross-Compilation-Tool-Chain-Verzeichnis ein und suchen nach der Versionsinformationsdatei.
Der Pfad ist der, in dem wir gerade die Cross-Compilation-Toolkette installiert haben:
vim /usr/local/arm-gcc/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/arm-linux-gnueabi/libc/usr/include/linux/version.h
Die Konvertierung von 264707 in hexadezimal ist 40A03 und für dezimal ist es 4.10.3
Hier wählen wir 4.10.X
8)Externe Toolchain-C-Bibliothek () —>
Externe Toolchain-C-Bibliothek
9) Die Toolkette unterstützt C++-Optionen
5.4.Systemkonfiguration —> Konfigurationsanweisungen
Systemkonfiguration: Diese muss entsprechend Ihrer tatsächlichen Situation geändert werden. Ich habe hier 5 Stellen geändert.
1) Ändern Sie den Systemhostnamen
2) Ändern Sie die Anmeldeaufforderung
3) Ändern Sie die Gerätemontagemethode
4) Anmeldepasswort ändern
Hinweis: Der Standard-Anmeldekontoname ist root
5) Ändern Sie die System-Login-Seriennummer
Der TTY-Port wird hier so geändert, dass er die System-Login-Seriennummer Ihres eigenen Entwicklungsboards ist.
Baudrate Ändern Sie die Baudrate der seriellen Schnittstelle
5.5.Kernel —> Konfigurationsanweisungen
Kernel-Konfiguration: Wir müssen den Kernel hier nicht kompilieren, hier deaktivieren wir ihn
5.6.Zielpakete —> Konfigurationsanweisungen
Zielpaket: Dateisystempaket und Bibliotheksdatei-Installationspaket. Dies muss entsprechend Ihrer tatsächlichen Situation geändert werden. Hier verwende ich einfach die Standardkonfiguration.
5.7.Dateisystem-Images —> Konfigurationsanweisungen
Dateisystemspiegelung: Hier verwende ich direkt die Standardkonfiguration
5.8.Bootloader —> Konfigurationsanweisungen
System-Bootloader:
Wir müssen U-Boot hier nicht kompilieren, wir deaktivieren U-Boot.
Kümmere dich um nichts anderes.
6. Bestätigen und speichern Sie die Konfiguration
7. Kompilieren
1) Führen Sie den Kompilierungsbefehl aus:
make
2) Beginnen Sie mit dem Kompilieren. Bei der ersten Kompilierung wird automatisch die exakte DL-Datei heruntergeladen. Der gesamte Vorgang wird einige Zeit dauern.
3) Nach der Kompilierung wird die Datei rootfs.tar in buildroot-2019.02.2/output/images generiert. Zu diesem Zeitpunkt ist die Buildroot-Kompilierung abgeschlossen.