Fairphone 2 als Lab-Server
Vor kurzem stieß ich auf einen Artikel über die Nutzung von Android-Smartphones als Webserver. Nun ja, Webentwicklung ist nicht meine Stärke, aber ich hatte vor einiger Zeit begonnen, ein Labor für verschiedene Tests einzurichten. Und da kann ich einen kleinen Server, der nicht viel Strom zieht, für die eine oder andere Sache gebrauchen.
Alles, was ich an Hardware brauchte, hatte ich schon da:
- mein Fairphone 2 von 2016 als Android-Smartphone,
- ein USB-Netzteil und -Kabel,
- eine einfache Zeitschaltuhr.
Mit der Zeitschaltuhr stelle ich sicher, dass das Smartphone nicht den ganzen Tag am Stromnetz hängt.
An Software braucht es auch nicht viel:
- Termux - für die Linux-Umgebung,
- Termux:API - für den Zugriff auf Android-Ressourcen,
- Termux:Boot - damit Termux automatisch beim Start des Telefons geladen wird.
In Termux installiere ich als erstes einen SSH-Server, um von außen auf die Konsole zu kommen.
Termux::Boot
Da das Fairphone sporadisch von allein neu startet, ist Termux:Boot hilfreich, damit ich anschließend das Telefon wieder von außen erreichen kann. Dazu installiere ich ein Skript im Verzeichnis ~/.termux/boot/, dass den Wake-Lock für Termux einstellt und den SSH-Server startet:
$ cat .termux/boot/00_startup
#!/data/data/com.termux/files/usr/bin/sh
termux-wake-lock
dropbear
Das Skript fordert als erstes über einen API-Aufruf den Wake-Lock an, damit das Telefon nicht einschläft und erreichbar bleibt. Anschließend startet es den SSH-Server dropbear, der an Port 8022 lauscht.
Damit ich nicht jedes Mal den Port angeben muss, habe ich auf meinem Rechner einen Eintrag in ~/.ssh/config:
Host fp2
Hostname 10.1.2.1
Port 8022
Damit ich kein Passwort bei der Anmeldung eingeben muss,
hinterlege ich den öffentlichen SSH-Schlüssel in Termux.
Das geht am einfachsten,
indem ich zunächst in Termux mit dem Befehl passwd
ein Kennwort vergebe
und anschließend den Schlüssel von meinem Rechner aus
mit ssh-copy-id
kopiere:
$ ssh-copy-id -i .ssh/id_rsa.pub fp2
Dafür muss ich einmalig das Kennwort eingeben und anschließend nicht mehr.
Batterie überwachen
Mein Ziel ist, den Akku als Puffer bei Stromausfällen zu verwenden. Damit er nicht ständig geladen wird, hängt das Netzteil an einer Zeitschaltuhr. Um den Zustand des Akkus zu überwachen, kann ich via SSH den entsprechenden API-Aufruf verwenden und bekomme den Ladezustand im JSON-Format mitgeteilt:
$ ssh fp2 termux-battery-status
{
"health": "GOOD",
"percentage": 98,
"plugged": "UNPLUGGED",
"status": "DISCHARGING",
"temperature": 23.799999237060547,
"current": 343508
}
Mit diesen Werten kann ich im Laufe der Zeit ein passendes Regime an der Zeitschaltuhr einstellen.
So ist das Fairphone als Lab-Server bereit und kann verschiedene Aufgaben übernehmen. Bis hierhin brauchte ich dafür nicht einmal Root-Zugang auf dem Smartphone.
Posted 2022-07-16