Linux na Androidzie

Android to Linux, tylko mocno „wykastrowany”, jednak dzięki Chroot'owi można na nim uruchomić pełnoprawny system – Ubuntu, Debian czy Fedora. Jak to działa? Ma to jakiś sens?

Wszystko za sprawą aplikacji „LinuxOnAndroid” (Linux Install Complete), która umożliwia w łatwy sposób uruchomienie pulpitowych systemów na telefonie (używając wbudowanych mechanizmów).

Zacznijmy od tego co to jest Chroot.

Chroot polega na zmianie katalogu głównego systemu.
Załóżmy, że na partycji mamy katalog główny „/”, a w „/external_sd/Debian/Debian.img” - Debiana.

Po zamontowaniu Debian.img, można zmienić katalog główny – i po prostu przejść na system z Debian.img i dzięki temu „trikowi” - można mieć dowolny system Linuksowy na architekturze ARM.

Czemu ARM? Dlatego, że system nie jest emulowany, wirtualizowany (jak np. Qemu czy VirtualBox), tylko uruchamiany natywnie


Po co mi Linux na Androidzie?

Być może nie jest ci taki system potrzebny, niemniej jeśli twój telefon ma port HDMI, a ty masz taki monitor (telefon raczej microHDMI) – a do MicroUSB podłączysz HUB'a, który da porty na myszkę i klawiaturę – możesz używać telefonu jako mini-komputera.

Ale czy to potrzebne? To już musisz sam zadecydować, niemniej na takim smartfonie można programować w wielu językach, włączać aplikacje, których nie znajdziemy na Androidzie czy po prostu bawić się.

Zobacz również: Gadżet tygodnia: Oculus Rift

Osobiście nie korzystam nagminnie z Debiana na Androidzie, niemniej chcę, by mój telefon stał się mobilnym komputerem (z Lapdockiem, o którym pisałem wcześniej), a w domu czekała mocna stacjonarka. Można się zastanawiać czy takie rozwiązanie ma sens, niemniej zakładam, że nie będę za dużo z „mobilnego komputera” korzystać (tyle, by do kolegi czy do szkoły).

Ciekawe, ciekawe – ale jakie wymagania ma mieć smartphone?

Twórcy wymagają:
— Zrootowany telefon
— Zainstalowany emulator terminala
— Busybox

I zalecają:
— Włączone USB Debugging (ja nie miałem i nie wiem czy potrzebna jest ta opcja)

Należy pamiętać ogólnie, że im lepszy telefon – tym lepiej. Ja mam Motorolę Atrix 4G i działa to całkiem nieźle, chociaż zapewne na mocniejszych telefonach można już używać bez spadków wydajności.

Jaki system mogę odpalić?

Lista dystrybucji wspieranych przez Linux Install Complete

Aktualnie wspieranych jest (przez LinuxOnAndroid) 6 systemów, jednak na Sourceforge jest ich trochę więcej (jednak są to obrazy w wersjach Alpha):

— Ubuntu (w wersjach 13.04 i 13.10)
— Debian (w wersji Lenny [5] i Jessie [Wersja rozwojowa, Debiana — 8])
— Arch Linux
— Kali Linux
— Fedora (19)
— OpenSuse (12.3)

W wersjach Alpha:
— Ubuntu (14.04)
— Bodhi (2.4.0)
— Slackware (14)
— Backtrack

Osobiście przetestowałem Debiana w wersji Testing i Ubuntu 13.10 – działają bardzo dobrze.

Jak zainstalować system na telefonie?

W zasadzie należy pobrać aplikację LinuxOnAndroid i postępować zgodnie z „Install Guides” (Poradnik instalacyjny), dzieli on się na 4 strony

Pierwsza informuje co jest potrzebne i zalecane do uruchomienia systemu.

Druga daje linki skróty do obrazu z systemem i programów (osobiście polecam się wstrzymać z VNC).

Trzecia informuje co się stanie po włączeniu systemu.

Ostatnia jak połączyć się przez VNC i jak wyłączyć systemem.

Jak już pobierzemy i rozpakujemy system (zalecam tutaj na kartę MicroSD go rozpakować) – W zakładce „Launch” wskazujemy gdzie jest obraz, nazywamy go – i dajemy „Start Linux” by zabootować

System dzięki sumie kontrolnej md5 (która jest w pliku zip) sprawdzi czy obraz został poprawnie rozpakowany, jeśli tak – uruchomi się system.

Debian po zabootowaniu

VNC kontra X11

To może być ciekawa walka – nie robiłem benchmarków, chociaż wydaje mi się, że Serwer X działa wydajniej z naszym systemem. Dodatkowo jest „płynne” sterowanie myszką (VNC działa „przeskokowo” - kursor zmienia pozycję po kliknięciu lewym przyciskiem myszy). Raz udało mi się pod serwerem X odpalić klawiaturę ekranową (nie wiem jak) + Serwer X11 ma dużo możliwości konfiguracji w zakresie rozdzielczości czy skalowania.

Ja używam „Xserver XSDL”, który został pobrany z Google Play.


Konfiguracja Linuksa (Debiana)

1) To są ogólne informacje na temat konfiguracji systemu
Warto zmienić strefę czasową, bo na „standardowej” zegar jest o 2 godziny cofnięty (tzdata).

2) Jeśli komuś przeszkadza angielski, może system spolszczyć.

3) Nie każde środowisko od razu „współpracuje z serwerem X” - ja stworzyłem plik „e”, który uruchamia Enlightenmenta na serwer X.

env DISPLAY=127.0.0.1:0 enlightenment_start

Dodatkowo samo środowisko ma (po doinstalowaniu locales-all) możliwość „spolszczenia” się.

Nie mam dźwięku, a urządzenia na USB nie działają

To jest dość „nieznany” problem, którego doświadczyłem i sobie poradziłem.

Potrzebujemy dodać (wymagana jest konsola Androida i Root) linijkę, która „zbinduje” (zrobi skrót) katalog /dev z Androida, do katalogu /dev w Debianie.

Pod komentarzem (Mount all required partitions) w pliku /data/data/com.zpwebsites.linuxonandroid/files/bootscript.sh

Należy dodać

$bbox mount --bind /dev $mnt/dev
if [ $? -ne 0 ]; then error_exit "Unable to mount $mnt/dev!"; fi

Jeśli po wpisaniu tego i uruchomieniu Linuksa – nie działa dźwięk (a np. drukarka tak), to znaczy, że dźwięk się samoczynnie wycisza

Debian wykrył drukarkę

#!/bin/sh

while [ neverendingloop=1 ] ;
do
sleep 2s
if amixer cget numid=27 | grep values=off > /dev/null 2>&1
then
amixer set -c 0 EPDAC unmute > /dev/null 2>&1
amixer set -c 0 HSLDAC unmute > /dev/null 2>&1
amixer set -c 0 HSRDAC unmute > /dev/null 2>&1
amixer set -c 0 "CPCAP Mixer Stereo DAC" unmute > /dev/null 2>&1
fi
done

Jest to kawałek kodu (mojego), który ma wyłączyć wyciszanie (w Atriksie) – Może zadziałać w twoim smartfonie, ale nie musi [może wymagać dostosowania] (Trzeba za pomocą alsamixer zobaczyć, które kanały są wyciszone, włączyć jakiś odtwarzacz muzyki – i sprawdzać)

Na sam koniec — podsumowanie

Debian z Enlightenment (w wersji 17) na moim telefonie

Czy warto mieć Linuksa pod ręką? Moim zdaniem tak. Przede wszystkim to bardzo rozbudowany system, ma wiele ciekawych programów, których nie doświadczymy na czystym Androidzie (jak Gimp, czy OpenJDK) – i działa. Oczywiście warto mieć klawiaturę i myszkę (Bluetooth, lub jakiegoś Lapdocka), by się przyjemnie z niego korzystało. Jeśli jednak twój Android spełnia wszystkie funkcje, których oczekujesz – może nie być sensu instalacji pingwina.

Ciekawe kto doszedł do końca tekstu i go to zaciekawiło ;)

Do zobaczenia! Wyczekuj kolejnych wpisów na blogu ;)

Podziel się:

Przeczytaj także:

Także w kategorii Technologie:

Xanadu - zapomniany przodek WWW. Kto naprawdę wymyślił hipertekst? V3 - mordercza stonoga Hitlera. Największe działo drugiej wojny testowano w Międzyzdrojach Jak prasa pisała o Internecie w 1988 roku? Tajny projekt NASA: dlaczego rozsypano w Kosmosie miliony miedzianych igieł? Technologiczne mity. Sony timer, czyli planowe starzenie produktów Asus G56JR – mocny gracz w rozsądnej cenie [test] Samsung też wejdzie w wirtualną rzeczywistość. Na smartfonach i tabletach! Papież Franciszek nie chce mieć konta na Facebooku. To przez was, hejterzy! 360cam pokaże świat dookoła nas. Zrobi zdjęcia i popilnuje mieszkania Tado – ochłodzi w upalne dni. Pora na inteligentną... klimatyzację! Energooszczędne, 14 nm procesory dla desktopów dopiero za… rok? Chcesz drukować tanio? Weź udział w konkursie - do wygrania 25 drukarek HP! Korzystacie z eBaya? Lepiej zmieńcie hasło. Wykradziono dane użytkowników Wsparcie z powietrza! Drony w służbie... motoryzacji! Nie garb się, jest... UpRight! Gadżet wyprostuje sylwetkę Niwa. Inteligentny ogród kontrolowany za pomocą smartfona Barobot. Domowy barman prosto z Polski! HAARP przestaje istnieć. Iluminaci i reptilianie już go nie potrzebują? Triumf technologii: sparaliżowany kierowca pojedzie w wyścigu Indy 500 Specjalnie dla Gadżetomanii: Coraz doskonalsze maszyny kroczące ze Stajni "Tron" The Bean. Tak wygląda następca myszki? Internet nie zapomina niczego. Prawo do bycia zapomnianym to bzdura Everpurse Mini. Torebka, która naładuje iPhone'a Skylock - inteligentna blokada rowerowa, która ostrzeże przed złodziejem