Der AMLogic 802 ist ein SoC-Prozessor, der in vielen Multimediaboxen (TV-Boxen) verbaut ist. Da ich eine ebensolche erworben habe, möchte ich diese nun natürlich auch gerne handzahm machen. :-) Zu diesem Zweck sammle ich auf dieser Seite Links zum Thema.
Geräte #
Es scheint mir, das es verschiedene Geräte gibt, die den Prozessor benutzen, das diese aber im Prinzip alle recht gleiche Fähigkeiten haben. Der S802 enthält neben dem Quad-Core ARM V7-Prozessor alle wichtigen Teile wie Grafikkarte für HDMI, WLAN, etc. so das alle diese Fähigkeiten immer gleich sind. Das hat hoffentlich den Vorteil, das man die Erfahrungen mit Linux-Treibern etc. zwischen den Geräten austauschen kann.
Einige Geräte mit dem S802 sind:
- Minix Neo X8
- M8 TV Box
- Beelink S82, auch bekannt z.B. unter...
erster Eindruck #
Das Gerät per HDMI an meinen Fernseher (anderen Video-Ausgang gibt es nicht), USB-Maus und Tastatur dran und eingeschaltet. Erster Eindruck: Wow! Ein 55-Zoll-Handy! :-) Was da abläuft, ist ein ganz normales Android, das im grossen und ganzen mit einer (beiliegenden) Fernbedienung gesteuert werden kann. Damit kann man Bilder und Videos ansehen etc. Für die wirklich spassigen Sachen sind Maus und Tastatur natürlich hilfreich, aber für den Betrieb als Smart-TV gar nicht wirklich nötig.
Wie hackt man das? #
rooten #
Um mit dem Gerät anständig herumspielen zu können, ist es hilfreich, dort eine root-Konsole zu besitzen. Da das Gerät von einem chinesischen Hersteller ist, ist es selbstverständlich, das es bereits gerootet ist. Außerdem ist auch schon SuperSU installiert. Das ist eine Anwendung, die das Recht verwaltet, sich als root anzumelden und den Benutzer jedes Mal fragt, ob das auch richtig ist.
Um nun Root zu werden, reicht es, wenn man aus dem Google Play Store einen beliebigen Terminalemulator installiert, diesen startet und dann den Befehl "su" eingibt. Alternativ kann man auch einen ssh-Server installieren und dann ebenso per "su" zu root wechseln. So einfach kann das sein!
Zugang per UBoot #
Das Gerät bootet offensichtlich mit dem Bootloader "Das UBoot". Dieser gibt auf der seriellen Schnittstelle eine Konsole her. Das bedeutet, das man mit einem Tastendruck den Bootprozess unterbrechen kann und dann über die hervorragende UBoot-Konsole alles einstellen kann, z.B. das per DHCP gebootet werden kann. So gibt es z.B. eine Anleitung, wie man dann von einem NFS-Server ein Headless Debian Linux booten kann: http://www.cnx-software.com/2014/05/15/how-to-boot-linux-server-amlogic-s802/
Leider hat die Sache einen Haken: Wir haben keine serielle Schnittstelle. :-( Diese ist zwar auf dem Board relativ leciht zugänglich, dennoch erfordert es ein bisschen Löten (und einen RS232-USB-Wandler), sie zu benutzen. Eine Anleitung gibt es hier.
Da mir das mit dem Hardwarebasteln erst mal nicht so behagte, habe ich dann weitergesucht...
Eine Möglichkeit könnte prinzipiell sein, dem UBoot seine Parameter umzustellen, so das er die Netboot-Einstellungen benutzt. Das wird mit der seriellen Schnittstelle per Konsolen-Befehlen gemacht und dann ggf. fest gespeichert. Prinzipiell sollte man das auch direkt in den Speicher schreiben können, wenn man wüsste wie... Ich habe hier ein bisschen recherchiert und herausgefunden, das es Tools namens fw_printenv und fp_setenv gibt, die zu den "UBoot Environment Tools" gehören. Diese sollten dann in der Lage sein, die UBoot-Einstellungen anzupassen. Allerdings sind diese Tools auf dem Gerät nicht installiert. Versionen aus dem Debian-Paketen für armel liefen nicht:
root@k200:/data/test # ./fw_printenv tmp-mksh: ./fw_printenv: No such file or directory
Ich vermute, das dem Befehl irgendeine Bibliothek fehlt, die es so nur unter Debian gibt. (Die Befehle neu zu kompilieren, war mir für den Moment zu hoch. Das Cross-Kompilieren mit den verschiedenen ARM-Architekturen ist mir noch nicht so ganz klar.)
Zugang per Android-Recovery #
Dann habe ich eine Webseite gefunden, wo jemand angibt, ein ganz eigenes Betriebssystem für das Gerät anzubieten: http://www.stane1983.com/amlinux/ . Um das hinzubekommen, muss er ja eigentlich alle wesentlichen Probleme, die ich mir vorstellen kann, gelöst haben. Das sollte man mal ausprobieren und dann herausfinden, wie er es gemacht hat.
Soweit ich das in seinem Artikel sehe, gibt es die Möglichkeit, ein Update-Paket und ein Recovery-ROM auf eine SD-Karte zu schreiben, das dann vom Bootloader geladen wird. Im Gegensatz zu der seriellen Schnittstellen-Lösung hat mein Gerät einen SD-Karten-Slot. :-) Daher würde ich damit mal weiterarbeiten...
Der Weg über das sogenannte Recovery-ROM ist eigentlich eine Android-spezifische Vorgehensweise (von der ich auch noch nicht ganz genau weiss, wie das alles funktioniert). Inwiefern man damit einen Hardware-angepassten Kernel installiert bekommt, der mir dann ein Debian Linux lädt, wird sich zeigen...
In diesem Thread sind mehrere Leute vertreten, die eigene Systeme gebaut haben. (Es gibt auch noch einen Link) Mir ist nicht ganz klar, ob es sich dabei um Android- oder eher Standard- Linux-Systeme handelt. Auf jeden Fall sollte es möglich sein, da etwas zu finden, mit dem man weiterspielen kann.