Lösungen zum Erstellen von Ping und NFS in einer eingebetteten Linux-Entwicklungsumgebung

Lösungen zum Erstellen von Ping und NFS in einer eingebetteten Linux-Entwicklungsumgebung

1. Eingebettete Softwareebene

1) Bootloader->Bootloader

Die Lade- und Startaufgaben des gesamten eingebetteten Systems werden vollständig an den Bootloader übergeben. Seine Hauptaufgabe besteht darin, das Kernel-Image von der Festplatte in den RAM zu lesen und dann zum Kernel-Eintrag zu springen, um den Kernel (Betriebssystem) zu starten! Einfach ausgedrückt besteht die Aufgabe des Bootloaders darin, die Hardware zu initialisieren und das Betriebssystem zu starten.

U-BOOT ist der am häufigsten verwendete Bootloader. Nachdem Sie uboot in den NAND-Flash (ROM) der Entwicklungsplatine heruntergeladen haben, können Sie mit der Simulationssoftware Secure CRT erste Einstellungen auf der Entwicklungsplatine vornehmen. Einschließlich der Umgebungsvariablen, IP und anderer Einstellungen des Entwicklungsboards, die die Grundlage für den späteren Download des Kernels und das Laden des Dateisystems bilden.

2) Linux-Kernel

Konfigurieren Sie unterschiedliche Systemkernel, um verschiedene Hardware- und Softwareanforderungen zu erfüllen. Generell basierend auf der bestehenden Kernel-Modifikation

Kernel konfigurieren -> Kernel kompilieren -> Kernel installieren -> Kernel-Prozessdateien bereinigen (make clean)

Konfigurieren Sie den Kernel: make menuconfig ARCH=arm Wählen Sie den erforderlichen Treiber und die Protokolldatei in der menübasierten interaktiven Oberfläche aus

Kompilieren Sie den Kernel: make uImage(Kernelname) ARCH=arm CROSS_COMPILE=arm-linux-

Installieren Sie den Kernel: Laden Sie uImage basierend auf uboot über den TFTP-Server „tftp uImage 20007fc0“ auf 20000fc0 (Startadresse der Entwicklungsplatine 210) herunter.

3) Dateisystem

Einfach ausgedrückt ist ein Dateisystem eine Verzeichnisstruktur. Da die Geräte des Linux-Betriebssystems in Form von Dateien im System vorhanden sind, werden diese Dateien klassifiziert und verwaltet und es wird eine Schnittstelle für die Interaktion mit dem Kernel bereitgestellt, die eine bestimmte Verzeichnisstruktur bildet, nämlich das Dateisystem.

Grundlegender Ablauf:

  • a. Legen Sie das Stammdateisystemverzeichnis rootfs und die internen Speicherdateiverzeichnisse bin, dev, lib, sbin, sys, usr, mnt usw. fest.
  • b. Fügen Sie dem Dateisystem im Linux-Kernelverzeichnis "/home/S4-Driver/linux-smart210/" ein Kernelmodul hinzu.

" make module ARCH=arm CROSS_COMPILE=arm-linux- " Kernelkompilierung

" make module——install ARCH=arm INSTALL_MOD_PATH=/home/S5-/rootfs " Kopiere die Kerneldatei in das Root-Dateiverzeichnis

  • c. Installieren Sie den Cross-Compiler Busybox im Stammverzeichnis "/.../rootfs", konfigurieren Sie den Kernel -> kompilieren Sie den Kernel -> installieren Sie die Kopie make install;
  • d. Mounten Sie das Root-Dateisystem mithilfe von NFS. Damit lässt sich ein Echtzeit-Online-Root-Dateisystem rootfs erstellen.

SecureCRT -> Konfigurieren Sie die Parameter der Entwicklungsplatine über uboot (NFS-Konfigurationselemente) -> Laden Sie den Linux-Kernel vom TFTP-Server herunter -> Führen Sie bootm 20007fc0 aus, um ihn zu mounten!

2. Gelegentliche Probleme

1. Eine Reihe von Problemen mit dem Ping des Entwicklungsboards

1) Aufbau der Modellstruktur: PC -> kabelgebundene Netzwerkkarte -> Router -> direktes Netzwerkkabel -> Netzwerkport der Entwicklungsplatine;

2) a. Stellen Sie die virtuelle Maschine auf den Bridge-Modus ein, um sicherzustellen, dass das externe Netzwerk die IP der virtuellen Linux-Maschine finden kann.

b. Wenn der PC eine kabelgebundene Netzwerkkarte verwendet, wählen Sie Realtak USB (kabelgebundener Netzwerkanschluss) für den PC und den virtuellen Linux-Netzwerkadapter;

c. Stellen Sie sicher, dass sich die IP-Adressen der virtuellen Linux-Maschine, des PCs und der Entwicklungsplatine im selben Netzwerksegment befinden.

3) Schalten Sie die Firewall der virtuellen Linux-Maschine und des PCs aus, damit der PC Linux und das Entwicklungsboard anpingen kann

Nach Behebung des Hardware-Schnittstellenproblems ist eine Kommunikation möglich.

2. NFS-Mount-Problem

Während der NFS-Montage können Probleme wie „Server antwortet nicht“ und „Root kann nicht montiert werden“ auftreten. Der Hauptgrund dafür sind Probleme mit den Einstellungsparametern und der Download-Adresse der NFS-Montage. Beispielsweise lautet die Downloadadresse von smart210 20007fc0 (nicht 20008000). NFS verwendet standardmäßig das UDP-Kommunikationsprotokoll. Die Mounting-Parameter können online gesucht werden. Probieren Sie es einfach ein paar Mal aus, dann gibt es kein Problem. Voraussetzung ist, dass der Linux-NFS-Server normal verwendet werden kann.

Oben finden Sie alle wichtigen Informationen zum Einrichten der eingebetteten Linux-Entwicklungsumgebung und zum Lösen von Problemen mit Ping und NFS. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • So implementieren Sie die Ein-Klick-Bereitstellung von NFS unter Linux
  • Detaillierte Schritte zum Erstellen eines NFS-Dateifreigabeservers unter Linux
  • Methode zur Sicherheitshärtung für Linux NFS-Dienste
  • Detaillierte Erläuterung des NFS-Konfigurationstutorials unter Linux
  • Analyse von Installations- und Konfigurationsideen für Linux NFS-Server
  • So installieren und konfigurieren Sie einen Linux-NFS-Server (mit Bildern und Text)
  • Linux NFS-Installationskonfiguration und häufige Probleme, /etc/exports-Konfigurationsdatei, Befehl showmount
  • So mounten Sie das NFS-Netzwerkdateisystem zwischen Linux-Systemen
  • Funktionsprinzip und Beispielanalyse des Linux-NFS-Mechanismus

<<:  Der Unterschied zwischen Update und Select in MySQL für einzelne und mehrere Tabellen sowie Ansichten und temporäre Tabellen

>>:  Anzeige der Tabellenliste für die Front-End-Anwendungsentwicklung von Vue Element

Artikel empfehlen

Einfaches MySQL-Beispiel zum Sortieren chinesischer Schriftzeichen nach Pinyin

Wenn das Feld, in dem der Name gespeichert ist, d...

So verwenden Sie Vue+ElementUI Tree

Die Verwendung von Vue + ElementUI Tree dient zu ...

MySQL-Optimierung: Join statt Unterabfrage verwenden

Verwenden Sie JOIN anstelle von Unterabfragen MyS...

MySQL 5.7.21 Installations- und Konfigurations-Tutorial unter Windows 10

Dieser Artikel zeichnet die Installations- und Ko...

Wie gestaltet man eine Webseite? Wie erstelle ich eine Webseite?

Wenn es um das Verständnis von Webdesign geht, sc...

Eine detaillierte Einführung in Linux-Dateiberechtigungen

Die Stärke von Linux liegt in seinem Mehrbenutzer...

Schritte zur Vue-Batch-Update-DOM-Implementierung

Inhaltsverzeichnis Szeneneinführung Hohe Reaktion...

Für die Verwendung des Docker-Befehls ist kein Sudo erforderlich

Da der Docker-Daemon an den Unix-Socket des Hosts...

Eine kurze Diskussion darüber, wie man Div und Tabelle auswählt und kombiniert

Das Seitenlayout war mir schon immer ein Anliegen...

Lokale Vue-Komponentendatenfreigabe Vue.observable()-Nutzung

Wenn Komponenten detaillierter werden, treten Sit...