Schlagwort-Archive: Tegra

Linux-Kernel für die OUYA How To

Der Standard-Kernel auf der OUYA ist ein 3.1.10er (siehe bootlog). Kernel-Quellen finden sich, wie üblich, hier: https://www.kernel.org/pub/linux/kernel/. Allerdings ist der OUYA-Kernel speziell. Es fehlen Treiber für Tegra-spezifische Hardware, wie tegrafb etc. Diese finden sich in diesen Quellen: https://android.googlesource.com/kernel/tegra/.

Besonders interessant zu lesen:

Auf Nachfrage an oss-requests@nvidia.com wurden wir auf Nvidia’s Git Repos verwiesen: http://nv-tegra.nvidia.com/gitweb/. Dort finden sich auch ein Linux Kernel Repo und ein U-Boot (Bootloader) Repo.

Wir haben uns Nvidia’s Tegra-Kernel geklont und versuchen, ihn zu compilieren:

Zunächst modifizieren wir das Makefile für Cross-Compiling:

Dann laden wir eine Tegra default config und compilieren (parallel mit 32 Threads):

zImage is ready!

Die tegra_defconfig ist für den Tegra 2, die Ouya hat einen Tegra 3. Mittels make menuconfig unter System Type –> Tegra 2 ab- und Tegra 3 sowie Cardhu board anwählen. Nach kleinen Patches, lässt sich der eigens compilierte Kernel per fastboot auf der Ouya starten und präsentiert seine Ausgaben via serieller Konsole. Dieser Kernel bootet bisher nur bis zu dem Punkt, an dem in das initramfs gesprungen werden sollte. Der Tegra-EHCI-USB-Treiber ist zwar einkompiliert, USB wird aber auch im Ouya-System aus noch unbekannten Gründen erst von der initramfs initiiert, sodass USB-Sticks und die onboard USB-Netzwerkkarte SMSC9500A vorerst nicht funktionieren.

Literatur: