Dieser ArtikelBenutzerSuche |
Olimex EP9302-Board CS-E9302
[bearbeiten] Aktuellen Linux Kernel Kompilieren[bearbeiten] VorraussetzungenUm einen aktuellen Linux Kernel zu Kompilieren benötigt man einen geeigneten ARM Crosscompiler. In diesem Beispiel wird das Linux-Binary des CodeSourcery G++ Lite GCCs für ARM GNU/Linux genutzt. Zusätzlich wird ein nativer Compiler und die ncurses-Bibliothek benötigt (Unter debian lassen sich alle zusätzlich benötigten Packete mit [bearbeiten] KonfigurationDer aktuelle 2.6er Kernel (2.6.22.3 zum Zeitpunkt des Schreiben dieses Artikels) unterstützt fast alle Funktionen die auch der mitgelieferte gepatchte Kernel unterstützt, hat aber den Vorteil, dass er öfter aktualisiert wird als der gepatchte Kernel. Für Verwirrung sorgen kann der vorinstallierte Bootloader, der auf der seriellen Konsole das Board als EDB9302 Rev. A bezeichnet, aber dem Kernel die Machine-ID des EDB9302 übergibt. Stimmen die Machine-ID des Bootloaders und die des Kernels nicht überein bootet der Kernel nicht. Da es sich bei dem Board weder um das EDB9302A noch um das EDB9302 handelt ist die einfachste Lösung den Bootloader nicht zu modifizieren, da dies gewisse Risiken mit sich bringt, sondern einen Kernel für das EDB9302 zu kompilieren. Dafür einfach die Kernel Konfiguration downloaden, entpacken und in .config umbenennen. Es handelt sich um die auf der CD beigelegten Konfiguration mit zusätzlich EABI aktiviert (Ermöglicht bessere Floating-Point Performance, noch nicht ohne EABI getestet) für Features die zusätzlich hinzugekommen sind wurden die Standard-Einstellungen gewählt. Ist die Kernel-Version neuer als 2.6.22.3 ist es notwendig vorher einmake ARCH=arm CROSS_COMPILE=<compiler-prefix> oldconfigauszuführen. Weitere Anpassungen der Konfiguration lassen sich mit make ARCH=arm CROSS_COMPILE=<compiler-prefix> menuconfigdurchführen. [bearbeiten] KompilierenIst die Konfiguration fertig, kann man den Kernel einfach mitmake ARCH=arm CROSS_COMPILE=<compiler-prefix> zImagekompilieren. Das fertige Kernel-Image findet man dann unter arch/arm/boot/zImage
[bearbeiten] Fehlende FunktionenKompiliert man den Kernel auf diese Art, ohne Anpassungen am Kernel-Source oder an der Kernel-Konfiguration vorzunehmen, werden folgende Funktionen nicht unterstützt:
|