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

Schritte zum Übertragen von Dateien und Ordnern zwischen zwei Linux-Servern

Heute habe ich mich mit der Migration eines Proje...

Detaillierte Schritte zum Starten des Django-Projekts mit nginx+uwsgi

Wenn wir ein Webprojekt mit Django entwickeln, wi...

Mysql | Detaillierte Erklärung der Fuzzy-Abfrage mit Platzhaltern (wie, %, _)

Wildcard-Kategorien: %Prozent-Platzhalter: Gibt a...

Detaillierte Erklärung der MySQL-Syntax, Sonderzeichen und regulären Ausdrücke

Häufig verwendete Anzeigebefehle für MySQL 1. Zei...

Grafisches Tutorial zur Installation von MySQL 5.5.27

1. Installation von MySQL 1. Öffnen Sie die herun...

Natives, benutzerdefiniertes Rechtsklickmenü von js

In diesem Artikelbeispiel wird der spezifische Co...

Drei Möglichkeiten zur Implementierung von Animationen in CSS3

Hiermit werden die Grundkenntnisse des Interviewt...

Formel und Berechnungsmethode zur Schätzung der Server-Parallelität

Vor Kurzem musste ich den Server erneut einem Str...

Stellen Sie die Nginx+Flask+Mongo-Anwendung mit Docker bereit

Als Server wird Nginx verwendet, als Datenbankunt...

Detailliertes Tutorial zur Installation von MySQL 8.0.20 auf CentOS7.8

1. MySQL-Software installieren Laden Sie das offi...

Vue implementiert Baumtabelle durch Elementbaumsteuerung

Inhaltsverzeichnis Implementierungs-Effekt-Diagra...

Verwenden einer MySQL-Datenbank mit Python 3.4 unter Windows 7

Der detaillierte Prozess der Verwendung der MySQL...

So erstellen Sie einen DHCP-Server in Linux

Inhaltsverzeichnis 1. Grundkenntnisse: 2. DHCP-Se...