Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Motorola Forum > Motorola Milestone Forum > Root / Hacking / Modding für Motorola Milestone > Anleitungen für Motorola Milestone

[How-To] Debian (chroot) mit LXDE auf dem Milestone

Das Thema "[How-To] Debian (chroot) mit LXDE auf dem Milestone" befindet sich unter Anleitungen für Motorola Milestone auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 09.05.2010, 20:16   #1 (permalink)
Neuer Benutzer

Registriert seit: 09.05.2010
Beiträge: 11
Abgegebene Danke: 0
Erhielt 10 Danke für 4 Beiträge
Beitrag [How-To] Debian (chroot) mit LXDE auf dem Milestone

Ich beschreibe hier eine Methode, um Debian in einer chroot-Umgebung auf den Milestone zu installieren.
Das hat den Vorteil, dass man Zugriff auf eine vollwertige Shell und auf nahezu alle Programme hat, die einem Debian bietet (z.B. nmap, samba, ssh, wireshark etc.)
Ebenso kann man eine grafische Oberfläche installieren, auf die man per VNC zugreifen kann.
Man findet zwar einige Anleitungen im Netz, allerdings nicht direkt für das Milestone, darum habe ich mich dazu entschieden, hier eine kleine Howto für den Stein zusammenzufassen.


Es gibt grundsätzlich 2 Möglichkeiten:

1. Mit debootstrap eine chroot-Umgebug erstellen, diese auf das Smartphone kopieren und alle weiteren Schritte von dort ausführen.
2. Mit build-arm-chroot eine chroot-Umgebung erstellen, die second-stage und die Paketinstallation durchführen bevor man das Image auf das Milestone kopiert.

Die 2. Möglichkeit bietet den Vorteil, dass man die Rechnenleistung des Milestone während der second-stage von debootstrap nicht an die grenzen treibt. Mit Android 2.0.1 hat sich debootstrap durch die hohe Last auf meinem Milestone mehrmals aufgehängt. Mit 2.1 habe ich es erst einmal getestet, dabei lief es ohne Probleme durch.
Trotzdem werde ich hier nur die 2. Methode beschreiben, da es für die 1. mehrere Anleitungen im Netz gibt und sich die 2. für mich als die zuverlässigere herausgestellt hat




Voraussetzungen:

- Android 2.0.1 / 2.1
- root
- busybox (im Anhang)
- ConnectBot oder ein anderer Terminal Emulator
- Dateimanager z.B. Root Explorer (gibts im Market zu kaufen) oder man macht alles im Terminal
- android VNC client
- Ubuntu GNU/Linux (eine VM geht genau so gut)
- ext2.ko (im Anhang)
- Scripts (im Anhang)




Chroot-Umgebung erstellen mit Ubuntu:




Zunächst werden debootstrap und qemu-arm-static benötigt. Qemu um die second-stage von debootstrap unter Ubuntu ausführen zu können.

Code:
$ sudo apt-get install qemu-arm-static debootstrap

Eine Imagedatei mit einem ext2 Dateisystem und ca. 3,3GB Größe erstellen, das sollte für einige Programme reichen:

Code:
$ sudo dd if=/dev/zero of=debian.img bs=1024 count=3500000
$ sudo mkfs.ext2 -F debian.img
$ sudo tune2fs -c0 debian.img

Ein Verzeichnis erstellen und das erstellte Image mounten:

Code:
$ mkdir debian
$ sudo mount -o loop debian.img debian/

Mit build-arm-chroot das Basissystem installieren und anschließend den Mountpoint für die SD-Karte erstellen:

Code:
$ sudo build-arm-chroot --verbose --arch=armel --foreign lenny debian http://ftp.de.debian.org/debian
$ sudo mkdir debian/sdcard

Jetzt kann man per chroot in das neu installierte System wechseln:

Code:
$ sudo mount -t proc none debian/proc/
$ sudo mount -t sysfs sysfs debian/sys/
$ sudo mount -t devpts devpts debian/dev/pts
$ sudo chroot debian/ /bin/bash
# export HOME=/root
# export LC_ALL=C

Um Pakete installieren zu können braucht APT noch eine Quelle:

Code:
# echo 'deb http://ftp.de.debian.org/debian lenny main contrib non-free' > /etc/apt/sources.list
# apt-get update
Nun kann man alle Pakete installieren, die man benötigt.


Die grafische Oberfläche (hier LXDE) und einen VNC-Server installieren:

Code:
# apt-get install lxde tightvncserver
Wenn alle gewünschten Programme installiert sind, kann man die chroot-Umgebung aufräumen und verlassen:

Code:
# apt-get clean
# killall /usr/bin/qemu-arm-static
# exit
$ sudo umount debian/proc
$ sudo umount debian/dev/pts
$ sudo umount debian/sys
$ sudo umount debian/



Das Milestone vorbereiten um das Debian-System nutzen zu können:




Zuerst auf der SD-Karte einen Ordner namens "debian" erstellen und die zuvor erzeugte Datei debian.img hineinkopieren.

Die debian.zip aus dem Anhang herunterladen, die Dateien nach /sdcard/debian/ entpacken.

Jetzt die Dateien auf dem Milestone in die richtigen Ordner kopieren und die Berechtigung setzen:

Code:
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock6 /system
# cp /sdcard/debian/busybox /system/bin/
# chmod 755 /system/bin/busybox
# cp /sdcard/debian/ext2.ko /system/lib/modules/
# chmod 644 /system/lib/modules/ext2.ko
# cp /sdcard/debian/startdeb /system/bin/
# chmod 755 /system/bin/startdeb
# cp /sdcard/debian/stopdeb /system/bin/    
# chmod 755 /system/bin/stopdeb
Achtung: Das stopdeb Script funktioniert nur, wenn alle Prozesse in der chroot-Umgebung beendet sind.


Folgende Ordner müssen noch als Mountpunkt ertellt werden:

Code:
# mkdir /data/local/debian
# mkdir /data/local/debian/mnt
In die chroot-Umgebung wechseln:

Code:
$ su 
# startdeb
Den Nameserver ändern:

Code:
# echo 'nameserver 4.2.2.2' > /etc/resolv.conf
Den Hostnamen anpassen:

Code:
# echo "localhost" > /etc/hostname
# echo "127.0.0.1 localhost.localdomain localhost" > /etc/hosts

LXDE und den VNC-Server fertig einrichten:

Code:
# export HOME=/root
# export USER=root
# vncserver -geometry 854x480
Hier das Passwort setzen, welches später verwendet wird, um sich am VNC-Server anzumelden.


Die Datei /root/.vnc/xstartup editieren, z.B. mit nano:

Code:
# nano -w /root/.vnc/xstartup
folgende Zeile auskommentieren:

Code:
#/etc/X11/Xsession
folgende Zeile hinzufügen:

Code:
lxsession

Nun ein Startscript für LXDE erstellen:

Code:
# nano -w /usr/sbin/lxde
Inhalt:

Code:
#!bin/bash
export USER=root
vncserver -geometry 854x480
Script ausführbar machen:

Code:
# chmod +x /usr/sbin/lxde
LXDE muss jedes mal manuell gestartet werden.
So vermeidet man, dass jedes mal wenn man z.B. unter LXDE eine Konsole öffnet, ein neuer VNC-Server (mit LXDE) gestartet wird.


Zusätzlich kann man ein Script erstellen, welches LXDE wieder beendet (tötet):


Code:
# nano -w /usr/sbin/klxde
Inhalt:

Code:
#!/bin/bash
killall Xtightvnc && killall lxsession

Script ausführbar machen und LXDE starten:

Code:
# chmod +x /usr/sbin/klxde
# lxde

Nun mit dem VNC Client eine Verbindung zu localhost Port 5901 herstellen mit dem zuvor gesetzten Passwort.
Wenn alles geklappt hat, sollte man nun die LXDE Oberfläche sehen.



Jetzt kann nach jedem Neustart des Steins mit "startdeb" die Debian chroot-Umgebung gemountet und "gestartet" werden.
Mit "lxde" kann dann der VNCServer inkl LXDE gestartet werden.





Für Anregungen und Verbesserungsvorschläge bin ich immer offen.

Viel Spaß beim Ausprobieren!
Angehängte Dateien
Dateityp: zip debian.zip (1,21 MB, 1149x aufgerufen)

Geändert von Fnordi (11.05.2010 um 10:59 Uhr)
Fnordi ist offline   Mit Zitat antworten
Folgende Benutzer bedanken sich bei Fnordi für diesen Beitrag:
7Voo (09.05.2010), frucht_gummi (12.08.2010), Hdr32 (09.05.2010), Lubomir (10.05.2010), parabolon (09.05.2010), punkrocker (20.06.2010), sandimann (17.05.2010)
Alt 09.05.2010, 20:58   #2 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 29.03.2010
Beiträge: 107
Abgegebene Danke: 32
Erhielt 24 Danke für 10 Beiträge
Standard AW: How-To: Debian (chroot) mit LXDE auf dem Milestone

Hatte Debian eben schon fast zum laufen bekommen.
Hat aber ewig gedauert, da die Anleitung unvollständig und für das G1 waren.

Deswegen bin ich grad dabei alles nochmal neu nach deiner Anleitung zu machen.
Die 2. Methode ist viel besser als die erste!

Habs gleich soweit und bin sicher das es klappen wird!
Vielen Dank, das du dir die Zeit genommen hast!
Der Thread sollte angepinnt werden. <3

Edit: Jetzt bin ich wieder bei der Package configuration von lxde, eben auf Windows wurde es Fehlerhaft angezeigt, deswegen diese ganze komischen Zeichen.
Bin jetzt aber auf Linux und kann da jetzt was auswählen:
  • Select keymap from arch list
  • Don't touch keymap
  • Keep kernel keymap
  • Select keymap from full list

Was soll ich auswählen ?

Geändert von 7Voo (09.05.2010 um 21:02 Uhr)
7Voo ist offline   Mit Zitat antworten
Alt 09.05.2010, 21:26   #3 (permalink)
Neuer Benutzer

Registriert seit: 09.05.2010
Beiträge: 11
Abgegebene Danke: 0
Erhielt 10 Danke für 4 Beiträge
Standard AW: How-To: Debian (chroot) mit LXDE auf dem Milestone

Im Zweifelsfall immer Return drücken, Standard eben
Fnordi ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei Fnordi für diesen Beitrag:
7Voo (09.05.2010)
Alt 09.05.2010, 21:28   #4 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 29.03.2010
Beiträge: 107
Abgegebene Danke: 32
Erhielt 24 Danke für 10 Beiträge
Standard AW: How-To: Debian (chroot) mit LXDE auf dem Milestone

Ok, hab einfach 'Select keymap from arch list' genommen.
Es geht voran!
7Voo ist offline   Mit Zitat antworten
Alt 09.05.2010, 21:30   #5 (permalink)
Android-Hilfe.de Mitglied
 
Benutzerbild von N!CE

Modell: Motorola Milestone

Registriert seit: 25.03.2010
Beiträge: 108
Abgegebene Danke: 36
Erhielt 42 Danke für 16 Beiträge
N!CE eine Nachricht über ICQ schicken N!CE eine Nachricht über Skype™ schicken
Standard AW: How-To: Debian (chroot) mit LXDE auf dem Milestone

Wie wärs wenn du das ganze noch als Script machst ?
N!CE ist offline   Mit Zitat antworten
Alt 09.05.2010, 21:33   #6 (permalink)
Neuer Benutzer

Registriert seit: 09.05.2010
Beiträge: 11
Abgegebene Danke: 0
Erhielt 10 Danke für 4 Beiträge
Standard AW: How-To: Debian (chroot) mit LXDE auf dem Milestone

Könnte ich mal in Anfriff nehmen, aber heute wird das wohl nix mehr
Fnordi ist offline   Mit Zitat antworten
Alt 09.05.2010, 22:13   #7 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 29.03.2010
Beiträge: 107
Abgegebene Danke: 32
Erhielt 24 Danke für 10 Beiträge
Standard AW: How-To: Debian (chroot) mit LXDE auf dem Milestone

Scheint irgendwas falsch zu sein in deinem startdeb script.
Bekomme immer das hier:

Code:
# startdeb
insmod: init_module '/system/lib/modules/ext2.ko' failed (File exists)
ioctl LOOP_SET_FD failed: Device or resource busy
mount: mounting /sdcard on /data/local/debian/mnt/sdcard failed: No such file or directory
mount: mounting none on /data/local/debian/mnt/proc failed: No such file or directory
mount: mounting sysfs on /data/local/debian/mnt/sys failed: No such file or directory
mount: mounting devpts on /data/local/debian/mnt/dev/pts failed: No such file or directory
chroot: cannot execute /bin/bash: No such file or directory
>.>

Edit: Muss man busybox nicht erst installieren und den Pfad exportieren ?

Geändert von 7Voo (09.05.2010 um 22:18 Uhr)
7Voo ist offline   Mit Zitat antworten
Alt 09.05.2010, 22:24   #8 (permalink)
Neuer Benutzer

Registriert seit: 09.05.2010
Beiträge: 11
Abgegebene Danke: 0
Erhielt 10 Danke für 4 Beiträge
Standard AW: How-To: Debian (chroot) mit LXDE auf dem Milestone

Zitat:
ioctl LOOP_SET_FD failed: Device or resource busy

Ich glaube da stimmt was nich mit deinem loop-Device, du hattest das vorhin selbst angelegt für eine andere Anleitung, richtig?

Was gibt denn folgendes aus:

Code:
busybox losetup -f
?

Geändert von Fnordi (09.05.2010 um 22:34 Uhr)
Fnordi ist offline   Mit Zitat antworten
Alt 09.05.2010, 22:38   #9 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 29.03.2010
Beiträge: 107
Abgegebene Danke: 32
Erhielt 24 Danke für 10 Beiträge
Standard AW: How-To: Debian (chroot) mit LXDE auf dem Milestone

loop0 existiert nicht mal mehr in /dev/.

Aber trotzdem kriegt startdeb es nicht hin eine zu erstellen.

Edit:

Code:
# busybox losetup -f
/dev/loop1
7Voo ist offline   Mit Zitat antworten
Alt 09.05.2010, 22:50   #10 (permalink)
Neuer Benutzer

Registriert seit: 09.05.2010
Beiträge: 11
Abgegebene Danke: 0
Erhielt 10 Danke für 4 Beiträge
Standard AW: How-To: Debian (chroot) mit LXDE auf dem Milestone

Sieht aus, als sei loop0 belegt.

Kannst du das mit
Code:
busybox losetup -d /dev/loop0
befreien?
Fnordi ist offline   Mit Zitat antworten
Antwort

Stichworte
chroot, debian, milestone

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Debian auf Milestone morgon Root / Hacking / Modding für Motorola Milestone 49 09.05.2010 20:35
Sammlung zur Anleitung der Installation und Nutzung von Debian auf dem G1 S4L3Mbufu T-Mobile G1 Forum 0 10.03.2010 19:20
Debian auf dem Galaxy sven-ola Root / Hacking / Modding für Samsung Galaxy 14 03.03.2010 15:51
Mehrere Kalender mit Exchange auf dem Milestone? denzman Motorola Milestone Forum 4 08.02.2010 21:47
Mp4 Audio auf dem Milestone mit Tags? The_real_Otto Motorola Milestone Forum 7 06.01.2010 10:43




Du liest gerade: "[How-To] Debian (chroot) mit LXDE auf dem Milestone" unter "Anleitungen für Motorola Milestone" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.