Heim >System-Tutorial >LINUX >Eingehende Analyse des Kernel-Quellbaums: die Synergie zwischen Kconfig-Dateien und Makefiles
Prinzip
Jedes Verzeichnis im Kernel-Quellbaum enthält auch eine Kconfig-Datei, die zur Beschreibung des Kernel-Konfigurationsmenüs im Zusammenhang mit dem Quellcode im Verzeichnis verwendet wird. Die Kconfig-Dateien in jedem Verzeichnis bilden eine verteilte Kernel-Konfigurationsdatenbank.
Wenn Sie den Kernel über den Befehl makemenuconfig konfigurieren, lesen Sie das Menü aus der Kconfig-Datei. Analyse des Speichertechnologieprinzips: Basierend auf dem Linux 26-Kernel-Quellcode wird die Konfiguration abgeschlossen und in der Kernel-Konfigurationsdatei mit dem Namen .config für gespeichert Makefile zum Kompilieren, das im Kernel verwendet wird.
Das Makefile in der obersten Etage des Quellcode-Verzeichnisbaums ist der Eingang zur gesamten Kernel-Quellcodeverwaltung und spielt eine entscheidende Rolle bei der Quellcode-Kompilierung des gesamten Kernels. Beim Kompilieren des Kernels unter Linux C durchläuft das Makefile der obersten Etage rekursiv die Makefile-Dateien in allen Unterverzeichnissen des Kernel-Quellcodes gemäß den Regeln, um die Kompilierung der Kernelmodule in jedem Unterverzeichnis abzuschließen.
Konfigurieren Sie den Kernel
Gehen Sie in das Verzeichnis im obersten Stockwerk des Linux-Kernel-Quellcodes und geben Sie den Befehl makemenuconfig ein. Sie können die Hauptschnittstelle der Linux-Kernel-Konfiguration basierend auf Ncurses eingeben muss es in der Befehlszeile angeben:
make ARCH<span class="token operator">=</span>arm menuconfig
Verzeichnis der ersten Ebene
Fast jedes Element im Menü der ersten Ebene verfügt über komplexe Untermenüs auf der unteren Ebene, und ihre jeweiligen Konfigurationsoptionen sind ebenfalls sehr umfangreich. Es wäre eine sehr komplizierte Aufgabe, sie einzeln zu beschreiben. Bei der tatsächlichen Produktentwicklung ist es nicht erforderlich, jedes Konfigurationselement des Kernels vollständig zu verstehen. Im Allgemeinen müssen Sie nur einige der zugehörigen Elemente verstehen.
Das sekundäre Verzeichnis Generalsetup ist die Menüoberfläche für die allgemeinen Kerneleinstellungen
SystemVIPC repräsentiert die prozessübergreifende Kommunikation InterProcess des Systems
Kommunikation, die vom Prozessor zum Synchronisieren und Austauschen von Informationen zwischen Programmen verwendet wird
Enableeventpollsupport: Unterstützt den Systemaufruf von Storm Polling.
Enableloadablemodulesupport ist die Kernel-Modulkonfiguration
Moduleunloading ermöglicht das Entladen bereits geladener Module
Moduleversioningsupport ermöglicht die Verwendung von Modulen aus anderen Kernel-Versionen (es können Probleme auftreten)
Sourcechecksumforallmodules kalibriert den Quellcode für alle Module. Wenn Sie das Kernelmodul nicht selbst kompilieren, benötigen Sie diese Funktion nicht.
Aktivieren Sie die Block-Layer-Blockgeräteunterstützung
Wer Festplatten-/USB-/SCSI-Geräte verwendet, muss diese Option auswählen, um das Entfernen des Blockgeräts aus dem Kernel zu ermöglichen:
Unterstützung für große (2 TB+) Blockgeräte und Dateien ist nur erforderlich, wenn Blockgeräte kleiner als 2 TB verwendet werden
Blocklayerbiothrottlingsupport kann verwendet werden, um die IO-Rate des Geräts zu begrenzen
IOSchedulersIO-Scheduler-E/A dient der Steuerung der Eingangs- und Ausgangsbandbreite, hauptsächlich für Festplatten, und ist eine Grundvoraussetzung. Hier werden drei IO-Scheduler bereitgestellt.
SystemType ist der Prozessortyp und die Eigenschaften
Symmetrische Multi-Processing-UnterstützungSymmetrische Multi-Processing-Unterstützung, wählen Sie diese aus, wenn Sie mehrere CPUs haben oder eine Multi-Core-CPU verwenden
Prozessorfamilie (Pentium-Pro) Prozessorserie, bitte wählen Sie entsprechend der tatsächlich verwendeten CPU aus, hier ist der Prozessortyp
Genericx86support Diese Option verwendet allgemeinere Optimierungen für CPUs der x86-Serie. Wenn Sie sich für i386, i586 usw. entscheiden, dann wählen Sie diese universelle x86-Unterstützung,
Multi-Core-Scheduler-Unterstützung optimiert die Planungsstrategie für Multi-Core-CPUs. Unterstützung für Multi-Core-Scheduling-Mechanismen, Vier-Core-CPUs sollten ausgewählt werden
Busoptions ist die Unterstützung und Konfiguration von PCI, ISA und anderen Bussen. KernelFeatures ist das Kernel-Funktionskonfigurationsmenü
Bootoption-Startoption: Sie können die Standard-Startparameter und Kernel-Parametertypen festlegen
CPUPowerManagementBezogen auf die CPU-Energieverwaltung
Einschließlich Reduzierung der Prozessorfrequenz, Unterstützung des Schlafmodus usw.
Energieverwaltungsoptionen, Energieverwaltungsbezogene Netzwerkunterstützung, Netzwerkkonfiguration
Beinhaltet Unterstützungskonfigurationsoptionen für Ethernet, CAN, Infrarot, Bluetooth, WLAN und andere Netzwerke
Wireless nutzt die Unterstützung für drahtlose Netzwerkkarten
RFswitchsubsystemsupportRF-Schaltgerät
Networkingoptions-Netzwerkvertrag und Netzwerkpaketparameterkonfiguration (TCP/IP-bezogene Verträge müssen geöffnet werden)
Netzwerkoptionen: Sie können die Konfigurationsschnittstelle für Netzwerkoptionen aufrufen
Systeme, die Linux verwenden, nutzen das Netzwerk, und die Nutzung des Netzwerks ist häufig untrennbar mit TCP/TP verbunden. Daher wird empfohlen, in der Konfiguration die Option TCP/IP auszuwählen.
Analyse des Prinzips der Speichertechnologie: Basierend auf dem Linux 26-Kernel-Quellcode, und Alle untergeordneten Optionen auswählen. Die Tri-State-Option kann auch so konfiguriert werden, dass das Modul bei Bedarf eingesteckt wird. DriverDrivers Gerätetreiber, die Konfigurationsoberfläche ist ebenfalls sehr kompliziert, es gibt viele Konfigurationselemente
Filesystems ist die Konfigurationsschnittstelle für das Kernel-Dateisystem
Kernelhacking Kernel-Debugging-bezogene SicherheitsoptionenSicherheitsbezogene Optionen
CryptographicAPI –>//Crypto API, diese Optionen werden entsprechend der vorherigen Optimierung manuell angepasst
Grundprinzipien zum Anpassen und Konfigurieren von Kerneln
Referenz:
Der spezifische Prozess und die Auswahl der Linux-Kernel-Bereinigung
Diskussion über die Konfiguration, Anpassung und Kompilierung des eingebetteten Linux-Kernels
Linux-Kernel-Kompilierungskonfiguration (grafische Form von Menuconfig), Schritte zum Erstellen eines Dateisystems
Linux-Kernel-Transplantation und Root-Dateisystem-Erstellung
Das obige ist der detaillierte Inhalt vonEingehende Analyse des Kernel-Quellbaums: die Synergie zwischen Kconfig-Dateien und Makefiles. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!