Linux Installer auf dem Pro - Erfahrungsberichte

  • 24 Antworten
  • Neuester Beitrag
Diskutiere Linux Installer auf dem Pro - Erfahrungsberichte im Root / Hacking / Modding für Sony Ericsson Xperia Pro im Bereich Sony Ericsson Xperia Pro Forum.
S

siyman

Stammgast
Detaillierte Anleitung für das Pro, Stand 15.01.12

Klingt das nicht ein bisschen wie ein Traum? Ich finde schon, weshalb mich der Link im Android Market auf den Linux Installer mit Neugier erfüllt hat. Aus diesem Grund hier ein kleines Installationstutorial auf Deutsch und mit spezifischen Erfahrungen zum Sony Ericsson Xperia Pro.
Was man braucht: Ein Android 2.1+ Gerät mit root-Zugriff, minimal 500 MB freien Speicher auf der SD-Karte, für eine grafische Umgebung 1 GB+, W-Lan aufgrund der hohen Datenmenge, etwa eine Stunde Zeit, die Linux Installer App (siehe oben), einen Android VNC-Viewer (bspw. android-vnc-viewer), einen Terminal-Emulator (bspw. Android Terminal Emulator)
Los geht's
Zunächst stellt ihr sicher, dass alle benötigten Voraussetzungen auch erfüllt sind. Danach öffnet ihr die Linux Installer App. Sie begrüßt euch mit einer Menge root-Zugriffs-Aufforderungen, welche ihr allesamt bestätigt, danach seht ihr die Oberfläche der App. Unser erster Weg führt uns über die Menü-Taste des Telefons in den Punkt "Setup".
Setup
Auf dem Xperia Pro wird man zunächst mit einer Warnmeldung begrüßt, dass ein Archiv im Stammverzeichnis von Android fehlt. Wir ignorieren die Warnung, klicken auf Override und starten damit die Anwendung an sich, denn letzlich handelt es sich hier im einen optionale Punkt.
Weil wir auf Nummer sicher gehen wollen, dass das zu installierende System keine Daten des Androids zerstört/beschädigt, setzen wir zunächst den Haken im ersten Punkt "Install in a block device". Ebenfalls haken wir "Use loop file" an. Im Punkt "Preferred Distribution" kann man nun seine bevorzugte Distribution aussuchen, wobei ich persönlich stets auf das aktuell als stable gekennzeichnete Debian, derzeit also Debien 6 (Squeeze) setzen würde. Wir wählen also Debian und im Punkt "Distribution Version" Squeeze. Den Hostname kann man nach belieben verstellen, jedoch ist dies rein ästhetischer Natur und Galoula-ARMEL ist genauso schön wie Kirschwasser oder Rock-Hammer-Linux-Admin. Als "Domain Name" wählen wir "localhost", die chroot-Punkte belassen wir in der Standardkonfiguration . Hierauf folgt die Einstellung der "Loop file", also unserer virtuellen Festplatte. Ich persönlich habe dafür meine SD-Karte ausgewählt und empfehle diese Konfiguration auch deutlich aufgrund des geringeren Risikos, Daten zu vernichten. Das hat aber auch Nachteile, welche zu erklären hier aber nicht hergehört. Um auf die Einstellung selbst zurückzukommen: "/sdcard/Linux.loop". Die File-Size darf jeder selbst auswählen, jedoch empfehle ich für ein grafisches System mindestens "1024" (1 GB). Alles weitere bleibt bis auf einen Haken, wie es ist: "Allow write to /system" wird angekreuzt.
Zurück ins Menü
Damit das Telefon sich eventuell nicht aus dem W-Lan trennt und damit es beständig mit Strom versorgt wird, schließen wir dieses also zuerst ans Netzteil an und stellen dann das Displaytimeout (Menü -> Einstellungen -> Display -> Timeout) auf den höchsten angebotenen Wert. Hierauf starten wir wieder den Linux Installer und beginnen, das System einzurichten.
Linux Installer, die Zweite
Nachdem der Installer gestartet ist, betätigen wir nun die Schaltfläche "Create target loop". Das dauert eine kleine Weile, schließlich muss der Speicher auf der SD-Karte belegt werden, und danach klicken wir sogleich auf den daneben liegenden Button "Format target loop". Damit wird unsere virtuelle Festplatte entsprechend formatiert, sodass das System installiert werden kann. In meiner ersten Installation ging mein Display aus und dann nicht mehr an, weshalb ich meinen Akku herausnehmen und das Telefon neustarten musste. Sollte euch das passieren: Wartet bitte mindestens 5 Minuten, sodass keinerlei Schreibzugriffe mehr auf die SD-Karte passiern, da ihr ansonsten die Karte beschädigt.
Mounten, Herunterladen, Installieren
Ist das alles erfolgreich gelaufen, klickt man nun auf "Mount loop", um das Laufwerk entsprechend einer CD einzulegen. (Sollte eine Fehlemeldung mit der Überschrift: "Warning: chroot" auftauchen, so beendet diese durch Klick auf Override) Jetzt ändert sich auch die Anzeige im Linux Installer, denn ab sofort sehen wir nur noch zwei Buttons, von welchem wir nun den zweiten anwählen: "Install in loop" Jetzt beginnt das Telefon, sich die entsprechenden Pakete aus den Debian Repositories herunterzuladen und zu installieren. Dies wird mindestens eine halbe Stunde dauern, also habt etwas Geduld. Ihr solltet ebenfalls nicht aus dem Programm heraus oder ins Hauptmenü wechseln, denn dies unterbräche die Installation.
Ab ins Terminal
Ist die Installation abgeschlossen und keinerlei Fehler aufgetreten, so kann man nun getrost aus dem Linux Installer heraus ins Hauptmenü und eine Konsole starten (Terminal). In diese gibt man nun den Befehl "linuxchroot" ein und betritt so die Linux-Oberfläche. Begrüßt wird man mit einer Meldung á la "W: debian stable is already mounted. Entering chroot ..." etc. Das ist ein gutes Zeichen und zeugt davon, dass bisher alles ordnungsgemäß funktioniert hat. Prinzipiell war es das auch schon mit der Installation, wenn man kein grafisches System mehr haben will. Von hier aus kann man nun einen LAMP-Server aufsetzen oder ähnliches machen, bspw. gewohnt mit vim arbeiten/surfen ;)
LXDE installieren
Doch was ist Linux ohne grafische Oberfläche? Mächtig, schon, aber manchmal auch ein wenig anstrengend. Also geht es daran, sich einen LXDE Desktop zu installieren. Auch dieser Vorgang dauert noch etwa eine weitere halbe Stunde und auch hier werden wieder viele Daten heruntergeladen und installiert. Um dies zu starten, gebe ich folgendes ein:
apt-get update
apt-get upgrade
apt-get install lxde
Sollten Fragen kommen, quittiere ich diese mit einem großen Y, um der Installation zuzustimmen. Während meiner Installation kann es unter Umständen auch dazu kommen, dass mich der Debian Installer (großes blaues Fenster, graue Pop-Ups, rote Rahmen) ebenso vor die Wahl stellt, bspw. mein Tastaturlayout zu bestimmen. Hier wähle ich aus, was am besten zu mir passt, kann allerdings auch die vorgegebenen Einstellungen beibehalten und zu späterer Zeit abändern.
Weitere LXDE-Voraussetzungen
Ist der Installationsprozess von LXDE abgeschlossen, muss ich aber noch etwas mehr machen, um letztlich auf meine grafische Oberfläche zugreifen zu können. Grundsätzlich brauche ich nämlich die Möglichkeit, unter Android quasi auf meinen virtuellen Bildschirm zu schauen. Dafür nutze ich meinen VNC-Client, aber dieser braucht eben auch eine Andockstation, einen Server. Diesen installiere ich im Debian wie folgt:
apt-get update && apt-get install tightvncserver
Da mein LXDE aber nicht einfach so starten will, da unter anderem dbus in Debian 6 Squeeze ein paar Änderungen mit sich bringt und auch einige Pakete bei der Installation nicht beachtet werden, benötige ich noch etwas mehr. Das installiere ich dann mit den folgenden Befehlen:
apt-get update && apt-get install x11-server-utils xterm
Auch das wieder mit Y durchführen. Jetzt ist alles wichtige installiert, jedoch noch nicht eingerichtet und es kommt etwas Schreibarbeit auf einen zu. Dies ist vermutlich auch der schwierigste Teil auf einem Telefon, denn die Schreibfehler machen die ganze Sache ziemlich kompliziert. Aber egal, auf ihn!
touch /root/.Xresources
chmod 755 /root/.Xresources
nano /root/.vnc/xstartup
Nun befindet man sich in einem "grafischen" Editor. Er basiert auf dem WYSIWYG-Prinzip, was man aus normalen Office-Writern gewöhnt ist. Jetzt heißt es, die richtigen Informationen in die Datei bringen und danach abspeichern. Folgender Inhalt sollte sich in der xstartup befinden, damit der LXDE richtig startet:
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
icewm &
xterm -geometry 80x24+10+10 -ls -title "xterm Desktop: root"
lxsession
exec ck-launch-session startlxde
Nachdem ich diese Zeilen untereinander und genau in dieser Zeichenfolge eingetragen habe, nutze ich die Tastenkombination STRG+X (Leiser-Taste + x) zum Beenden und drücke Y, um die Datei zu überschreiben und quittiere noch einmal mit Enter, damit sich der Editor schließt.
Damit diese Konfigurationsdatei auch ordentlich gelesen werden kann, schreibe ich auch hier noch die Berechtigungen durch
chmod 755 /root/.vnc/xstartup
Den VNC-Server und damit LXDE starten
Nun der abschließende Part: Den VNC-Server starten, sodass ich letztlich mit dem android-vnc-viewer auf mein Debian connecten kann. Dazu schreibe ich folgendes Kommando in die Konsole:
vncserver -geometry 854x480
Hiernach werde ich zweimal nach einem Passwort gefragt, welches sechsstellig sein muss - ein einfaches "000000" tut hier seinen Dienst. Darauf erscheint diese Meldung:
New 'X' desktop is rootname:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/rootname:1.log
Das ist spitze :D Sollte irgendetwas im VNC-Client dann nicht so aussehen, wie ich es gern hätte, kann ich also später durch ein
nano /root/.vnc/rootname:1.log
ansehen, was schiefgelaufen ist und eventuell allein eine Lösung finden.
Der VNC-Client
Jetzt drücke ich wieder die Home-Taste und starte meinen android-vnc-client. Hier trage ich meine im Installationsprozess angegebenen Informationen ein, also
Nickname: linuxchroot
Passwort: 000000
Adress: localhost
Port: 5901
Username: linuxchroot
Ein Klick auf "connect" und schon sehen wir die wunderschöne Oberfläche unsere Debian Squeeze mit LXDE-Oberfläche. Herrlich! Das besondere Schmankerl: Es startet sich automatisch auch xterm, sodass ihr gleich auch von hier aus bequem eure Konsole benutzen könnt, mit welcher ihr in Auszügen gerade schon gut vertraut seid.


Moooment. Ich habe den vncserver mehrfach gestartet und sehe aber nichts, werde vom VNC-Client mit "unkown host" zurückgewiesen oder es ändert sich nichts!
Kein Problem. Vielleicht ist es dem ein oder anderen ja schon aufgefallen, als er den vncserver gestartet hat. Der gibt immer wieder eine Zahl nach dem Doppelpunkt an, also bspw. :1 oder :5 oder :99. Dies ist eine inkrementell wachsende Zahl in meiner aktuell gestarteten Debiansitzung. Sie beginnt wieder bei :1, wenn ich im Terminal "exit" eingebe und damit das System stoppe und dann wieder über "linuxchroot" starte. Doch wozu all die Info? Ganz einfach: Der Port im VNC-Client (also hier die 5901) entspricht in den letzten Ziffern immer der Angabe des vncservers. Startet dieser also den Server :12, so muss ich auch den Port 5912 angeben.
Um hier anzuschließen: Sollte das ganze System mal etwas träge werden, so seid euch sicher, dass tatsächlich nur ein X-Server läuft. Habt ihr mehrere gestartet, so schließt diese alle mittels
vncserver -kill :$
, wobei $ hier für die Zahl eures Servers steht.


Quellen:Originalartikel: siyman.de

_____________________ Alter Platzhalterartikel _____________________
Hallo liebe Pro-Betatester,

habe gestern eine interessante App im Market gefunden, welche auf den Namen Linux Installer hört. Das tolle: Es ermöglicht eine nicht chrooted Linuxumgebung und bringt von Haus aus Debian/Ubuntu mit. Über Sinn und Unsinn lässt sich streiten, aber mir ist richtiges Linux auf meinem Telefon seit jeher lieber als Android, da ich hier eben nicht mehr über den Dalvik arbeiten muss.
Derzeit probiere ich mich am Installer und habe bisher mein loop-Device auf /sdcard/linux.loop erstellt (500 MB), es formatiert (das Display wurde schwarz und ich musste das Telefon neustarten, aber es hat geklappt) und installiere gerade mein Debian Squeeze (6) ins loop. Dabei tippe ich bedächtig auf das Display, dass dieses nicht ausgeht, denn als ich eben nicht darauf geachtet habe, erschien der Linux Installer ohne weitere Meldung wieder in seinem Mainscreen. (Man kann hier sicherlich auch sagen: Display niemals ausschalten :D)

Nach diesem Tutorial wird es aber noch einen Zacken schärfer: Dem installierten Debian fügt man nachträglich noch eine LXDE Desktopumgebung hinzu und einen vncserver, über welchen man sich verbinden kann und hat damit nicht nur das zugrundeliegende Linux (für bspw. LAMP, vi, gcc etc.), sondern darüber hinaus auch einen vollwertigen Desktop.

Sollten während meiner Installation noch Fehler auftreten, werde ich diese selbstverständlich noch vermerken.
 
Zuletzt bearbeitet:
Dexxmor

Dexxmor

Guru
klappt das auch mit ubuntu 10.10?
wäre ne alternative zu CM^^
 
S

siyman

Stammgast
Dexxmor schrieb:
klappt das auch mit ubuntu 10.10?
wäre ne alternative zu CM^^
Warum sollte es gerade die 10.10 auslassen, wenn sonst jedes Debian und Derivat läuft ;) Allerdings musst du halt eine Arm-Version finden - ich denke hier ist Ubuntu 11.10 gerade gut im Rennen. Aber bedenke: das installierte System ersetzt Android nicht, es läuft lediglich nebenher und die grafische Oberfläche siehst du nur mittels grafischem Terminal (vnc).

übrigens ging die Installation gestern noch tadellos vonstatten, jedoch hatte ich leider etwas zu wenig freien Speicher für den x.org eingeplant, weshalb ich das Projekt heute erst beenden werde.
 
S

siyman

Stammgast
Update: Ich habe aus dem Leitartikel ein umfangreiches Tutorial gemacht. Hoffentlich kommt der ein oder andere nun ganz einfach an sein Debian :p
 
noob_fl

noob_fl

Experte
klingt geil... ich werd das mal für ohne grafische oberfläche benützen um etwas shellmächtiger zu werden

kleine frage

ich nehm an, die Debiansitzung beende ich dann mit einem gewöhnlichen Shutdown oder fährt das dann das ganze handy runter und währe dann exit die bessere alternative? ;)

Der ursprüngliche Beitrag von 17:07 Uhr wurde um 18:17 Uhr ergänzt:

so, läuft

aber: beim Debian Stable funktioniert das installieren über apt-get nicht, er kann die abschliessenden Configs nicht ausführen :(

ist das bei den anderen Distros auch so?
 
S

siyman

Stammgast
Ein gewöhnliches exit reicht, da du ja nur mittels chroot auf dem system bist. Shutdown dürfte an sich gar nicht funktionieren, allerdings würde es das gesamte System herunterfahren. Habe ich jedoch noch nicht versucht.

Zu deinem Problem: Probier mal folgendes:

sudo dpkg --configure -a
 
noob_fl

noob_fl

Experte
geht auch nicht

er meldet das ldconfig und start-stop-deamon nicht im PATH verzeichnet sind oder nicht ausführbare files seien

Der ursprüngliche Beitrag von 15:07 Uhr wurde um 15:15 Uhr ergänzt:

ich glaub ich konnt es fixen

Code:
PATH=$PATH:/usr/local/sbin
export PATH
PATH=$PATH:/usr/sbin
export PATH
PATH=$PATH:/sbin
export PATH
mit dem Exportbefehl sollte doch das, zumindest in der Konsole (will kein xserver drauf) ja dauernd in die bash aufgenommen worden sein oder? also auch nach einem reboot

Der ursprüngliche Beitrag von 15:15 Uhr wurde um 15:33 Uhr ergänzt:

hihi... noch eine kleine Frage

wir haben ja das Pro (hardwaretastatur) - gibts da ne möglichkeit die crtl funktion zu benützen, also eventuel das Layout zu manipulieren? denn viele konsolenprogramme werden ja mit crlt+taste gesteuert
 
noob_fl

noob_fl

Experte
@ strg taste = hat sich erübrigt, kann man ja TE einstellen

@ PATH probleme - ist nur ein problem der Stableversion, hab aufs mini mal Debian 7 installiert, da gibts keine probleme damit ;)
 
K

KlopKlop

Neues Mitglied
Leider komm ich bei dem punkt "Formate target loop" nicht weiter
ich bekomm immer nur den Error: Error formatting loop!: mfs.ext2 not found!
Only ext2 version is embedded
 
noob_fl

noob_fl

Experte
hast du die Busybox intalliert?

wenn ja, versuchs ev mit einem anderen Kernel

@ PATH probleme

es besteht weiter... - wie kann ich die PATH variablen dauernd speichern?

das Problem hab ich nur auf de Pro, das Xperia mini hat das nicht...
 
K

KlopKlop

Neues Mitglied
Was genau soll ich mit Busybox machen?
bzw welcher Kernel ist zu Empfehlen für das Asus TF300TL
und kann ich einen anderen Kernel aufspielen wenn der Bootloader gelocked ist?
 
noob_fl

noob_fl

Experte
Was genau soll ich mit Busybox machen?
die app öffnen, das system checken lassen und dann "smart Install" wählen ;)

bzw welcher Kernel ist zu Empfehlen für das Asus TF300TL
und kann ich einen anderen Kernel aufspielen wenn der Bootloader gelocked ist?
da bin ich jetzt bei beidem überfragt, da ich die Customszene bei Asus nicht kenne und welche möglichkeiten es da gibt für kernelinstallationen

am besten liest du dich auf XDA etwas schlau.. wichtig ist dass der Kernel das loopfiles erlaubt
 
K

KlopKlop

Neues Mitglied
OK hab es mit BusyBox hin bekommen hatte warscheinlich den falschen Installer oder sowas

Also geht es jetzt im Linux Installer alles ohne Probleme
nur dann bei den Terminal befehlen hapert es ein wenig
die scheinen doch etwas abzuweichen von den hier beschrieben

nur leider finde ich keine Anleitung die sich direkt auf Ubuntu bezieht
 
noob_fl

noob_fl

Experte
Also debian und ubuntu haben die selben befehle und sie greiffen auch auf dieselbe sources zurück.. D.h. Was mit debian funzt, funt auch mit ubuntu.. Welche meldung kriegst du vom terminal auf die befehle? Ansonsten hilft dir ev die seite ubuntuusers.de weiter, da ist sogut wie alles was man mit ubuntu tun kann beschrieben.. Und sollte auch für debian funzen

Gesendet von meinem MK16i mit der Android-Hilfe.de App
 
K

KlopKlop

Neues Mitglied
OK das klingt schonmal gut
ich komme jetzt bis hier her
wenn ich ins Terminal Chroot eingebe kommt nur folgendes
BusyBox v1.20.2-Stericson (2012-07 -04 21:33:31 CDT) multi-call binary
Usage: chroot NewRoot [PROG ARGS]
Rund PROG with root directory set to NEWROOT

Was etwas anders ist als die Anleitung im TuT
also was hab ich falsch gemacht :D
sry wenn ich mich hier warscheinlich wie der 1. Mensch anstelle :D
 
noob_fl

noob_fl

Experte
wenn du in den einstellungen nichts geändert hast und das das skript installiert hast, müsste der befehl doch eigentlich

linuxchroot

heissen :)
 
K

KlopKlop

Neues Mitglied
Warscheinlich wieder nur was kleines
wenn ich apt-get upgrade eingebe und bei der Aufforderung Y
kommt dann folgender Fehler
dpkg: warning: "ldconfig" not found in PATH or not executable
dpkg: warning: "start-stop-daemon" not found in PATH or not executable
dpkg: error: 2 expected programs not found in PATCH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)

Hat sich erledigt Google hat geholfen :D
 
Zuletzt bearbeitet:
noob_fl

noob_fl

Experte
plöd

wenn ich über die ADB schell auf das Linux zurückgreife sind die pathvariablen einwandfrei

wenn ich aber vom terminal emulator darauf zurückgreiffe, erkennt er die befehle nicht und ich muss die PATH variablen zuerst anpassen

hat das was mit dem TE zu tun? gibts da ne einstellung mit der ich den vollständigen PATH haben kann :(
 
K

KlopKlop

Neues Mitglied
Ok ein Fehler behoben kommt der näcshte
und da spuckt Google nicht so hilfreiche informationen aus

/usr/bin/dpkg returned an error code (1)

Ok das hätte sich auch geklär nun bin ich bei dem Punkt
apt-get update && apt-get install x11-server-utils xterm
und bekomme folgende Fehler

Unable to locate package x11-server-utils
Unable to lockate package xtrem
 
Zuletzt bearbeitet:
noob_fl

noob_fl

Experte
KlopKlop schrieb:
Warscheinlich wieder nur was kleines
wenn ich apt-get upgrade eingebe und bei der Aufforderung Y
kommt dann folgender Fehler
dpkg: warning: "ldconfig" not found in PATH or not executable
dpkg: warning: "start-stop-daemon" not found in PATH or not executable
dpkg: error: 2 expected programs not found in PATCH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)

Hat sich erledigt Google hat geholfen :D
wie hat sich das bei dir erledigt? damit hab ich nämlich auch zu kämpfen

eben, wenn ich die weiter forne gelinkten befehle eingebe, ist das für eine Session behoben, aber nach einem reboot ist alles wieder beim alten

das ist aber nur beim androidterminal so, wenn ich das über die ADB schell auf meinem computer bearbeite funzt es...

und ich will nicht bei jedem start die PATH=$PATH befehle eingeben, das nerft :thumbdn:

Der ursprüngliche Beitrag von 21:59 Uhr wurde um 22:25 Uhr ergänzt:

:love: endlich konnt ich das fixen *freu*

und so hab ich das gemacht

TE app öffnen, in die einstellungen gehen und den startbefehl editieren

standartmässig steht dort ja drin

export PATH=data/local/sbin:$PATH

das hab ich nun erweitert

export PATH=data/local/sbin:$PATH; export PATH=usr/local/sbin:$PATH; export PATH=usr/sbin:$PATH; export PATH=/sbin:$PATH

nun funktionierst auch mit dem intallieren, keine fehlermeldung mehr vonwegen man-db trigger und lpconfig funktioniert nicht

Der ursprüngliche Beitrag von 22:25 Uhr wurde um 23:45 Uhr ergänzt:

testbeitrag: gesendet mit dem textbrowser lynx auf dem LXTerminal, durch die ADB Shell und mit dem debian :)