Entwicklung
Aus RMM-Wiki
Inhaltsverzeichnis |
ReelBox Avantgarde
Einführung
Software für die Avantgarde kann direkt auf dieser entwickelt werden.
Dafür muss man sich zunächst die passenden Entwicklerpakete installieren. Hierfür gibt es ein einzelnen Meta-Paket:
aptitude install reelbox-devel
svn herunterladen
öffentlicher Zugang (keine Schreibberechtigung):
svn co svn://reelbox.org testing
(der stable-Zeig ist analog verfügbar)
Zugang mit schreibberechtigung: (nur Entwickler von Reel) svn co svn+ssh://reelbox.org/home/reelbox/testing
Optionale Software entwickeln (z.B. Plugins)
Hierfür gibt es ein halböffentliches svn. Wenn du Pakete für die Avantgarde zur Verfügung stellen möchstest, melde dich bitte über die Mailingliste an die Entwickler von Reel und frage nach einem Schreibzugang für das opt-svn
ToDos
- Anleitung für opt-svn schreiben...
ReelBox Lite
Einführung
Die Betriebssoftware für die ReelBox Lite ist ein "homebrew" Linux basierend auf Pakete von Ubuntu 7.04 und busybox. Kernel: 2.6.11.11
chroot Umgebung
Da es inzwischen schwierig ist, ein Ubuntu 7.04 zu bekommen und zu benutzen und aktuellere Versionen nicht unterstützt werden, ist praktisch die einzig sinnvolle Möglichkeit zur Softwareentwicklung die chroot zu benutzen.
die chroot für die RB Lite) gibt es hier: http://www.reelbox.org/software/rubuntu/chroot-ubuntu704-reel1.tar.gz (ca. 77MB)
auspacken in ein vorhandenes Verzeichnis z.B. myroot
tar xvfz chroot-ubuntu704-reel1.tar.gz -C myroot
Wir benötigen tmp, dev und proc aus dem Hostsystem. Dazu müssen folgende Einträge an die /etc/fstab des Hostsystems angefügt werden.
Achtung. Es ist darauf zu achten, das am Ende der Datei eine Leerzeile ist.
/tmp /myroot/tmp none bind 0 0 /dev /myroot/dev none bind 0 0 /proc /myroot/proc proc defaults 0 0
TIP! Aktualisieren der Mountpoints, das spart den Neustart, mit "mount -a"
Weiterhin benötigen wir noch einige Dateien in der chroot Umgebung.
cp /etc/hosts /myroot/etc/ cp /etc/resolv.conf /myroot/etc/ cp -r /usr/lib/locale/* /myroot/usr/lib/locale/
Paketquellen für veraltete Ubuntu Versionen
echo "deb http://old-releases.ubuntu.com/ubuntu feisty universe multiverse" > /myroot/etc/apt/sources.list echo "deb http://old-releases.ubuntu.com/ubuntu feisty main" >> /myroot/etc/apt/sources.list
Mit folgendem Befehl wechseln wir nun in die chroot.
linux32 chroot myroot
als erstes sollte man mit
aptitude update && aptitude upgrade aptitude install wget
die software in der chroot aktualisieren.
ab hier ist es unabhängig, ob man in der chroot oder direkt auf einer Installation arbeitet.
reelbox.org als paketserver eintragen:
echo "deb http://reelbox.org/software/rubuntu 710 testing testing-opt all" | sudo tee -a /etc/apt/sources.list.d/reel.list
Signaturschlüssel holen und dem apt bekannt machen:
wget -q http://www.reelbox.org/reel-public-key.gpg -O- | sudo apt-key add -
Liste neu holen:
sudo apt-get update
nun kann man sich das/die Entwicklerpaket installieren. Diese sind:
reelbox-devel (für die AVG) reelbox-devel-lite (für die Lite) reelbox-devel-hd (für die eHD)
damit sollten dann alle Abhängigkeiten erfüllt sein und man kann loslegen mit "svn co" und kompilieren.
SVN für die Reelbox Lite auschecken und ein ISO Image bauen:
svn co svn://reelbox.org/downloads svn co svn://reelbox.org/precompiled svn co svn://reelbox.org/lite cd lite ./makeall.sh
Falls es jemand mit ubuntu 7.04 nativ probieren will: Ubuntu 7.04 gibt es hier: http://old-releases.ubuntu.com/releases/7.04/
Reel NetClient
Einführung
Die Betriebssoftware des NetClient basiert auf Debian 5.0 für ARM(el).
Da der NetClient zu langsam zum entwickeln ist, compiliert man die Programme hierfür auf einem anderen System, Host genannt. Meist wird dies ein x86-kompatibles System sein, meist die Reelbox Avantgarde.
Zielsystem: armel, nicht arm, oft auch "eabi" genannt.
chroot oder nicht chroot
Um nun Programme für ein anderes Zielsystem übersetzen zu können, braucht man einen sog. Cross-Compiler. Dieser wird über den Reel-Multimedia Paketserver zur Verfügung gestellt bzw. ist in der chroot-Umgebung bereits enthalten.
Neu: Entwickelt man auf der ReelBox Avantgarde bzw. mit Ubuntu 10.04, so ist seit neustem (21.02.11) keine chroot-Umgebung mehr erforderlich. Da alle Pakete zum cross-compilieren über den RMM Server bereitgestellt werden, konnten wir die Abhängigkeiten zu Debian/Emdebian eliminieren. Man muss also hierfür nur die nötigen Compiler und Header-Files installieren. Dies geschieht am einfachsten über das Meta-Paket "reelbox-devel-mini"
aptitude install reelbox-devel-mini
Prinzipiell müsste dies auch mit anderen Basissystemen funktionieren (z.B. Ubuntu 8.04), wurde aber von uns nicht getestet.
Entwickelt man also auf einer anderen Platform, so benötigt man meist eine sog. chroot-Umgebung. Die chroot mit allen nötigen Compilern und Cross-development-Paketen findet man hier: http://downloads.reelbox.org/software/ReelBox/mini/debian-lenny-20090618.tar.gz
Hat man die chroot ausgepackt, so wechselt man mit
sudo chroot debian-lenny
in die neue chroot Umgebung.
Hierin sollte man zunächst ein Softwareupdate durchführen um die Abhängigkeiten zu aktualisieren.
aptitude update && aptitude dist-upgrade
Danach kann man sich dann den svn-Zweig holen wie im ersten Abschnitt beschrieben.
Compiler Schalter
Compiler-Schalter, die Reel Multimedia verwendet:
CROSS = arm-linux-gnueabi-
MACHINE = -mcpu=arm1176jz-s
HOST = arm9
ARCH = armv6
CC = $(CCACHE) $(DISTCC) $(CROSS)gcc
CFLAGS = -O2 -g -pg $(MACHINE)
CXX = $(CCACHE) $(DISTCC) $(CROSS)g++
CXXFLAGS = -g -O2 -funroll-loops -fomit-frame-pointer $(MACHINE) -Wall -Woverloaded-virtual
ToDos
- chroot aktualisieren + aufräumen