HowTo zum SDK - oder: Ich bastel mir eine Pandora-Umgebung


salacryl

Still Fresh
Joined
Sep 27, 2007
Messages
8
hi,

um kurz mal die Antworten entgegen zu wirken dir mir nicht helfen werden, folgende Infos vorweg.

Wunsch:
Da ich keine Pandora besitze und ich dennoch gern was an ihr programmieren möchte, dachte ich mir: "Ich bastel mir eine virtuelle Pandora!". Ja ich weiß, zum entwickeln würde ich nur einen cross-compiler benötigen (wenn ich denn binaries brauche) + nur den mit entsprechenden Bildschirm-maßen.
ja mei, des is scho richtig. Nu, wenn schon, dann ganz. Außerdem bekomme ich dadurch ein besseres Gefühl für die Pandora.

Also, den Kernel habe ich mit gcc für arm kompiliert (make omap3_pandora_defconfig). Allerdings sehe ich mit qemu-system-arm nichts - kein Output .. nichts, weder mit Screen noch mit -nographic. Andere ARM-System gehen einwandfrei. Ich dachte erst, es liegt daran, dass man den Pandora her nicht mit Text-to-VGA kompilieren kann (wg. -logischerweise - fehlender PCI-Unterstützung).

QEMU stürzt nicht ab. Was ich sehen will ist die Kernel-Panic (die kommen MUSS, da ich root nicht angegeben habe). Allerdings vermute ich, die Ausgabe wird umgeleitet. habt ihr eine Idee?
Angström wartet als image schon.

AM ARM kann es nicht liegen, da es ein Cortex A8 ist (laut Spezifikationen) und den kann QEMU.

Gruß,
Björn
 
Re: Pandora-Kernel in Qemu

<r>qemu unterstützt (noch) kein omap3 <E>;)</E><br/>
<URL url="http://code.google.com/p/qemu-omap3/">http://code.google.com/p/qemu-omap3/</URL> <-- vllt haste damit mehr glück</r>
 
Re: Pandora-Kernel in Qemu

<t>hi,<br/>
<br/>
danke dir. Ich kann das Ding auch kompilieren. Nur allein das Script zum Basteln des NAND image hat schon ein weg. Starten tut der den Omap-Kernel auch nicht.<br/>
<br/>
Ich wäre sehr dankbar wenn jemand noch den zImage-2.6.25+2.6.26-rc4-r5-qemuarm.bin oder mir sagen kann wie ich den bekomme. Narcissus von Angström hat derzeit auch keine Lust mir einen Kernel zu liefern.<br/>
<br/>
Danke euch,<br/>
Gruß,<br/>
Björn</t>
 
Re: Pandora-Kernel in Qemu

<t>Hi,<br/>
danke dir!<br/>
<br/>
Allerdings habe ich JETZT erst begriffen was bitbake ist und das man damit die Images für Pandora bauen kann. Mit ein paar Anpassungen auch für Qemuarm.<br/>
Bitbake pandora-xfce-image hat ja ein paar Buildsteps. Ich werde garantiert auf ein paar Build-Errors stoßen. Ich werde das ganze vorgehen hier mal dokumentieren. Mein Vorgehen, Fehler auf die ich stieß und eventuell deren Beseitigung. <br/>
<br/>
Wäre schön, wenn wir das gemeinsam täten, dann kann ich im Anschluss mal ein Update der Developer-Seite im Wiki vornehmen.<br/>
<br/>
Gruß,<br/>
Björn</t>
 
Re: Pandora-Kernel in Qemu

<r>Kurze Erklärung zum SDK. Zumindest soweit ICH das verstanden habe. Korrigiert mich bitte.<br/>
Das Betriebssystem der Pandora basiert auf <URL url="http://www.angstrom-distribution.org/"><s></s>Angström<e></e></URL>, welches wiederum auf <URL url="http://wiki.openembedded.net/index.php/Main_Page"><s></s>OpenEmbedded<e></e></URL> basiert, dass ein Linux speziell für embedded Systems (also meistens für kleingeräte mit ARM-Prozessoren und NAND-Speicher) ausgelegt ist.<br/>
<br/>
OpenEmbedded nutzt zum Bauen seiner Umgebung (Kernel, Programme, Image, etc.) bitbake. Welches ein Derivat von Portage ist, was wiederum das Paket-Management für Gentoo erledigt. Bitbake macht eigentlich nichts anderes als definierte Arbeitsanweisungen (die sog. Recipes) zu interpretieren. Dabei geht es sehr intelligent zu Werke. Es lädt die sourcen herunter (oft werden auch mehrere Mirrors definiert, damit man die Sourcen auch tatsächlich bekommt), baut diese und fügt dann je nach Rezeptur das Image - inklusive Bootloader etc. - zusammen.<br/>
<br/>
Die Maintainer des Pandora-Betriebssystems gehen hierbei sehr gewissenhaft vor. Unter git.openpandora.org befinden sich mehrere Depots (Repositories) von Sourcecodes:<br/>
<br/>
- openembedded.git: Quasi ein clone der Arbeitsanweisungen um OpenEmbedded (und Angström selbst) zu bauen. Dies braucht man quasi als Basis.<br/>
- openpandora.oe.git: baut auf oben genanntem Depot auf und sorgt dafür, dass in Angström die für die Pandora notwendigen geänderten Arbeitsschritte erfolgen, bzw. definiert sind (hier befinden sich quasi die extra Rezepte für das Pandora-Betriebssystem).<br/>
-pandora-oe-environment.git: hier befindet sich eine Umgebung, die alles schon vorbereitet hat, damit bitbake weiß, für wem der Kuchen (quasi das Ergebnis der Rezeptur) überhaupt ist. Die Pandora hat einen Cortex-A8-Prozessur den sog. OMAP3. Damit nichts schief geht ist im dem Depot alles konfiguriert.<br/>
<br/>
Die restlichen Depots erklären sich eigentlich von selbst und benutze ich auch nicht, da mein Ziel-Prozessor der emulierte ARM von Qemu ist und ich z. B. den Pandora-Kernel gar nicht benötige, eben die WiFi-Depot-Files nicht.<br/>
<br/>
o nun zu den einzelnen Schritten. Ich gehe hier von Debian/GNU Linux in der Version Lenny aus (i386 um genau zu sein).<br/>
<br/>
<B><s></s>1.) Installieren der benötigen Programme zum Build-Prozess<e></e></B>
<CODE><s>
Code:
</s>apt-get install qemu qemu-kvm-extras kvm bitbake build-essential bitbake dpkg-cross gcc-arm-linux binutils-arm-linux git-core<e>
</e></CODE>
<CODE><s>
Code:
</s>dpkg-cross --arch arm --install libc6_2.3.1-9_arm.deb libc6-dev_2.3.1-9_arm.deb<e>
</e></CODE>

<B><s></s>2.) Klonen der GIT-Depots und vorbereiten von Bitbake<e></e></B><br/>
Ich gehe hier in das Benutzerverzeichnis und mach mir da ein eigenes Verzeichnis.
<CODE><s>
Code:
</s>cd ~
mkdir pandora && cd pandora
git clone git://git.openpandora.org/openembedded.git
git clone git://git.openpandora.org/openpandora.oe.git
git clone git://git.openpandora.org/pandora-oe-environment.git
export BBPATH="/home/<euer benutzer>/pandora/openembedded/:/home/<euer benutzer>/pandora/openpandora.oe/:/home/<euer benutzer>/pandora/pandora-oe-environment/
<e>
</e></CODE>
Die Zeile mit BBPATH könnt ihr auch in die ~/.bashrc schreiben und es nicht nach jedem login machen zu machen.<br/>
<br/>
Dann quasi nur noch
<CODE><s>
Code:
</s>bitbake pandora-xcfe-image<e>
</e></CODE>
eingeben und bitbake sollte bei bestehender Internetverbindung auch sofort loslegen. Das ganze dauert eine ziemlich Weile. Allein das prüfen von den Rezept-Abhängigkeiten dauert auf meinem Netbook eine gute Stunde.<br/>
<br/>
(Post wird fortgesetzt.)<br/>
<br/>
<B><s></s>Build-Errors<e></e></B><br/>
Expat wird von bitbake nicht entpackt:<br/>
- invalid uncompressed Data -- crc-Fehler<br/>
<br/>
Fehler ist upstream bekannt; Bug ist noch offen.<br/>
Vermutung: X64-Packer benutzt, der inkompatibel zu dem von i386 ist. <br/>
Lösung: auf Win7 x64 mit 7-Zip entpackt. Verzeichnis zurückkopiert mit
<CODE><s>
Code:
</s>tar cvzf sources/expat-2.0.1.tar.gz expat-2.0.1/<e>
</e></CODE>
neu gepackt und neue MD5-Summe berechnet mit
<CODE><s>
Code:
</s>md5sum sources/expat-2.0.1.tar.gz > sources/expat-2.0.1.tar.gz.md5<e>
</e></CODE>
damit Bitbake nicht denkt wir wollen ihm Mist unterjubeln.</r>
 
Re: HowTo zum SDK - oder: Ich bastel mir eine Pandora-Umgebu

<t>Debain Lenny hat 7z als p7zip oder p7zip-full verfügbar. Wird dieser per default von bitbake benutzt?</t>
 
Re: HowTo zum SDK - oder: Ich bastel mir eine Pandora-Umgebu

<t>hi,<br/>
<br/>
da es sich um gewöhnliche tar.gz Archive handelt, wird schlicht tar benutzt mit einer Pipe durch Gunzip. Um deine Frage zu beantworten, nein ich denke nicht per default. Vermutlich ginge es, wenn für Lenny p7zip das default für tar.gz ist. Nur hier bin ich skeptisch, da bitbake die Standard-Parameter von tar benutzt.<br/>
<br/>
Gruß,<br/>
Björn.</t>
 
Back
Top