F
Fnordi
Neues Mitglied
- 10
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.
Eine Imagedatei mit einem ext2 Dateisystem und ca. 3,3GB Größe erstellen, das sollte für einige Programme reichen:
Ein Verzeichnis erstellen und das erstellte Image mounten:
Mit build-arm-chroot das Basissystem installieren und anschließend den Mountpoint für die SD-Karte erstellen:
Jetzt kann man per chroot in das neu installierte System wechseln:
Um Pakete installieren zu können braucht APT noch eine Quelle:
Nun kann man alle Pakete installieren, die man benötigt.
Die grafische Oberfläche (hier LXDE) und einen VNC-Server installieren:
Wenn alle gewünschten Programme installiert sind, kann man die chroot-Umgebung aufräumen und verlassen:
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:
Achtung: Das stopdeb Script funktioniert nur, wenn alle Prozesse in der chroot-Umgebung beendet sind.
Folgende Ordner müssen noch als Mountpunkt ertellt werden:
In die chroot-Umgebung wechseln:
Den Nameserver ändern:
Den Hostnamen anpassen:
LXDE und den VNC-Server fertig einrichten:
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:
folgende Zeile auskommentieren:
folgende Zeile hinzufügen:
Nun ein Startscript für LXDE erstellen:
Inhalt:
Script ausführbar machen:
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):
Inhalt:
Script ausführbar machen und LXDE starten:
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!
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!
Anhänge
Zuletzt bearbeitet: