Come Trasformare un Vecchio Telefono Android in un Server Linux Tascabile o Desktop Senza Accesso Root
Quasi tutti hanno un vecchio smartphone che raccoglie polvere in un cassetto. Lo schermo è intatto, la batteria tiene ancora un paio d'ore, e il processore all'interno ha otto core—ma buttarlo via sembra uno spreco. Il destino tipico di un tale dispositivo è giacere inattivo per anni fino a quando la batteria finalmente si gonfia.
Molti hanno provato a installare distribuzioni Linux su Android tramite VNC, ma di solito questa esperienza finisce in delusione: ritardo selvaggio dell'interfaccia, nessuna vera accelerazione 3D, e problemi infiniti con i permessi root. Recentemente mi sono imbattuto nel repository linux-android dello sviluppatore mayukh4. Il progetto risolve questo problema in modo elegante. Usando un paio di script basati su Termux e Termux-X11, il telefono si trasforma in una workstation completa con un desktop grafico o un hub per smart home attivo 24 ore su 24. Nessun root richiesto.
Due Scenari in un Solo Repository
L'autore ha diviso il progetto in due rami di utilizzo indipendenti, che possono essere eseguiti simultaneamente sullo stesso dispositivo se desiderato.
Il primo percorso è un desktop grafico completo. Lo script distribuisce un ambiente a scelta (XFCE4, LXQt, MATE o KDE Plasma), instrada l'audio tramite PulseAudio e configura l'accelerazione grafica hardware. Out of the box, ottieni il browser Firefox, il lettore VLC, Python 3 con il gestore di pacchetti pip, OpenSSH e persino Wine per eseguire programmi Windows x86 attraverso l'emulazione Box64 e Hangover.
Il secondo percorso è un server per home automation. Lo script avvia un container Ubuntu leggero tramite proot-distro e compila Home Assistant Core all'interno. Il risultato è un server smart home locale che controlla lampadine e prese Wi-Fi, consumando pochi watt dal caricatore del telefono.
Come Funzionano lo Stack Grafico e l'Accelerazione 3D
Il problema principale delle vecchie guide per l'esecuzione di Linux sui telefoni era l'uso di slow VNC. Qui, l'immagine viene inviata direttamente tramite Termux-X11. Questa è un'applicazione separata che funge da display X11 veloce per l'ambiente Termux.
L'autore ha gestito la grafica correttamente. Lo script rileva automaticamente il modello GPU attraverso le proprietà di sistema Android, ignorando il marchio dello smartphone (dato che le linee Samsung possono avere chip Snapdragon ed Exynos).
Se il dispositivo ha un chip Qualcomm Snapdragon con grafica Adreno, il sistema scarica il driver Vulkan open-source Turnip accoppiato con Zink (traduzione OpenGL su Vulkan). Questo offre prestazioni 3D quasi native e un'interfaccia fluida. Se lo smartphone funziona con un processore con grafica Mali o PowerVR, l'ambiente passa al renderer software SwRast. Per Mali, l'autore consiglia ragionevolmente di scegliere shell leggere come LXQt o XFCE, dato che KDE Plasma pesante su un renderer software rallenterà in modo evidente.
Tutti i parametri grafici vengono salvati nel file di configurazione ~/.config/linux-gpu.sh. Se desiderato, puoi modificarlo manualmente e ottimizzare i flag Mesa—ad esempio, forzare una versione specifica di OpenGL o abilitare la modalità debug.
Lavoro Remoto tramite SSH
Guardare uno schermo smartphone da cinque pollici quando si lavora con un terminale o codice non è sempre comodo. Lo sviluppatore ha previsto questo e ha incluso un server OpenSSH nel pacchetto base.
Dato che Termux non ha privilegi root, il server SSH ascolta sulla porta non standard 8022. Puoi connetterti allo smartphone da un laptop o PC sulla rete locale con un singolo comando:
ssh [email protected] -p 8022
Il nome utente Termux segue tipicamente il pattern u0_a123 (puoi trovarlo con il comando whoami). I file possono essere trasferiti convenientemente tramite scp standard o qualsiasi cliente SFTP familiare. Basta aggiungere l'host a ~/.ssh/config sul computer principale, configurare il login con chiave, e il telefono diventa una sandbox remota silenziosa per test e build di codice.
Sfumature con Home Assistant
Trasformare uno smartphone in un server smart home sembra allettante, ma è importante comprendere le limitazioni tecniche di Android che l'autore onestamente avverte nella documentazione.
Dato che Home Assistant Core viene eseguito all'interno di un container proot senza privilegi superuser:
- mDNS e rilevamento automatico dei dispositivi sulla rete locale non funzionano. A partire da Android 10, il sistema blocca l'accesso a
/proc/net/dev, quindi prese e lampadine smart (ad esempio, TP-Link Kasa) devono essere aggiunte manualmente tramite i loro indirizzi IP. - Nessun accesso allo stack Bluetooth del telefono.
- Non puoi connettere una chiavetta USB Zigbee o Z-Wave esterna senza un kernel personalizzato e accesso root.
- Questo è specificamente Home Assistant Core, non Home Assistant OS completo. Gli add-on dal catalogo community add-ons che richiedono Docker non possono essere avviati qui, ma le integrazioni integrate funzionano bene.
Per integrazioni cloud come Tuya o Smart Life, non ci sono tali restrizioni—si connettono tramite l'API dello sviluppatore e vengono gestite senza problemi.
Installazione e Avvio
Per l'installazione, avrai bisogno dello stesso Termux (ottieni rigorosamente la build da F-Droid, dato che la versione Google Play è stata abbandonata da molto tempo) e Termux-X11 dal repository GitHub.
Prima di eseguire lo script principale, devi aggiornare il database dei pacchetti e impedire alla CPU di entrare in modalità sleep:
termux-wake-lock
pkg upgrade -y
Il comando termux-wake-lock impedisce al sistema operativo di terminare il processo di build quando lo schermo si oscura. Dopodiché, puoi clonare ed eseguire lo script del desktop:
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
Durante il processo, lo script chiederà quale shell grafica installare e se hai bisogno del livello di compatibilità Wine. L'installazione richiede da 10 a 30 minuti.
Un dettaglio di implementazione interessante: lo script ha una funzione safe_install_pkg personalizzata. Analizza i metadati dei pacchetti tramite apt-cache e controlla in anticipo il blocco Conflicts. Se il sistema ha già un pacchetto in conflitto (ad esempio, build diverse dei caricatori Vulkan), lo script salta attentamente il componente problematico invece di bloccarsi con un errore.
Il desktop si avvia con il comando:
bash ~/start-linux.sh
Dopodiché, basta aprire l'app Termux-X11, dove apparirà il desktop.
Se il tuo obiettivo è configurare Home Assistant, esegui lo script separato setup-homeassistant.sh. Crea un ambiente Ubuntu, installa le dipendenze Python e compila i moduli richiesti. L'interfaccia web del server si apre in qualsiasi browser sulla rete locale all'indirizzo http://<ip-телефона>:8123 dopo l'avvio.
Chi Troverà Utile Questo Progetto
Gli script di Mayukh4 eliminano la necessità di assemblare un ambiente di lavoro da istruzioni sparse nei forum. Tutti i comuni trabocchetti, inclusi conflitti di dipendenze e processi terminati dal gestore in background di Android, sono già gestiti qui.
Il progetto è perfetto per chi vuole:
- sperimentare con Linux e la riga di comando senza comprare un Raspberry Pi o configurare macchine virtuali;
- ottenere un server tascabile per attività Python in background ed esperimenti;
- eseguire un hub di home automation economico su hardware vecchio;
- costruire una workstation mobile compatta connettendo una tastiera e un mouse Bluetooth allo smartphone.
Se hai uno smartphone inutilizzato con un processore a 64 bit e 3-4 GB di RAM, questo repository gli dà un'eccellente possibilità di seconda vita.
Progetti correlati