Schlagwort-Archive: Ouya

metabox-Tastatur an Raspberry Pi How To

Die Metabox war eine im deutschsprachigen Raum in den 90/00er-Jahren produzierte Set-Top-Box mit 486er CPU. Eine der Besonderheiten war die Infrarot-Tastatur, die direkt über einen IR-Empfänger auf dem Mainboard funktioniert hat. Die Box selbst ist überholt, aber die Tastatur ist nach wie vor ein nettes Gadget, da sie leicht, kabellos (AA-Batterien) und kompakt ist und auch eine Maus mit 6 Buttons featuret. Der infrarote Übertragung sorgt zudem für niedrigen Energieverbrauch und beschränkt die Abhörbarkeit auf Sichtweite.

Wie lässt sich die Tastatur mit einem Linux-System verwenden ?

Am Raspberry Pi können wir mithilfe der in einem früheren Beitrag beschriebenen „Ynfrastruktur“ die Infrarot-Signale der Tastatur empfangen:

RC-5 ?

irrecord meldet bisher noch „Something went wrong.“ …

Erpal #tt Session 2014/03/06

Als mögliche Alternative zu Redmine als Project Management Tool für Baumhaus testen wir seit heute Erpal. Die Drupal Distribution wird von der Darmstädter Firma Bright Solutions vertrieben und liegt zur Zeit in einer Alpha Version vor. Auf den ersten Blick macht das Tool einen soliden Eindruck und bietet vielfältige Konfigurationsmöglichkeiten. Verschiedene Module bieten dabei ein Management für Kontakte, Aufgaben und Rechnungen. In den nächsten Tagen gilt es herauszufinden ob alle Anforderungen vom Projekt Baumhaus abgedeckt werden können. Letztendlich wird auch der Faktor Benutzerfreundlichkeit eine große Rolle spielen, da in Zukunft viele Personen ohne Einweisung damit arbeiten können sollen.

Matthias hat an diesem Donnerstag an unserem Forschungsprojekt Bouya weitergearbeitet und den kompletten NAND der Ouya kopiert. Nun können wir die Ouya im Fast Boot Mode starten und dabei nicht das Ouya Android sondern Debian von einem USB Stick booten.

Ouya-Firmware analysieren Analysis

Während unsere selbstgebaute Firmware noch Probleme hat zu Booten, werfen wir einen Blick auf die offizielle Ouya-Firmware. Dazu laden wir die aktuelle Version herunter und entpacken die initial ramdisk:

Dort sehen wir, dass die initrd keine Kernel-Module beinhaltet. Das USB muss also anderst initialisiert werden.

Die Android boot images kann man auch direkt von der Ouya herunterladen: mmcblk0p1 respektive mmcblk0p2.

Literatur:

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:

Bouya : Per Konsole auf die Ouya #tt Session 2014/02/27

Die Ouya verfügt, wie die meisten eingebetteten Systeme, über einen seriellen Port direkt auf der Hauptplatine, über den Boot-Loader und Linux-Kernel ein-/ausgeben. Der Port läuft auf einem Pegel von 3,3 Volt (TTL-Pegel), RS232-Kabel oder USB-Adapter kann man also nicht direkt anschließen – man benötigt einen Pegelwandler. Ein Sockel ist nicht aufgelötet, lässt sich aber leicht nachrüsten bzw. man kann einfach vier Käbelchen für den Pegelwandler auf die Platine löten.
So kann es aussehen:


Bild von http://www.ouya-mods.com/
Dazu öffnet man die Ouya zunächst fachgerecht (siehe iFixit.com).
Neben dem Kühlkörper finden sich vier Löcher, die mit J3 bezeichnet sind. Dabei handelt es sich um +3.3V, TX, RX und GND.
Verbindet man diese vier Pins unter Zuhilfenahme eines 3,3V-Pegelwandler an einen seriellen Port, so kann man z.B. mithilfe von minicom oder Putty die Ausgaben des Bootloaders und des Linux-Kernel verfolgen (115200 8N1).

Eine Shell wird offenbar nicht geladen, auf Eingaben scheint die Ouya über den seriellen Port auch nicht zu reagieren. Die Ausgaben sind aber sehr hilfreich zum besseren Verständnis der Hardware und zur Konfiguration eines passenden Linux-Kernels. Nächster Schritt ist, einen Custom-Kernel zu booten und vielleicht ein Debian von USB-Stick zu booten.