Jak Zamienić Stary Telefon z Androidem w Kieszonkowy Serwer Linux lub Pulpit Bez Dostępu Root
Prawie każdy ma stary smartfon kurzący się w szufladzie. Ekran jest nienaruszony, bateria trzyma jeszcze kilka godzin, a procesor ma osiem rdzeni — ale wyrzucanie go wydaje się marnotrawstwem. Typowy los takiego urządzenia to leżenie bezczynne przez lata, aż w końcu bateria w końcu napęcznieje.
Wielu próbowało instalować dystrybucje Linuksa na Androidzie przez VNC, ale zwykle kończy się to rozczarowaniem: dzikie opóźnienia interfejsu, brak prawdziwej akceleracji 3D i niekończące się problemy z uprawnieniami root. Ostatnio natknąłem się na repozytorium linux-android developera mayukh4. Projekt elegancko rozwiązuje ten problem. Za pomocą kilku skryptów opartych na Termux i Termux-X11, telefon przekształca się w pełnoprawną stację roboczą z graficznym pulpitem lub całodobowym centrum inteligentnego domu. Bez root.
Dwa scenariusze w jednym repozytorium
Autor podzielił projekt na dwie niezależne gałęzie użytkowania, które można uruchomić jednocześnie na tym samym urządzeniu, jeśli zajdzie taka potrzeba.
Pierwsza ścieżka to pełny pulpit graficzny. Skrypt wdraża środowisko do wyboru (XFCE4, LXQt, MATE lub KDE Plasma), przesyła dźwięk przez PulseAudio i konfiguruje sprzętową akcelerację graficzną. Po wyjęciu z pudełka otrzymujesz przeglądarkę Firefox, odtwarzacz VLC, Python 3 z menedżerem pakietów pip, OpenSSH, a nawet Wine do uruchamiania programów x86 Windows przez emulację Box64 i Hangover.
Druga ścieżka to serwer automatyki domowej. Skrypt uruchamia lekki kontener Ubuntu przez proot-distro i kompiluje Home Assistant Core w środku. Rezultatem jest lokalny serwer inteligentnego domu sterujący lampami Wi-Fi i gniazdkami, zużywający zaledwie waty z ładowarki telefonu.
Jak działa stos graficzny i akceleracja 3D
Głównym problemem starych poradników dotyczących uruchamiania Linuksa na telefonach było używanie wolnych klientów VNC. Tutaj obraz jest wyprowadzany bezpośrednio przez Termux-X11. To osobna aplikacja pełniąca rolę szybkiego wyświetlacza X11 dla środowiska Termux.
Autor obszedł się z grafiką właściwie. Skrypt automatycznie wykrywa model GPU przez właściwości systemowe Androida, ignorując markę smartfona (ponieważ linie Samsung mogą mieć zarówno układy Snapdragon, jak i Exynos).
Jeśli urządzenie ma układ Qualcomm Snapdragon z grafiką Adreno, system pobiera otwarty sterownik Turnip Vulkan sparowany z Zink (tłumaczenie OpenGL przez Vulkan). Zapewnia to niemal natywną wydajność 3D i płynny interfejs. Jeśli smartfon działa na procesorze z grafiką Mali lub PowerVR, środowisko przełącza się na programowy renderer SwRast. Dla Mali autor rozsądnie zaleca wybór lekkich powłok jak LXQt lub XFCE, ponieważ ciężkie KDE Plasma na programowym rendererze będzie zauważalnie laguować.
Wszystkie parametry graficzne są zapisywane w pliku konfiguracyjnym ~/.config/linux-gpu.sh. Jeśli chcesz, możesz go ręcznie edytować i dostosować flagi Mesa — na przykład wymusić konkretną wersję OpenGL lub włączyć tryb debugowania.
Zdalna praca przez SSH
Wpatrywanie się w pięciocalowy ekran smartfona podczas pracy z terminalem lub kodem nie zawsze jest wygodne. Developer to przewidział i dołączył serwer OpenSSH w pakiecie bazowym.
Ponieważ Termux nie ma uprawnień root, serwer SSH nasłuchuje na niestandardowym porcie 8022. Możesz połączyć się ze smartfonem z laptopa lub komputera PC w sieci lokalnej jednym poleceniem:
ssh [email protected] -p 8022
Nazwa użytkownika Termux zwykle follows the pattern u0_a123 (możesz ją znaleźć poleceniem whoami). Pliki można wygodnie przesyłać przez standardowy scp lub dowolny znajomy klient SFTP. Wystarczy dodać host do ~/.ssh/config na głównym komputerze, skonfigurować logowanie kluczem, a telefon staje się cichym zdalnym sandboxem do testowania i budowania kodu.
Niuansy z Home Assistant
Zamienienie smartfona w serwer inteligentnego domu wygląda kusząco, ale ważne jest, aby zrozumieć techniczne ograniczenia Androida, które autor uczciwie opisuje w dokumentacji.
Ponieważ Home Assistant Core działa wewnątrz kontenera proot bez uprawnień superużytkownika:
- mDNS i automatyczne wykrywanie urządzeń w sieci lokalnej nie działają. Począwszy od Androida 10, system blokuje dostęp do
/proc/net/dev, więc inteligentne gniazdka i żarówki (na przykład TP-Link Kasa) muszą być dodawane ręcznie po ich adresach IP. - Brak dostępu do stosu Bluetooth telefonu.
- Nie można podłączyć zewnętrznego klucza USB Zigbee lub Z-Wave bez niestandardowego jądra i dostępu root.
- To jest konkretnie Home Assistant Core, nie pełny Home Assistant OS. Dodatki z katalogu społecznościowego wymagające Dockera nie mogą być tutaj uruchamiane, ale wbudowane integracje działają bez problemu.
Dla integracji chmurowych jak Tuya lub Smart Life nie ma takich ograniczeń — łączą się przez API deweloperskie i są zarządzane bez problemów.
Instalacja i uruchomienie
Do instalacji potrzebujesz samego Termuksa (pobierz ściśle build z F-Droid, ponieważ wersja z Google Play jest od dawna porzucona) i Termux-X11 z repozytorium GitHub.
Przed uruchomieniem głównego skryptu musisz zaktualizować bazę pakietów i zapobiec przejściu CPU w tryb uśpienia:
termux-wake-lock
pkg upgrade -y
Polecenie termux-wake-lock zapobiega zabiciu procesu budowania przez system operacyjny, gdy ekran zgaśnie. Po tym możesz sklonować i uruchomić skrypt pulpitu:
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
Podczas procesu skrypt zapyta, którą powłokę graficzną zainstalować i czy potrzebujesz warstwy kompatybilności Wine. Instalacja trwa od 10 do 30 minut.
Ciekawy szczegół implementacyjny: skrypt ma niestandardową funkcję safe_install_pkg. Parsuje metadane pakietów przez apt-cache i z wyprzedzeniem sprawdza blok Conflicts. Jeśli system ma już konfliktowy pakiet (na przykład różne buildy loaderów Vulkan), skrypt ostrożnie pomija problematyczny komponent zamiast zawieść z błędem.
Pulpit uruchamia się poleceniem:
bash ~/start-linux.sh
Po tym wystarczy otworzyć aplikację Termux-X11, gdzie pojawi się pulpit.
Jeśli twoim celem jest skonfigurowanie Home Assistant, uruchom osobny skrypt setup-homeassistant.sh. Tworzy środowisko Ubuntu, instaluje zależności Pythona i buduje wymagane moduły. Interfejs web serwera otwiera się w dowolnej przeglądarce w sieci lokalnej pod adresem http://<ip-телефона>:8123 po uruchomieniu.
Kto znajdzie ten projekt przydatny
Skrypty Mayukh4 eliminują potrzebę składania środowiska roboczego z rozproszonych instrukcji na forach. Wszystkie typowe pułapki, w tym konflikty zależności i procesy zabijane przez menedżer tła Androida, są tutaj już obsłużone.
Projekt jest idealny dla tych, którzy chcą:
- eksperymentować z Linuksem i wierszem poleceń bez kupowania Raspberry Pi lub konfigurowania maszyn wirtualnych;
- uzyskać kieszonkowy serwer do zadań w tle i eksperymentów w Pythonie;
- uruchomić niedrogi hub automatyki domowej na starym sprzęcie;
- zbudować kompaktową mobilną stację roboczą, podłączając do smartfona klawiaturę i mysz Bluetooth.
Jeśli masz nieużywany smartfon z 64-bitowym procesorem i 3-4 GB RAM, to repozytorium daje mu doskonałą szansę na drugie życie.
Powiązane projekty