Comment transformer un ancien téléphone Android en serveur Linux de poche ou en bureau sans accès root
Presque tout le monde a un vieux smartphone qui prend la poussière dans un tiroir. L'écran est intact, la batterie tient encore quelques heures, et le processeur à l'intérieur a huit cœurs — mais le jeter semble gaspillage. Le destin habituel d'un tel appareil est de rester inactif pendant des années jusqu'à ce que la batterie finisse par gonfler.
Beaucoup ont essayé d'installer des distributions Linux sur Android via VNC, mais généralement cette expérience se termine par une déception : un décalage sauvage de l'interface, aucune accélération 3D correcte, et des ennuis sans fin avec les permissions root. Récemment, je suis tombé sur le dépôt linux-android du développeur mayukh4. Le projet résout ce problème élégamment. En utilisant quelques scripts basés sur Termux et Termux-X11, le téléphone se transforme en poste de travail complet avec un bureau graphique ou un hub domotique fonctionnant 24h/24. Aucun root requis.
Deux scénarios dans un seul dépôt
L'auteur a divisé le projet en deux branches d'utilisation indépendantes, qui peuvent fonctionner simultanément sur le même appareil si souhaité.
Le premier chemin est un bureau graphique complet. Le script déploie un environnement de votre choix (XFCE4, LXQt, MATE ou KDE Plasma), achemine l'audio via PulseAudio et configure l'accélération graphique matérielle. Dès le départ, vous obtenez le navigateur Firefox, le lecteur VLC, Python 3 avec le gestionnaire de paquets pip, OpenSSH et même Wine pour exécuter des programmes Windows x86 via l'émulation Box64 et Hangover.
Le deuxième chemin est un serveur domotique. Le script fait tourner un conteneur Ubuntu léger via proot-distro et compile Home Assistant Core à l'intérieur. Le résultat est un serveur domotique local qui contrôle les lampes et prises Wi-Fi, consommant à peine quelques watts du chargeur du téléphone.
Comment fonctionnent la pile graphique et l'accélération 3D
Le principal problème avec les anciens guides pour exécuter Linux sur les téléphones était l'utilisation de clients VNC lents. Ici, l'image est affichée directement via Termux-X11. C'est une application distincte qui sert d'affichage X11 rapide pour l'environnement Termux.
L'auteur a géré correctement les graphiques. Le script détecte automatiquement le modèle de GPU via les propriétés système Android, ignorant la marque du smartphone (puisque les gammes Samsung peuvent avoir à la fois des puces Snapdragon et Exynos).
Si l'appareil a une puce Qualcomm Snapdragon avec graphiques Adreno, le système récupère le pilote Vulkan open source Turnip associé à Zink (traduction OpenGL via Vulkan). Cela offre des performances 3D quasi natives et une interface fluide. Si le smartphone fonctionne avec un processeur graphique Mali ou PowerVR, l'environnement passe au moteur de rendu logiciel SwRast. Pour Mali, l'auteur recommande raisonnablement de choisir des environnements légers comme LXQt ou XFCE, car un KDE Plasma lourd sur un moteur de rendu logiciel laggera perceptiblement.
Tous les paramètres graphiques sont enregistrés dans le fichier de configuration ~/.config/linux-gpu.sh. Si vous le souhaitez, vous pouvez l'éditer manuellement et ajuster les drapeaux Mesa — par exemple, forcer une version OpenGL spécifique ou activer le mode débogage.
Travail à distance via SSH
Regarder un écran de smartphone de cinq pouces lorsqu'on travaille avec un terminal ou du code n'est pas toujours pratique. Le développeur l'a anticipé et a inclus un serveur OpenSSH dans le package de base.
Comme Termux n'a pas de privilèges root, le serveur SSH écoute sur le port non standard 8022. Vous pouvez vous connecter au smartphone depuis un ordinateur portable ou un PC sur le réseau local avec une seule commande :
ssh [email protected] -p 8022
Le nom d'utilisateur Termux suit généralement le motif u0_a123 (vous pouvez le trouver avec la commande whoami). Les fichiers peuvent être transférés commodément via scp standard ou n'importe quel client SFTP familier. Ajoutez simplement l'hôte à ~/.ssh/config sur votre ordinateur principal, configurez la connexion par clé, et le téléphone devient un bac à sable distant silencieux pour les tests et les builds de code.
Nuances avec Home Assistant
Transformer un smartphone en serveur domotique semble tentant, mais il est important de comprendre les limitations techniques d'Android que l'auteur avertit honnêtement dans la documentation.
Comme Home Assistant Core s'exécute à l'intérieur d'un conteneur proot sans privilèges superutilisateur :
- mDNS et la découverte automatique d'appareils sur le réseau local ne fonctionnent pas. À partir d'Android 10, le système bloque l'accès à
/proc/net/dev, donc les prises et ampoules intelligentes (par exemple, TP-Link Kasa) doivent être ajoutées manuellement par leurs adresses IP. - Pas d'accès à la pile Bluetooth du téléphone.
- Vous ne pouvez pas connecter une clé USB Zigbee ou Z-Wave externe sans un noyau personnalisé et un accès root.
- Il s'agit spécifiquement de Home Assistant Core, pas de Home Assistant OS complet. Les add-ons du catalogue d'add-ons communautaires qui nécessitent Docker ne peuvent pas être lancés ici, mais les intégrations intégrées fonctionnent correctement.
Pour les intégrations cloud comme Tuya ou Smart Life, il n'y a pas de telles restrictions — elles se connectent via l'API développeur et sont gérées sans problème.
Installation et lancement
Pour l'installation, vous aurez besoin de Termux lui-même (obtenez strictement la build depuis F-Droid, car la version du Google Play a été abandonnée depuis longtemps) et de Termux-X11 depuis le dépôt GitHub.
Avant d'exécuter le script principal, vous devez mettre à jour la base de données des paquets et empêcher le CPU d'entrer en mode veille :
termux-wake-lock
pkg upgrade -y
La commande termux-wake-lock empêche le système d'exploitation de tuer le processus de construction lorsque l'écran s'assombrit. Après cela, vous pouvez cloner et exécuter le script du bureau :
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
Pendant le processus, le script demandera quel shell graphique installer et si vous avez besoin de la couche de compatibilité Wine. L'installation prend 10 à 30 minutes.
Un détail d'implémentation intéressant : le script a une fonction safe_install_pkg personnalisée. Il analyse les métadonnées des paquets via apt-cache et vérifie le bloc Conflicts à l'avance. Si le système a déjà un paquet conflictuel (par exemple, différentes builds de chargeurs Vulkan), le script ignore soigneusement le composant problématique au lieu de planter avec une erreur.
Le bureau démarre avec la commande :
bash ~/start-linux.sh
Après cela, ouvrez simplement l'application Termux-X11, où le bureau apparaîtra.
Si votre objectif est de configurer Home Assistant, exécutez le script séparé setup-homeassistant.sh. Il crée un environnement Ubuntu, installe les dépendances Python et construit les modules requis. L'interface web du serveur s'ouvre dans n'importe quel navigateur du réseau local à l'adresse http://<ip-телефона>:8123 après le démarrage.
Qui trouvera ce projet utile
Les scripts de Mayukh4 éliminent le besoin d'assembler un environnement de travail à partir d'instructions dispersées sur les forums. Tous les pièges courants, y compris les conflits de dépendances et les processus tués par le gestionnaire d'arrière-plan d'Android, sont déjà gérés ici.
Le projet est parfait pour ceux qui veulent :
- expérimenter avec Linux et la ligne de commande sans acheter un Raspberry Pi ou configurer des machines virtuelles ;
- obtenir un serveur de poche pour les tâches Python en arrière-plan et les expériences ;
- exécuter un hub domotique peu coûteux sur de vieux matériels ;
- construire un poste de travail mobile compact en connectant un clavier et une souris Bluetooth au smartphone.
Si vous avez un smartphone inutilisé avec un processeur 64 bits et 3-4 Go de RAM, ce dépôt lui donne une excellente chance de connaître une seconde vie.
Projets similaires