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

Einführung in Sublime Text 2, ein Web-Frontend-Tool

Sublime Text 2 ist ein leichter, einfacher, effiz...

So richten Sie ein Bereitstellungsprojekt unter einem Linux-System ein

1. Ändern Sie die Firewall-Einstellungen und öffn...

Referenz zur Webseitenerstellung im IE6 - Standardstil im IE6

Dies ist eigentlich kein offizielles Dokument des ...

So ändern Sie das Root-Passwort in MySQL 5.7

Ab MySQL 5.7 wurden viele Sicherheitsupdates hinz...

Implementierungsmethode und Beispielcode des Tomcat-Klassenladers

Tomcat definiert intern mehrere ClassLoader, soda...

Das Bildelement img hat in IE6 zusätzlichen Leerraum

Beim Erstellen eines DIV+CSS-Layouts einer Seite ...

Vue-Vorlagenkonfiguration und Webstorm-Codeformatspezifikationseinstellungen

Inhaltsverzeichnis 1. Einstellungen für die Spezi...

Singleton-Entwurfsmuster in JavaScript

Inhaltsverzeichnis 1. Was ist ein Entwurfsmuster?...