Dieses Projekt stammt von unserem Gastautor

Mr. Pink

Physikstudent im siebten Semester, hobbymäßig Bastler.

Android-Smartphone als Server betreiben  

Android-Smartphone als Server betreiben

Nach einer Studie der United Nations University produziert die Menschheit pro Jahr 44,7 Millionen Tonnen E-Abfall. Das heißt, Kühlschränke, Fernseher, Lampen, Haushaltsgeräte und – vor allem – Handys landen nicht nur auf unseren Deponien, sondern belasten die Umwelt auch in Entwicklungsländern. Die Tendenz steigt ins Unermessliche.
In diesem Artikel beschäftigen wir uns damit, Ihrem alten Android-Smartphone, das Sie schon längst vorhatten wegzuschmeißen, zu einem Server für Ihre Projekte umzurüsten und ihm somit ein zweites Leben vor dem Recycling schenken können.

Ich habe mein altes Android-Handy zu einem InfluxDB- und Grafana-Server umfunktioniert, um Daten von meiner selbstgebauten WiFi-Wetterstation zu sammeln. Der Kreativität sind keine Grenzen gesetzt!

Das Projekt

Geeignet für: Mittelmäßig Erfahrene
Zeitaufwand: je nach Erfahrung, ca. 2h
Materialien: gerootetes(!) Android-Smartphone, ggf. SD-Karte

Der Zeitaufwand variiert je nach Erfahrung immens. Zwei Stunden sind – nach meiner Auffassung – maximal drinnen. Dies hängt teilweise auch von der Internetverbindung ab.
Falls Ihr Smartphone nur über einen begrenzten, internen Speicher verfügt, so brauchen wir natürlich auch ein externes Speichermedium, am einfachsten eine SD-Karte.

Root-Rechte erforderlich!

Bevor wir loslegen, will ich Sie darauf hinweisen, dass Ihr Smartphone für das Projekt unbedingt gerootet sein muss. Wie Sie das machen hängt stark von dem Modell Ihres Smartphones ab. Eine schnelle Google-Suche nach „(Handymodell) root“ sollte ebensoschnelle Ergebnisse liefern.
Ich habe das Samsung Galaxy J3 (2016) verwendet, aber natürlich klappt das mit fast jedem Handy.

Warum ausgerechnet ein Handy als Server?

Abgesehen von der Wiederverwendung des Smartphones spricht noch ein weiterer Grund dafür, und zwar der enorm reduzierte Stromverbrauch im Vergleich zu einem Raspberry Pi Server. Während ein RPi 3 im Idle-Betrieb etwa 260 mA aufnimmt, liegt die Stromaufnahme beim Samsung Galaxy J3 (2016) bei im Mittel ca. 50 mA. Natürlich hängt das stark vom Handymodell ab und ist relativ zu sehen. Am besten, man probiert es einfach aus!

Überblick

Unser Plan für das Projekt ist simpel: Zuerst installieren wir auf einer separaten Partition im Handy ein Linux-System, welches dann unter CPU-Lock und WiFi-Lock als Server fungiert. Es ist dabei empfehlenswert ein externes Speichermedium (z.B. microSD) zu verwenden und dieses zu partitionieren. Über eine SSH-Verbindung können Sie dann eine shell zu Ihrem Linux-System aufbauen. Wir genau Sie das machen, können Sie hier nachlesen.
Wir brauchen dafür folgende Apps:

BusyBox

Damit wir über die passenden Linux-Commands (wie z.B. mkfs_ext2) für die Linux-Installation verfügen, brauchen wir zunächst die BusyBox. Öffnen Sie dazu bitte **meefiks BusyBox**.

In der App sollten auf dem Hauptbildschirm Informationen über Ihr Smartphone, wie z.B. der Modellname zu sehen sein. Nach einem Klick auf die drei vertikalen Punkte in der rechten, oberen Bildschirmecke können wir nun den dritten Eintrag im Dropdown-Menü auswählen.

In den Einstellungen interessiert uns der „Install path“, welcher zu „/system/xbin“ geändert werden sollte, falls dies nicht bereits dasteht. Nachdem wir verifiziert haben, dass in den beiden unteren Einträgen beide Checkboxen aktiviert sind, können wir wieder zum Hauptbildschirm zurückkehren und auf „Install“ tippen. Anschließend warten Sie bitte bis zur Beendigung des Installationsvorganges.

Partitionierung der externen Speicherkarte

Als Nächstes kümmern wir uns um die Partitionierung der externen Speicherkarte. Öffnen Sie hierfür bitte die App **aParted**.
Der Startvorgang der App dauert immer etwas lange. Wenn Sie mehr als drei Mal Superuser-Rechte bestätigen müssen, so hilft ein Handy-Neustart. Wir wollen die Speicherkarte in eine Daten (fat32)- und Linuxpartition (ext2) formatieren. Halten Sie sich hierfür bereit, die Speicherkarte zwischendurch zu entfernen!

Um eine neue Partition hinzuzufügen, tippen Sie auf *Add*. Um das Format auszuwählen tippen Sie auf den Texteintrag rechts neben *Format* (aktive Checkbox). Für die Datenpartition wählen Sie nun das *fat32*-Format.

Die Partitionsgröße kann nun über den Slider oder die *MB*-Zahl rechts neben dem Slider eingestellt werden. Achten Sie darauf, etwa 8GB für die Linux-Partition übrig zu haben!

Wiederholen Sie diesen Schritt auch für die Linux-Partition, diesmal mit dem *ext2*-Format.

Ihre Partitionstabelle sollte nun zuerst die fat32-Daten-Partition enthalten und danach die ext2-Linux-Partition. Ein Klick auf *Apply* startet die Partitionierung. Wenn Sie dazu aufgefordert werden, bitte entfernen Sie die SD-Karte kurz, setzen Sie sie gleich wieder ein und drücken Sie auf *OK*.

Ihr System meldet nach der Partitionierung höchstwahrscheinlich den Fehler *beschädigte Speicherkarte*. Dies kann ignoriert werden und kommt daher zustande, dass das Android-System ext2 nicht erkennt.

Installation von Linux

Nun ist alles bereit für die Installation des Linux-Systems. Öffnen Sie nun bitte die App **Linux Deploy** und swipen Sie von links zur Mitte um das seitliche Menü zu offenbaren. Wechseln Sie zu den Einstellungen und scrollen Sie herunter bis zum Eintrag *Path variable*. Erinnern Sie sich noch an den Pfad, in dem unsere BusyBox liegt? Genau diesen Pfad („/system/xbin“) tragen wir hier ein und drücken anschließend auf den Eintrag *Update ENV*, um unsere Einstellungen zu übernehmen.

Als Nächstes, aktivieren Sie bitte den Haken bei *Wake lock* und *Lock Wi-Fi*, damit Ihr Server bei gesperrtem Bildschirm nicht in Tagträume verfällt.

Wechseln Sie wieder in das Hauptmenü, tippen Sie auf die drei vertikalen Punkte rechts oben und wählen Sie den vierten Eintrag aus. Sie bekommen nun eine ganze Menge von Informationen aufgelistet, von denen allerdings nur wenige für uns relevant sind. Notieren Sie sich irgendwo die *Architecture* und unter *Available Partitions* den Pfad der Partition des Typen *Linux* (meistens „/dev/block/mmcblk1p2“). Außerdem notieren Sie sich bitte, den Pfad zu Ihrer fat32-Datenpartition, die Android unter „/storage/XXXX“ eingehängt haben sollte.

Als Nächstes tippen Sie im Hauptmenü auf den Button rechts unten, um unsere Linux-Installation zu spezifizieren.

Ab hier haben Sie relativ freie Hand. Unter *Distribution* können Sie Ihr Wunsch-Linux installieren (ich habe Debian gewählt). Die Architektur wählen Sie gemäß den eben angefertigten Notizen, das bedeutet, dass Sie z.B. *armhf* auswählen sollten, wenn Sie ein *armv7*-System besitzen. Weiter unten bei *Installation type* wählen wir „Partition“ aus und tragen im Eintrag darunter den Pfad zu unserer Partition ein, den Sie sich ebenfalls notiert hatten. Das *File system* ist „ext2“. Spezifizieren Sie nun Ihren Wunsch-Benutzernamen und -passwort für die spätere ssh-Anmeldung.

Damit wir unsere Daten-Partition im Linux-System benutzen können, müssen wir unter *Mounts* die Checkbox aktivieren und unter *Mount points* den Pfad zu unserer fat32-Datenpartition hinzufügen.

Als Nächstes müssen wir nur noch den Haken unter *SSH* aktivieren und das sollte alles gewesen sein. (Bemerkung: Sie können natürlich auch grafisch mit ihrem Linux-System interagieren, allerdings müssen Sie dann entsprechend den VNC-Server zusätzlich aktivieren und sich dann mit einem VNC-Client verbinden. Hier können Sie nachlesen, wie man so etwas bewerkstelligt.)

Wechseln Sie nun wieder zum Hauptbildschirm, tippen Sie rechts oben auf die drei Punkte und wählen Sie *Install* aus. Nach dem Installtationsvorgang, welcher je nach Internetverbindung und CPU Ihres Handys mehr oder weniger lange braucht, wählen Sie nun im Menü (drei Punkte) *Configure* aus, um Ihr Linux-System zu konfigurieren. Danach sollte es Ihnen möglich sein, das System über den *Start*-Button zu starten.

Über SSH ins Paradies!

Oben in der Titelleiste der Linux Deploy App sehen Sie die IP-Adresse, die Sie benötigen um über SSH auf Ihr Linux-System zuzugreifen. Verwenden Sie den Client Ihrer Wahl! Sie können in Ihrem Linux-System über SSH nun alles wie gewohnt erledigen.

Gratulation, Sie haben es geschafft!

 

2 Antworten zu “Android-Smartphone als Server betreiben”

  1. Lothar Hackel sagt:

    Hallo,

    ein sehr guter Ansatz, der noch viel Potential in sich birgt.

    Ich bin durch Zufall auf diese Veröffentlichungen gestoßen. Bitte macht mehr „Reklame“
    dafür.

    F.G. L. Hackel

  2. leo sagt:

    Leider wie so oft im Internet, nur wieder was für völlig abgedrehte Nerds.
    Ich hab keine Ahnung, wo ich **meefiks BusyBox** eingeben soll….

Was denken Sie zu diesem Thema? Schreiben Sie einen Kommentar:

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.