Entwicklung

Aus RMM-Wiki
Wechseln zu: Navigation, Suche

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://download.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