Diese Anleitung zeigt am Beispiel eines Fairphone 2 aus dem Jahr 2015, wie man ein ungenutztes Android-Smartphone mit postmarketOS in einen kleinen Heimserver verwandelt. Ziel ist es, Elektroschrott zu reduzieren und Wiederverwendung zu fördern. Am Ende erhält man einen kleinen Heimserver, auf dem grundlegende Dienste laufen können.
Benötigte Dinge
- Ein ungenutztes Android-Smartphone
- Ladegerät und Stromversorgung
- WLAN-Verbindung
- Ein Computer mit Linux (nativ oder als virtuelle Maschine)
Schritt 1: postmarketOS installieren
Installieren Sie zuerst postmarketOS auf dem Smartphone. Prüfen Sie auf der Geräteseite, ob Ihr Gerät korrekt unterstützt wird, und lassen Sie diese Seite während der gesamten Installation geöffnet.
Installieren Sie danach pmbootstrap, erstellen Sie das Image und flashen Sie es.
Image erstellen:
- Ports aktualisieren und Geräteinformationen initialisieren:
$ pmbootstrap pull $ pmbootstrap init- Geben Sie als Codenamen des Geräts den auf der Geräteseite aufgeführten Namen ein.
- Wählen Sie als Benutzeroberfläche
console(minimale Option) oderfbkeyboard(mit Bildschirmtastatur).
- Image erstellen:
$ pmbootstrap install
Image flashen:
- Prüfen Sie auf der Geräteseite, wie Sie in den Flash-Modus booten (meist durch Einschalten bei gedrückter Taste „volume down“).
- Verbinden Sie das Smartphone mit dem Computer und starten Sie es im Flash-Modus.
- Folgen Sie den Anweisungen im Abschnitt „Installation“ auf der Geräteseite.
- Root-Dateisystem flashen:
$ pmbootstrap flasher flash_rootfs - Starten Sie das Gerät neu und prüfen Sie, ob postmarketOS korrekt hochfährt.
Schritt 2: Server einrichten
Melden Sie sich auf dem Smartphone mit installiertem postmarketOS an. Standard-Benutzername/-Passwort sind user / 147147.
- SSH-Login, während das Smartphone mit dem Computer verbunden ist:
$ ssh user@172.16.42.1 - Mit dem WLAN verbinden:
$ nmcli device wifi connect your_wifi_network --ask
Damit ist der lokale Smartphone-Server fertig. Mit diesem Befehl prüfen Sie die lokale IP-Adresse des Smartphones:
$ ip -4 addr show wlan0 | grep inet | awk '{print $2}' | cut -d'/' -f1
(gewöhnlich im Format 192.168.1.x). Schließen Sie das Smartphone an einem sicheren Ort an und greifen Sie per WLAN darauf zu:
ssh user@192.168.1.x
Schritt 3: Webseite bereitstellen
Richten Sie einen Webserver ein, um eine einfache Webseite zu hosten.
- Verzeichnis
/var/www/html/erstellen:sudo mkdir -p /var/www/html/ - Eine einfache Hello-World-HTML-Datei schreiben:
$ sudo sh -c 'echo "<h1>hello world</h1>" > /var/www/html/index.html' - Eine nftables-Regel hinzufügen, die eingehende Pakete auf Port 80 erlaubt (in die Datei
/etc/nftables.d/99_http.nft):inet filter input tcp dport 80 ct state new accept - nftables neu starten:
$ sudo systemctl restart nftables - Webserver starten:
$ httpd -h /var/www/html/ - Testen: auf dem Computer mit curl prüfen:
(der Text$ curl 192.168.1.x<h1>hello world</h1>wird ausgegeben). Prüfen Sie außerdem im Webbrowser eines Geräts, das mit demselben WLAN verbunden ist, durch Eingabe der IP-Adresse. (Der HTTP-Server wird bei einem Neustart nicht automatisch wieder gestartet.)
Zusätzlich: Fernzugriff
Öffnen Sie aus Sicherheitsgründen nicht SSH-Port 22 ins Internet, sondern richten Sie den VPN-Zugang Ihres Routers ein (wird meist in der Weboberfläche unterstützt). Nach der VPN-Verbindung greifen Sie per SSH aus dem lokalen Netzwerk zu. Wenn Sie Port 22 doch ins Internet öffnen, deaktivieren Sie die Passwortanmeldung und richten Sie SSH-Schlüssel ein.
Zusätzlich: Wartung
Pakete aktualisieren:
$ sudo apk update
$ sudo apk upgrade
Nächste Schritte
Im erweiterten Abschnitt (noch im Aufbau) erfahren Sie, wie Sie Domain und HTTPS einrichten und wie der HTTP-Server auch nach einem Neustart dauerhaft weiterläuft.
Diese Anleitung wurde von Louis Merlin unter der CC BY-NC-SA 4.0-Lizenz erstellt.
4 Kommentare
So etwas mag ich. Für einen leichten Einstieg ist schon
termuxganz okay. Um auf einem ungenutzten Tablet etwa Grafana laufen zu lassen, kann man es verwenden.Allerdings reagiert Android OS ausgesprochen feindselig darauf, als Server zu arbeiten. Beim Note10, das ich 2024 auf Werkseinstellungen zurückgesetzt habe, werden Kindprozesse gekillt, sobald es mehr als 6 sind. Auch wenn es lange im Idle-Zustand bleibt, wird es gekillt. Das ist so, selbst wenn man alle batteriebezogenen Optimierungen deaktiviert.
Ich habe es ausprobiert, ohne den Touchscreen zu berühren, und maximal 72 Stunden zum Laufen gebracht; danach habe ich aufgegeben.
Haben Sie schon versucht, den Phantom Process Killer zu deaktivieren?
Ob das mit dem Akku wohl in Ordnung ist?
Es wird wohl zu Aufquellen kommen.