Portieren der Kernelkonfiguration auf eine andere Architektur

Portieren der Kernelkonfiguration auf eine andere Architektur

Ich habe ein gutes Kernel- .configSetup für x86, mit dem ich zufrieden bin.

Jetzt habe ich einige verschiedene ARM-basierte Geräte (einige ohne Videoausgang), die alle mit ihren vorkonfigurierten Standardeinstellungen geliefert werden.

Ich möchte die Konfiguration aller Ziele möglichst nah aneinander anpassen, sodass beispielsweise auf allen die gleichen Dateisysteme aktiviert sind usw.

Ein einfaches Kopieren .configfunktioniert nicht, da hardwarespezifische, wichtige Einstellungen (die in der Standardkonfiguration enthalten sind) verloren gehen.

Grundsätzlich sollten die Low-Level-Einstellungen (Prozessordetails, E/A-Zuordnungen, ...) so belassen werden, wie sie sind, und die High-Level-Einstellungen (aktivierte Dateisysteme, USB-Gerätetreiber, Sicherheitsoptionen und viele, viele Einstellungen, die mir gerade nicht einfallen) sollten von allen Konfigurationen gemeinsam genutzt werden.

Gibt es für solche Situationen eine Art „Best Practice“ oder muss ich wirklich über 3000 Einstellungen manuell überprüfen?

Antwort1

Die Konfiguration des Linux-Kernels umfasst viele hardwarespezifische Details, wie das Aktivieren von Treibern für Geräte. Es ist sehr unwahrscheinlich, dass dies von einer Architektur auf die andere übertragen werden kann (außer bei eng verwandten wie x86 und x86_64). Außerdem werden ARM-Chips über ein Menü von On-Chip-Geräten konfiguriert, die eine spezielle Konfigurationsbehandlung erfordern. Dadurch unterscheidet sich ARM in der Konfigurationsbehandlung noch stärker von Ihrem PC als beispielsweise ein x86_64 und ein SPARC64.

Sie müssen die Konfiguration einmalig für Ihren speziellen Einsatzzweck anpassen. Sie sollten dazu eines der menügesteuerten Konfigurationstools verwenden, mit denen Sie die Konfigurationsbereiche ohne großen Aufwand unverändert lassen können.

Antwort2

Ich weiß, dass ich zu spät zur Party komme, aber ich hoffe, dass meine Antwort jemand anderem hilft.

  1. Kopieren Sie die Kernel-Quelle auf den ARM SoC mit dem x86 .configdarin
  2. führen Sie aus make olddefconfig, wodurch ein neues erstellt wird, .configindem die Werte Ihres x86 .configund die Standardwerte für ARM übernommen werden
  3. Erstellen Sie nun den Kernel. Sie werden nicht nach irgendetwas gefragt, da alles durch einige der Standardeinstellungen für ARM und einige Ihrer x86-Einstellungen abgedeckt ist

verwandte Informationen