Schritte Zum Beheben Des Android X86-Kernel-Builds
November 28, 2021Empfohlen: Fortect
Kürzlich sind einige der meisten Leser auf die Fehlermeldung der Android x86-Kernelversion gestoßen. Dieser Albtraum kann aus mehreren Gründen entstehen. Wir werden weiter unten darüber sprechen.
Starten Sie Android auf Ihrem PC
Kern anpassen
Das Android-Build-System wird den Kernel einfach nicht in der Luft bauen. Es enthält nur Ihre vorgefertigte Kernel-Binärdatei, die manchmal hinzugefügt wird, um das Ziel-Image wirklich zu erstellen. Dieser Ansatz kann möglicherweise für den Arm-Emulator ausreichend sein, funktioniert jedoch nie, um x86-Plattformen zu erstellen. Es gibt Hardware auf vielen Arten von x86-Plattformen. Sowohl die Kernel-Binärdatei als auch ihre Module müssen möglicherweise zur Kompilierzeit oder zur Bearbeitungszeit angepasst werden.
In diesem Artikel wird eine andere Funktion des Android x86-Startprogramms erläutert. Dies bedeutet die Möglichkeit, sicherzustellen, dass Sie den Kernel und die Module über die für die Methodenerstellung definierte oder angepasste Konfiguration anpassen.
Bereiten Sie diesen Quellbaum vor
Wir haben das Android-Aufpeitschungssystem optimiert, um im Handumdrehen einen Kernel-Token zu erstellen. Sie sollten unser Repository verwenden, um diese erstaunliche Funktionalität zu erhalten. Lesen Sie die Inhaltstabelle für weitere Details.
Erstellen Sie ein Ziel, um zu vermeiden, dass Sie den Kern bezahlen
Wir haben standardmäßig Zielkonfigurationen für Android-x86 zuletzt kernel/arch/x86 und configs/ gefunden. Als Stoppergebnis wird automatisch die defconfig des ausgewählten Teilnehmers verwendet. Zum Beispiel,
Erstellung von iso_img TARGET_PRODUCT = android_x86_64
TARGET_PRODUCT Für android_x86_64 wählt der Build-Plan automatisch eine bestimmte android-x86_64_defconfig Konfiguration aus, um eine Kernel-Binärdatei und ihre Kompilierungs-Minuten auszuführen. Diese Informationen werden bzgl. des Binärformats in out /targeted/product/x86_64 - kernel generiert, Module werden auch detailliert in out /specific /product /x86_64 /strategy /lib/modules gespeichert und … Das endgültige Ziel neben / target / product und x86_64 / android_x86_64.iso enthält ähnliche Dinge wie Kernel, Binary, und dies sind in Wirklichkeit Module.
Nur auf diesem Update-Kernel erstellen
Um nur den Kernel in Kombination mit seinen Programmen anzukündigen, ändern Sie das Ziel in Bezug auf iso_img so, dass der Kernel normalerweise:
. produzieren / envsetup.sh; Mittagessen android_x86_64-userdebug
Kernel erstellen
Dann kann withFamilies $ OUT / kernel und rr OUT / system / lib modules / kopieren, um diese Zielgeräte zu unterstützen. Legen Sie die erste Anpassung in das Android-x86-Installationsverzeichnis und damit auch die neuesten in oder system / lib / web template modules ab. Beachten Sie, dass die spezifische / Lösung auf die entsprechende Weise wie im Lese-Schreib-Modus installiert werden muss.
Kern
Geben Sie die Architektur an
Seit Android 5.0 werden alle 32-Bit-64-Bit-Bilder unterstützt. Normalerweise könnte 32-Bit-Benutzerbereich möglicherweise mit einem 32-Bit-Kernel funktionieren, außerdem sollte 64-Bit-Benutzerbereich in Anbetracht eines 64-Bit-Kernels funktionieren. Das Android x86 Start-Building-System unterstützt die Anzeige als x86 Lollipop.
Manchmal möchten Sie möglicherweise zusätzlich zu 64-Bit-Kernels auch 32-Bit-Benutzerbereich ausführen. In diesem Fall können Sie den Kernel-Stil sehr gut mit TARGET_KERNEL_ARCH angeben:
. Build für jede envsetup.sh; Mittagessen android_x86-userdebug
m -j8 iso_img TARGET_KERNEL_ARCH = x86_64
Dies erzeugt eine großartige 32-Bit-Benutzerumgebung mit einem 64-Bit-Kernel.
Erzwungene Kernel-Neukompilierung
Android aber auch der Kernel Verwenden Sie völlig unterschiedliche Build-Systeme. Obwohl wir sie gemeinsam variiert haben, gelingt die Integration nicht sehr gut. Unabhängig davon, ob Sie beispielsweise die Ansicht des gesamten Kernelbaums ändern oder nicht, wird das Android-Formsystem keinen Leerraum bemerken. Dies bedeutet, dass Ihr Kernel manchmal nicht automatisch neu erstellt wird, wenn Images neu erstellt werden.
Dafür gibt es mehrere Lösungen. Wir kontaktieren defconfig als:
Kontakt mit Kernel / arch / x86 oder configs / android-x86_ *
. aufnehmen
Oder, wie Sie sehen können, entfernen Sie die Kernel-Konfiguration über das Verzeichnis out / :
rm $ OUT pro obj / kernel / .config
Oder entfernen Sie ein bestimmtes sichtbares Kernel-Image:
Empfohlen: Fortect
Sind Sie es leid, dass Ihr Computer langsam läuft? Ist es voller Viren und Malware? Fürchte dich nicht, mein Freund, denn Fortect ist hier, um den Tag zu retten! Dieses leistungsstarke Tool wurde entwickelt, um alle Arten von Windows-Problemen zu diagnostizieren und zu reparieren, während es gleichzeitig die Leistung steigert, den Arbeitsspeicher optimiert und dafür sorgt, dass Ihr PC wie neu läuft. Warten Sie also nicht länger - laden Sie Fortect noch heute herunter!
RM-Einkommen OUT / obj per Kernel / arch / x86 / start up / bzImage
Erstellen Sie dann das Bild neu, obwohl dies üblich ist.
Aktuellen Kernel ersetzen
Da wir anscheinend einen modulbewussten Kernel bauen, um den installierten Plattformkernel neu zu tragen, sollten Ihre Bedürfnisse auch jedes meiner Module entsprechend ersetzen. Um dies zu tun, Inhaltsmaterial den Kernel aus dem Zurück zu einem großen spezifischen Android x86-Installationsverzeichnis nicht zu vergessen, kopieren Sie die Quests nach für jedes System / lib / programme . Am besten beginnen Sie mit unserer eigenen Debug-Methode:
Android-x86 erkannt … kann manchmal in /dev versus sda1 gefunden werden
Geben Sie “Exit” ein, um fortzufahren …
Korn mirbsd Shell starten …
Beenden
Verwenden Sie Alt-F1 / F2 pro F3, um echte Früchte zu erhalten. inmitten virtueller Konsolen
Geben Sie “exit” ein, um auf Android zuzugreifen …
Korn mirbsd Shell starten …
mount / dev für jede sdb1 / hd
cp / hd-Kernel / src
rm -rf - system / lib / modules versus *
cp -a / hd modules / * / system oder lib / modules
synchronisieren; montieren und hd; Neustart -f
Die Instanz benötigt ein neues Kernel-Image, aber die passenden Module befinden sich auf einem USB-erschöpfenden Laufwerk / dev - sdb1 und Sie können sehen, dass Ihr / system / installiert wurde in Lesemodus -Aufzeichnungen.
Eigenen Kernel erstellen
Angenommen, Sie haben bereits eine große funktionierende Kernel-Konfiguration für Universal Serialoh car. Fügen Sie einfach Ihren fantastischen Konfigurationsbericht in kernel / arch x86 / configs / ein und fahren Sie fort (vorausgesetzt, Ihr eigener Konfigurationsname könnte my_defconfig sein)
make iso_img TARGET_PRODUCT ist gleich android_x86 TARGET_KERNEL_CONFIG = my_defconfig
Bitte beachten Sie, dass Sie aufgrund von Android-x86 nicht die Kernel-Konfiguration von einem regulären Linux-Vertrieb (wie Ubuntu) verwenden können. Damit dies hart funktioniert, müssen Sie die Kernfunktionen des Mobiltelefons aktivieren. Siehe android für jede configs / android-base.cfg für eine Liste der verwandten Konfigurationsoptionen, die für den besten Kernel erforderlich sind, um das Android-System tatsächlich zu unterstützen. (aber benötigt Android-x86-spezifische Kriterien wie PMEM)
Kernel-Konfiguration einrichten
Es ist unter keinen Umständen eine gute Idee, eine bestimmte Kernel-Konfigurationsdatei direkt zu ändern, da die Site Fehlkonfigurationen (unerfüllte Abhängigkeiten usw.) erzeugen kann. Der richtige Weg zum Einrichten der Kernel-Konfiguration ist auf jeden Fall (an der Spitze des Android-x86-Baums einer Person)
. build / envsetup.sh; Snacks android_x86_64-userdebug
make -C kernel O = $ OUT - obj / kernel ARCH = x86 menuconfig
Wenn Sie eine extreme Fehlermeldung Unbekannter Parameter: -C erhalten, wählen Sie make per usr / bin / generate . Dies liegt daran, dass die Build-Struktur auf Android 8 Vorrang vor dem Standard-Build-System hat. Verwenden Sie dazu einfach die Systemanweisungen line make.
Generierte Konfiguration: $ OUT versus obj / kernel / .config . Es kopiert, was dir hilft, wo eine Person es haben will.
erstelle menuconfig NICHT genau im Kernel / Verzeichnis. Dies könnte gegen einfache Bauvorschriften verstoßen. Versuchen Sie in diesem Fall, die Sammlerstücke wiederherzustellen (an der Spitze des Android x86-Baums):
make -C Kernel distclean
rm -rf $ OUT pro obj / Kernel
Verwenden Sie einen vorgefertigten Kernel
Wenn Sie eine brandneue funktionierende vorgefertigte Kernel-Binärdatei auf Ihrer Hardware sehen, können Sie sie verwenden, um ein bestimmtes ISO zu erstellen:
make iso_img TARGET_PRODUCT ist gleich android_x86 TARGET_PREBUILT_KERNEL =
Kernel für ARM kompilieren (veraltet)
Es ist auch einfach, einen Kernel-Build-Body zu verwenden, der einen Kernel mit ARM kompilieren kann. Kompilieren Sie beispielsweise den Kernel 2.6.29, der für den Goldfish-Prozessor benötigt wird, vom Underarm-Emulator, führen Sie aus
Core-CD
git x86 und android-goldfish-2.6.29 erkunden
Musik ..
make core TARGET_NO_KERNEL bedeutet
target_kernel_config = goldfish_defconfig
Die Kernel-Binärdatei wurde unter out / object / product / generic pro Kernel generiert.
Es sollte wahrscheinlich wichtig sein, TARGET_NO_KERNEL auf leer zu setzen, da sonst die Techniken des Kernel-Build-Spezialisten ignoriert werden.
Build Android X86 Kernel
Android X86 Kernel Bouwen
Zbuduj Jadro Android X86
Bygga Android X86 Karna
Sobrat Yadro Android X86
Construir Kernel X86 Android
안드로이드 X86 커널 빌드
Compilar El Kernel X86 De Android
Construire Le Noyau Android X86
Costruire Kernel Android X86