weidner/archives/2022/07/

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:

Hardware für Lab-Server

Mit der Zeitschaltuhr stelle ich sicher, dass das Smartphone nicht den ganzen Tag am Stromnetz hängt.

An Software braucht es auch nicht viel:

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
Tags: