Hoe maak je van een oude Android-telefoon een Linux-server of desktop zonder root-toegang
Bijna iedereen heeft wel een oude smartphone die stof ligt te verzamelen in een la. Het scherm is intact, de batterij gaat nog een paar uur mee, en de processor heeft acht cores—maar het weggooien voelt verspild. Het lot van zo'n apparaat is meestal om jarenlang stil te liggen tot de batterij uiteindelijk opzwelt.
Veel mensen hebben geprobeerd Linux-distributies op Android te installeren via VNC, maar meestal eindigt deze ervaring teleurstellend: wild interface-lag, geen echte 3D-acceleratie, en eindeloze rompslomp met root-rechten. Onlangs stuitte ik op de linux-android repository van ontwikkelaar mayukh4. Het project lost dit probleem elegant op. Met een paar scripts gebaseerd op Termux en Termux-X11 transformeert de telefoon naar een volwaardig werkstation met een grafische desktop of een 24/7 slimme thuishub. Geen root nodig.
Twee scenario's in één repository
De auteur verdeelde het project in twee onafhankelijke gebruiksbranches, die desgewenst tegelijkertijd op hetzelfde apparaat kunnen draaien.
Het eerste pad is een volledige grafische desktop. Het script installeert een omgeving naar keuze (XFCE4, LXQt, MATE of KDE Plasma), stuurt audio via PulseAudio en configureert hardware graphics-acceleratie. Uit de doos krijg je Firefox-browser, VLC-speler, Python 3 met pip-pakketbeheerder, OpenSSH en zelfs Wine voor het draaien van x86 Windows-programma's via Box64 en Hangover-emulatie.
Het tweede pad is een domoticaserver. Het script start een lichtgewicht Ubuntu-container via proot-distro en compileert Home Assistant Core daarin. Het resultaat is een lokale slimme thuisserver die Wi-Fi-lampen en -stopcontacten aanstuurt, en die slechts enkele watts verbruikt van de telefoonlader.
Hoe de graphics-stack en 3D-acceleratie werken
Het hoofdprobleem met oude handleidingen voor het draaien van Linux op telefoons was het gebruik van trage VNC-clients. Hier wordt het beeld rechtstreeks via Termux-X11 uitgezonden. Dit is een aparte applicatie die als snelle X11-display voor de Termux-omgeving dient.
De auteur heeft graphics correct aangepakt. Het script detecteert automatisch het GPU-model via Android-systeemeigenschappen, waarbij het smartphone-merk wordt genegeerd (aangezien Samsung-lijnen zowel Snapdragon- als Exynos-chips kunnen hebben).
Als het apparaat een Qualcomm Snapdragon-chip met Adreno-graphics heeft, haalt het systeem de open-source Turnip Vulkan-driver op in combinatie met Zink (OpenGL-translatie via Vulkan). Dit levert vrijwel native 3D-prestaties en een vloeiende interface op. Als de smartphone draait op een processor met Mali- of PowerVR-graphics, schakelt de omgeving over naar de SwRast software-renderer. Voor Mali raadt de auteur redelijkerwijs aan om lichtgewicht shells zoals LXQt of XFCE te kiezen, aangezien zwaar KDE Plasma op een software-renderer merkbaar zal vertragen.
Alle graphics-parameters worden opgeslagen in het configuratiebestand ~/.config/linux-gpu.sh. Als je wilt, kun je het handmatig bewerken en Mesa-flags aanpassen—bijvoorbeeld een specifieke OpenGL-versie forceren of debug-modus inschakelen.
Extern werken via SSH
Staren naar een vijf-inch smartphonescherm tijdens het werken met een terminal of code is niet altijd handig. De ontwikkelaar heeft hier rekening mee gehouden en een OpenSSH-server in het basispakket opgenomen.
Omdat Termux geen root-privileges heeft, luistert de SSH-server op niet-standaard poort 8022. Je kunt vanaf een laptop of PC op het lokale netwerk met één commando verbinding maken met de smartphone:
ssh [email protected] -p 8022
De Termux-gebruikersnaam volgt meestal het patroon u0_a123 (je kunt deze vinden met het whoami commando). Bestanden kunnen gemakkelijk worden overgezet via standaard scp of elke vertrouwde SFTP-client. Voeg de host gewoon toe aan ~/.ssh/config op je hoofdcomputer, configureer sleutelgebaseerde aanmelding, en de telefoon wordt een stille remote sandbox voor testen en code-builds.
Nuances met Home Assistant
Een smartphone omtoveren tot een slimme thuisserver ziet er verleidelijk uit, maar het is belangrijk om de technische beperkingen van Android te begrijpen waar de auteur eerlijk voor waarschuwt in de documentatie.
Omdat Home Assistant Core draait in een proot-container zonder superuser-privileges:
- mDNS en automatische apparaatdetectie op het lokale netwerk werken niet. Vanaf Android 10 blokkeert het systeem toegang tot
/proc/net/dev, dus slimme stopcontacten en lampen (bijvoorbeeld TP-Link Kasa) moeten handmatig via hun IP-adressen worden toegevoegd. - Geen toegang tot de Bluetooth-stack van de telefoon.
- Je kunt geen externe USB Zigbee- of Z-Wave-stick aansluiten zonder een aangepaste kernel en root-toegang.
- Dit is specifiek Home Assistant Core, niet de volledige Home Assistant OS. Add-ons uit de community add-ons catalogus die Docker vereisen, kunnen hier niet worden gestart, maar ingebouwde integraties werken prima.
Voor cloudintegraties zoals Tuya of Smart Life gelden dergelijke beperkingen niet—ze maken verbinding via de developer API en worden zonder problemen beheerd.
Installatie en opstarten
Voor de installatie heb je Termux zelf nodig (download strikt de build van F-Droid, aangezien de Google Play-versie al lang is verlaten) en Termux-X11 van de GitHub-repository.
Voordat je het hoofd-script uitvoert, moet je de pakketdatabase bijwerken en voorkomen dat de CPU in slaapmodus gaat:
termux-wake-lock
pkg upgrade -y
Het termux-wake-lock commando voorkomt dat het besturingssysteem het build-proces afbreekt wanneer het scherm donker wordt. Daarna kun je het desktop-script klonen en uitvoeren:
curl -O https://raw.githubusercontent.com/mayukh4/linux-android/main/termux-linux-setup.sh
chmod +x termux-linux-setup.sh
bash termux-linux-setup.sh
Tijdens het proces vraagt het script welke grafische shell je wilt installeren en of je de Wine-compatibiliteitslaag nodig hebt. De installatie duurt 10 tot 30 minuten.
Een interessant implementatiedetail: het script heeft een aangepaste safe_install_pkg functie. Het parseert pakketmetadata via apt-cache en controleert vooraf het Conflicts blok. Als het systeem al een conflictend pakket heeft (bijvoorbeeld verschillende builds van Vulkan-loaders), slaat het script het probleemcomponent voorzichtig over in plaats van met een fout te crashen.
De desktop start met het commando:
bash ~/start-linux.sh
Open daarna gewoon de Termux-X11-app, waar de desktop zal verschijnen.
Als je doel is om Home Assistant in te stellen, voer dan het aparte script setup-homeassistant.sh uit. Het creëert een Ubuntu-omgeving, installeert Python-afhankelijkheden en bouwt de vereiste modules. De webinterface van de server opent in elke browser op het lokale netwerk op adres http://<ip-телефона>:8123 na opstarten.
Voor wie is dit project nuttig
De scripts van Mayukh4 elimineren de noodzaak om een werkende omgeving samen te stellen uit verspreide forum-instructies. Alle veelvoorkomende valkuilen, inclusief afhankelijkheidsconflicten en processen die worden beëindigd door de achtergrondmanager van Android, zijn hier al afgehandeld.
Het project is perfect voor degenen die willen:
- experimenteren met Linux en de command line zonder een Raspberry Pi te kopen of virtuele machines in te stellen;
- een pocketserver voor achtergrond-Python-taken en experimenten krijgen;
- een goedkope domotica-hub draaien op oude hardware;
- een compact mobiel werkstation bouwen door een Bluetooth-toetsenbord en -muis op de smartphone aan te sluiten.
Als je een ongebruikte smartphone hebt met een 64-bit processor en 3-4 GB RAM, geeft deze repository het een uitstekende kans op een tweede leven.
Gerelateerde projecten