Linux-Kernel auf mobilem Gerät ändern und booten

Linux-Kernel auf mobilem Gerät ändern und booten

Während meiner Ausbildung habe ich fast 18 Monate lang Android-iOS-Apps und Websites entwickelt. Jetzt, als Abschlussprojekt, arbeite ich an Linux-Quellcode mit dem Ziel, ihn auf einem mobilen Gerät – wie Android – zu booten. Ich habe ihn erfolgreich als Debian-Paket entwickelt, indem ich Tutorials im Internet verwendet habe. Derzeit verwende ich Ubuntu.

Ich habe eine Strategie, bin mir aber nicht sicher, ob ich auf dem richtigen Weg bin. Sie lautet wie folgt:

A:

  1. Laden Sie den Linux-Quellcode herunter. Entfernen Sie zusätzliche Treiber, kompilieren und installieren Sie ihn auf dem aktuell laufenden Ubuntu und verwenden Sie ihn.

  2. Passe den Code weiter an und boote ihn als meine eigene Distribution. Dafür folge ichLFS.

  3. Geben Sie ein bestimmtes Zielmobilgerät an, ändern Sie den Code dafür, schreiben Sie Treiber, wenn Sie welche brauchen (ich bin nicht sicher, welche (deshalb bin ich hier :)), und booten Sie den Kernel darauf.

Ich weiß nicht, ob meine Strategie richtig ist oder nicht. Ich wäre sehr dankbar, wenn mir jemand Folgendes sagen könnte:

B:

  1. Bin ich auf dem richtigen Weg? Wenn nicht, welcher könnte der Richtige sein?
  2. Muss ich ein Mobiltelefon angeben und den Kernelcode dafür anpassen?
  3. Was muss ich außer den Treibern noch im Kernel ändern?
  4. Und zu guter Letzt: Wenn ich den Kernel auf einem mobilen Gerät boote, stehe mir dort eine Schnittstelle oder ein Terminal zur Verfügung?

Entschuldigen Sie, wenn meine Frage keinen Sinn ergibt. Ich bin Student und versuche noch, mich zurechtzufinden. Ich wäre sehr dankbar, wenn mir jemand Tipps geben könnte, nach welchen Themen ich im Internet suchen sollte.

Update: Ich möchte bestätigen, ob meine Strategie richtig ist oder nicht. Wenn nicht, nennen Sie mir bitte einfach die Schritte, die ich befolgen sollte.

Antwort1

Wäre es nicht viel einfacher, zuerst den Android-Linux-Kernel zu kompilieren und nicht nur den Vanilla-Kernel von kernel.org? Im Prinzip sollte dieser für jedes Android-Gerät verfügbar sein, da der Kernel GPL ist. Wenn Sie die Kernelquelle für Ihr Zielgerät nicht erhalten können, weil der Hersteller entweder keine Ahnung hat oder ein bekannter GPL-Verletzer ist, besteht Ihre nächste Möglichkeit darin, den Quellcode für ein Gerät mit einem ähnlichen SoC (Tegra 3, RK3188 usw.) herunterzuladen und zu kompilieren.

Beachten Sie, dass das Booten auf einem Mobilgerät mit einer Vielzahl von SoC-Designs ein weitaus heikleres Unterfangen ist als das Booten von einem Desktop oder Laptop mit den bekannten AMD- oder Intel-CPUs. Sie sind sich nicht einmal sicher, ob Sie den Kernel überhaupt auf das Mobilgerät kopieren oder flashen können (es sei denn, das Mobilgerät ist ein Laptop). Sie müssen das also ebenfalls recherchieren.

Das erste, was ich recherchieren würde, ist das Zielgerät. Es ist eine gute Idee, ein Gerät auszuwählen, das von seiner externen SD-Karte booten kann, da Sie Linux theoretisch ausführen können, indem Sie einfach Ihren Kernel und andere Betriebssysteminhalte auf die SD-Karte kopieren. Wählen Sie außerdem ein Gerät mit einer funktionierenden Wiederherstellungspartition, mit der Sie den Kernel auf die entsprechende Startpartition flashen können. Ein solches Gerät verfügt effektiv über zwei Startpartitionen, die Android-Startpartition und die Wiederherstellungspartition. Falls also etwas schief geht und Ihr Gerät nicht mehr bootfähig ist, können Sie eine spezielle Hardware-Tastenkombination auf Ihrem Gerät drücken, um die Wiederherstellungspartition zu booten und das Gerät in einen nutzbaren Zustand zurückzusetzen.

verwandte Informationen