Schlagwort-Archive: Linux

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:

Ynfra : LIRC auf dem Raspberry Pi #tt Session 2014/01/13

Im letzten Thinktank haben wir einen Infrarot-Transceiver für den Raspberry Pi gebastelt. Für solch ein Unterfangen gibt es bereits Einiges an Anleitungen im Internet. Wir haben folgende Schaltung realisiert:

Quelle: http://alexba.in/blog/2013/06/08/open-source-universal-remote-parts-and-pictures/

ERRATA: Im Bild müssen am Empfänger VCC und OUT vertauscht werden.

Unser Empfänger war durch Einbinden des folgenden Kernel-Moduls auch sogleich verwendbar:

Durch Eintragung in /etc/modules kann das Modul beim Hochfahren auch automatisch geladen werden. Der LIRC-Dämon muss nun für diese Hardware in /etc/lirc/hardware.conf konfiguriert werden:

Die Funktion des Empfängers kann mit mode2 getestet werden, bevor der Dämon gestartet wird:

Beim Drücken von Tasten auf der Fernbedienung sollten Puls-Pause-Abfolgen auf dem Bildschirm erscheinen, deren Länge mit geringen Abweichungen periodisch wiederkehrend sein sollte.

Beispiel:

Mit irrecord können Tasten aufgezeichnet und für die Erkennung und Wiedergabe durch den LIRC-Dämon in eine Konfigurationsdatei gespeichert werden.

Jeder IR-Code bekommt einen Namen. Am Besten verwendet man Tastenbezeichnungen aus dem vorprogrammierten Namensbereich:

Platziert man die generierte lircd.conf nach /etc/lirc/, kann der Dämon sie verwenden. Mit irsend können die Tasten wiedergegeben werden:

git-Repositorium: https://git.interoberlin.de/ynfra-rpi/