Linux auf dem Handy…. So etwas nerdiges. Aber das hat doch eh fast jeder (Android). Also warum nicht die vorhandenen Möglichkeiten nutzen und nebenbei noch ein anständiges System laufen haben. Wie man also Archlinux unter Android installiert, kannst du in den nächsten Absätzen lesen.
Vorneweg: So schwer ist das wirklich nicht. Die Vorteile überwiegen natürlich:
- Richtige Anwendungen Laufen lassen
- Ordentliche Entwicklungsumgebung in gewohnter Atmosphäre
- Git
- Python, ruby, …
- Echte X Anwendungen laufen
- Webserver
- Cronjobs
- …… und vieles mehr
Technisches
Es gibt einige Möglichkeiten Linux auf sein Handy zu bringen:
- VM – wenn dies funktionieren sollte, dann wäre das wohl ziemlich langsam und würde viel Strom kosten
- Nativ – soll es geben… Aber dann läuft Android nicht mehr und man kann sich nicht telefonieren
- Chroot – dabei wird der ganz normale Android Kernel verwendet, nur befindet sich der aktuelle Prozess und alle Kindprozesse in einer eigenen Umgebung (also in unserem Archlinux) dies ermöglicht es, das Android parallel einfach weiter laufen kann, da nichts emuliert wird wirkt sich das sich nicht auf die Akkulaufzeit aus
Voraussetzungen
- Root
Ich zeige dir also, wie man Archlinux in einer chroot-Umgebung installiert.
Warum Archlinux?
- Es gibt eine ARM Version
- Aktuelle Software
- Gute Community
- Tolles OS
Was lesen?
Ich habe mich bei meiner Installation an diese zwei Tutorials gehalten.
- http://rubiojr.rbel.co/hack/2013/01/10/installing-arch-linux-in-your-android-phone-chroot/
- http://lrvick.net/blog/arch_linux_terminals_in_android/
Das erste solltest du dir anschauen, wenn du alles selber machen willst, und wenn du das System auf die SD Karte installieren willst (nicht empfohlen, da langsam und die SD Karte kann kaputtgeschrieben werden).
Das zweite ist etwas veraltet und funktioniert Nicht ganz so wie beschrieben, weil das verlinkte image nicht mehr vorhanden ist.
Also hier meine Vorschläge:
- Du willst alles selber machen und das Linux auf die SD-Karte installieren? Dann Versuche das erste Tutorial
- Du willst alles selber machen, aber Linux auf die Systempartition installieren? Dann lies das erste Tutorial bis “Upload the tarball to the phone“ und liest bei mir ab … weiter
- Du willst dir die Mühen mit der extrahieren des Dateisystems sparen? Dann lies meinen Artikel
Installation
Logge dich über SSH oder die adb Konsole auf den Handy ein (oder du tippst alles auf dem Handy, dann viel Spaß…)
Für SSH versuche mal die App: DropBear SSH Server
Ansonsten einfach adb shell ausführen.
Führe folgende Befehle aus:
su bash cd /data/local/ mkdir arch cd arch wget https://azapps.de/wp-content/uploads/2013/02/archlinux.tar.gz tar xzf archlinux.tar.gz rm Arch*.tar.gz mount -o bind /dev dev mount -t proc proc proc mount -t sysfs sysfs sys ln -s /proc/self/fd dev/fd echo "nameserver 85.214.20.141" >> /data/local/arch/etc/resolv.conf
Du lädst dir damit mein vorbereitetes image in das Verzeichnis runter, entpackst es und mountest noch ein paar Sachen an die richtigen Stellen. Dann richtest du dir Sicherheitshalber noch einen Notfall DNS Server ein (wenn du Google vertraust, nimmst du die 8.8.8.8. Der hier ist von Digital Courage).
Für das erste mal tippst du folgende Befehle ein:
chroot . /bin/bash source /etc/profile export TERM=xterm-256color export HOME=/root mount /dev/pts pacman -Syuu
Damit wechselst du in den chroot und lädst ein paar Sachen nach und setzt die Variablen richtig.
Im Prinzip bist du fertig. Du kannst noch einen neuen Nutzer anlegen, damit du nicht immer als Root arbeiten musst:
useradd -m nutzername
Damit du das initialisieren nicht jedes mal händisch machen musst, nimmst du einfach das vorbereitete Script von lrvick: https://gist.github.com/lrvick/2632221 das macht alles automatisch.
Wie geht es weiter?
Basiseinrichtung
Als Terminalemulator empfehle ich dir den hier: Android Terminal Emulator der kommt auch sehr gut mit den Farben klar und da funktioniert auch htop wunderbar.
DIE Tastatur (Hacker’s Keyboard) solltest du unbedingt für solche Sachen verwenden.
Damit du das Script nicht jedes mal von Hand ausführen musst, kannst du es als init Script in Terminal emulator benutzen:
Einstellungen/Startbefehl
su -c “/data/local/arch/init.sh“
Wenn du jetzt das Terminal öffnest, bist du immer gleich in Archlinux drin.
Hi, ich habe nach der Beschreibung versucht Arch auf mein Htc One zu installieren und bin bis
echo „nameserver 85.214.20.141″ >> /data/local/arch/etc/resolv.conf
gekommen. Verstehe ich richtig, es sollte ein Download starten?
Und ich finde mit dem Dateimanager den ordner /data/local/arch nirgendwo obwohl ich in der Konsole in dem Ordner bin. Sorry für die blöden fragen , ich bin nicht so linux bewandert.
Hallo Laszlo,
Die Zeile
echo “nameserver 85.214.20.141″ >> /data/local/arch/etc/resolv.conf
schreibt „nameserver 85.214.20.141″ in die gegebene Datei. Die Datei wird für DNS benötigt.
Den Ordner wird ein normaler Dateibrowser nicht anzeigen können, weil er keine Root Rechte hat. Du musst einen nutzen, der Root Rechte anfordern kann (z.B. ES Datei Explorer oder der Standarddateimanager von Cyanogenmod)
Wenn du noch nicht viel Erfahrung mit Linux hast, dann installiere dir am besten ein Arch Linux auf deinen Rechner. Dort hast du auch eine ordentliche Tastatur – damit macht das Arbeiten auch mehr Spaß.