<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=77.188.53.96</id>
	<title>FreitagsrundenWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=77.188.53.96"/>
	<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//Spezial:Beitr%C3%A4ge/77.188.53.96"/>
	<updated>2026-10-31T10:36:16Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.6</generator>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=ARM_und_Qemu&amp;diff=11408</id>
		<title>ARM und Qemu</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=ARM_und_Qemu&amp;diff=11408"/>
		<updated>2008-11-19T19:18:02Z</updated>

		<summary type="html">&lt;p&gt;77.188.53.96: add 32bit link, formatierung..&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im folgenden findet ihr eine kurze Anleitung wie man die 2. TechGI 3 Hausaufgabe (ARM Assembler) mit Hilfe von Qemu testen kann.&lt;br /&gt;
Vorraussetzung ist ein Linux System (32 oder 64bit) und ein bisschen Erfahrung auf der Kommandozeile :)&lt;br /&gt;
&lt;br /&gt;
==1. Qemu installieren:==&lt;br /&gt;
Für diejenigen die ein 64bit Linux benutzen habe ich ein fertig kompiliertes Paket bereitgestellt, welches die benötigten Patches enthält.&lt;br /&gt;
Ihr findet es unter http://www.freitagsrunde.org/~aeichner/qemu-0.9.1-kbs.tar.bz2.&lt;br /&gt;
Für diejenigen die ein 32bit Linux benutzen hat tkroenert ein fertig kompiliertes Paket bereitgestellt, welches die benötigten Patches enthält.&lt;br /&gt;
Ihr findet es unter http://www.freitagsrunde.org/~tkroenert/qemu-0.9.1-kbs.tar.bz2.&lt;br /&gt;
Einfach als root mit Hilfe von &amp;lt;pre&amp;gt;tar -xf qemu-0.9.1-arm.tar.gz&amp;lt;/pre&amp;gt; auspacken (vorher mit cd ins Root &lt;br /&gt;
Verzeichnis / wechseln). Für alle anderen mit 32bit Linux gibt es unter Isis eine Anleitung, wie man qemu mit den Patches kompiliert.&lt;br /&gt;
Wenn jemand qemu selbst kompilieren will:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://bellard.org/qemu/qemu-0.9.1.tar.gz&lt;br /&gt;
scp cs:/home/komm/lehre/qemu-0.9.1-kbspatch-data/qemu-0.9.1-kbs.patch&lt;br /&gt;
aptitude install libsdl-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Den Rest solltet ihr wissen. Ist hier auch nicht der richtige Ort zum dafuer erklaeren.&lt;br /&gt;
&lt;br /&gt;
==2. U-Boot:==&lt;br /&gt;
Damit ihr die Programme in Qemu ausführen könnt benötigt ihr einen Bootloader. Wie auf den echten Portux Systemen kommt hier U-Boot zum Einsatz.&lt;br /&gt;
Weil das kompilieren nicht gerade einfach ist könnt ihr ein fertiges Image unter &lt;br /&gt;
http://www.freitagsrunde.org/~aeichner/u-boot.bin runterladen.&lt;br /&gt;
&lt;br /&gt;
==3. ARM toolchain:==&lt;br /&gt;
Um die Testprogramme zu kompilieren wird ein Crosscompiler benötigt der Maschinencode für den ARM erzeugt. Ein funtkionierendes Paket findet ihr &lt;br /&gt;
unter http://www.mikrocontroller.net/download/arm-toolchain-linux-2.tar.bz2&lt;br /&gt;
Einfach irgendwo mit tar -xf arm-toolchain-linux.tar.bz2 entpacken und den Pfad mit&lt;br /&gt;
&amp;lt;pre&amp;gt;export PATH=$PATH:&amp;lt;Pfad zu Arm Toolchain&amp;gt;/arm/bin&amp;lt;/pre&amp;gt; hinzufügen damit der Compiler gefunden werden kann.&lt;br /&gt;
Allerdings funktioniert ; für Kommentare nicht, sondern es muss @ verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==4. Vorlagen:==&lt;br /&gt;
Die Vorlage von Isis funktioniert nicht um funktionierende Images für QEMU/U-Boot zu erstellen (Um genau zu sein müssen die Makefiles verändert &lt;br /&gt;
werden). Die angepassten Vorlagen können unter http://www.freitagsrunde.org/~aeichner/Blatt2Vorgabe_qemu.zip runterladen.&lt;br /&gt;
In der ZIP-Datei gibt es zwei neue Dateien. Im Unterordner a und b gibt es ein neues Makefile namens Makefile.qemu.&lt;br /&gt;
Wenn ihr die Testprogramme für QEMU kompilieren wollt müsst ihr in dem Ordner &amp;quot;make -f Makefile.qemu&amp;quot; ausführen.&lt;br /&gt;
Die Datei Makefile ist das Original von ISIS, damit ihr die Programme auch für das reale System kompilieren könnt (eine Garantie dafür, dass es auch &lt;br /&gt;
wirklich funktioniert gibt es nicht ;))&lt;br /&gt;
&lt;br /&gt;
==5. Qemu starten:==&lt;br /&gt;
Das ist der letzte Schritt und wenn ihr alles richtig gemacht habt könnt ihr anschliessend eure Programme testen.&lt;br /&gt;
Qemu startet ihr mit dem folgenden Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;/usr/local/bin/qemu-system-arm -kernel &amp;lt;Pfad zu u-boot Image&amp;gt;/u-boot.bin -m 32 -serial stdio -nographic -M versatiletub -net user,vlan=0 -net &lt;br /&gt;
nic,vlan=0,model=smc91c111 -tftp &amp;lt;Pfad zu euren Testprogrammen&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr könnt den Aufruf auch in ein Shellscript packen, damit ihr das nicht jedesmal schreiben müsst.&lt;br /&gt;
Wenn alles funktioniert hat erwartet euch die &amp;quot;Shell&amp;quot; von U-Boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
initializing tublcd...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2008.10-00227-g1378174-dirty (Nov 13 2008 - 13:21:48)&lt;br /&gt;
&lt;br /&gt;
DRAM:   0 kB&lt;br /&gt;
Flash:  0 kB&lt;br /&gt;
*** Warning - bad CRC, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Versatile # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt ladet ihr euer Image per DHCP/TFTP mit Hilfe von:&lt;br /&gt;
&amp;lt;pre&amp;gt;dhcp 4000 /&amp;lt;Dateiname&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dateinname steht für das ELF-Image welches beim kompilieren erzeugt wurde (techgi3b2a).&lt;br /&gt;
Beim kompilieren entstehen noch zwei weitere Dateien namens techgi3b2a.bin und techgi3b2aBoot.&lt;br /&gt;
Diese funktionieren nicht.&lt;br /&gt;
Das laden dauert eine Weile (bei mir ungefähr 30sec).&lt;br /&gt;
Als letztes startet ihr euer Programm mit:&lt;br /&gt;
&amp;lt;pre&amp;gt;bootelf 4000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TADA!! (oder auch nicht, wenn euer Programm einen Bug hat ;))&lt;/div&gt;</summary>
		<author><name>77.188.53.96</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=ARM_und_Qemu&amp;diff=11407</id>
		<title>ARM und Qemu</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=ARM_und_Qemu&amp;diff=11407"/>
		<updated>2008-11-19T18:28:43Z</updated>

		<summary type="html">&lt;p&gt;77.188.53.96: add some links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im folgenden findet ihr eine kurze Anleitung wie man die 2. TechGI 3 Hausaufgabe (ARM Assembler) mit Hilfe von Qemu testen kann.&lt;br /&gt;
Vorraussetzung ist ein Linux System (32 oder 64bit) und ein bisschen Erfahrung auf der Kommandozeile :)&lt;br /&gt;
&lt;br /&gt;
1. Qemu installieren:&lt;br /&gt;
Für diejenigen die ein 64bit Linux benutzen habe ich ein fertig kompiliertes Paket bereitgestellt, welches die benötigten Patches enthält.&lt;br /&gt;
Ihr findet es unter http://www.freitagsrunde.org/~aeichner/qemu-0.9.1-kbs.tar.bz2. &lt;br /&gt;
Einfach als root mit Hilfe von &amp;lt;pre&amp;gt;tar -xf qemu-0.9.1-arm.tar.gz&amp;lt;/pre&amp;gt; auspacken (vorher mit cd ins Root &lt;br /&gt;
Verzeichnis / wechseln). Für alle anderen mit 32bit Linux gibt es unter Isis eine Anleitung, wie man qemu mit den Patches kompiliert.&lt;br /&gt;
Wenn jemand ein 32bit qemu kompiliert (wget http://bellard.org/qemu/qemu-0.9.1.tar.gz;scp cs:/home/komm/lehre/qemu-0.9.1-kbspatch-data/qemu-0.9.1-kbs.patch|patch ./ ) hat kann er den Link ja in dem Wiki hinzufügen.&lt;br /&gt;
&lt;br /&gt;
2. U-Boot:&lt;br /&gt;
Damit ihr die Programme in Qemu ausführen könnt benötigt ihr einen Bootloader. Wie auf den echten Portux Systemen kommt hier U-Boot zum Einsatz.&lt;br /&gt;
Weil das kompilieren nicht gerade einfach ist könnt ihr ein fertiges Image unter &lt;br /&gt;
http://www.freitagsrunde.org/~aeichner/u-boot.bin runterladen.&lt;br /&gt;
&lt;br /&gt;
3. ARM toolchain:&lt;br /&gt;
Um die Testprogramme zu kompilieren wird ein Crosscompiler benötigt der Maschinencode für den ARM erzeugt. Ein funtkionierendes Paket findet ihr &lt;br /&gt;
unter http://www.mikrocontroller.net/download/arm-toolchain-linux-2.tar.bz2&lt;br /&gt;
Einfach irgendwo mit tar -xf arm-toolchain-linux.tar.bz2 entpacken und den Pfad mit&lt;br /&gt;
&amp;lt;pre&amp;gt;export PATH=$PATH:&amp;lt;Pfad zu Arm Toolchain&amp;gt;/arm/bin&amp;lt;/pre&amp;gt; hinzufügen damit der Compiler gefunden werden kann.&lt;br /&gt;
Allerdings funktioniert ; für Kommentare nicht, sondern es muss @ verwendet werden.&lt;br /&gt;
&lt;br /&gt;
4. Vorlagen:&lt;br /&gt;
Die Vorlage von Isis funktioniert nicht um funktionierende Images für QEMU/U-Boot zu erstellen (Um genau zu sein müssen die Makefiles verändert &lt;br /&gt;
werden). Die angepassten Vorlagen können unter http://www.freitagsrunde.org/~aeichner/Blatt2Vorgabe_qemu.zip runterladen.&lt;br /&gt;
In der ZIP-Datei gibt es zwei neue Dateien. Im Unterordner a und b gibt es ein neues Makefile namens Makefile.qemu.&lt;br /&gt;
Wenn ihr die Testprogramme für QEMU kompilieren wollt müsst ihr in dem Ordner &amp;quot;make -f Makefile.qemu&amp;quot; ausführen.&lt;br /&gt;
Die Datei Makefile ist das Original von ISIS, damit ihr die Programme auch für das reale System kompilieren könnt (eine Garantie dafür, dass es auch &lt;br /&gt;
wirklich funktioniert gibt es nicht ;))&lt;br /&gt;
&lt;br /&gt;
5. Qemu starten:&lt;br /&gt;
Das ist der letzte Schritt und wenn ihr alles richtig gemacht habt könnt ihr anschliessend eure Programme testen.&lt;br /&gt;
Qemu startet ihr mit dem folgenden Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;/usr/local/bin/qemu-system-arm -kernel &amp;lt;Pfad zu u-boot Image&amp;gt;/u-boot.bin -m 32 -serial stdio -nographic -M versatiletub -net user,vlan=0 -net &lt;br /&gt;
nic,vlan=0,model=smc91c111 -tftp &amp;lt;Pfad zu euren Testprogrammen&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ihr könnt den Aufruf auch in ein Shellscript packen, damit ihr das nicht jedesmal schreiben müsst.&lt;br /&gt;
Wenn alles funktioniert hat erwartet euch die &amp;quot;Shell&amp;quot; von U-Boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
initializing tublcd...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2008.10-00227-g1378174-dirty (Nov 13 2008 - 13:21:48)&lt;br /&gt;
&lt;br /&gt;
DRAM:   0 kB&lt;br /&gt;
Flash:  0 kB&lt;br /&gt;
*** Warning - bad CRC, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Versatile # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt ladet ihr euer Image per DHCP/TFTP mit Hilfe von:&lt;br /&gt;
&amp;lt;pre&amp;gt;dhcp 4000 /&amp;lt;Dateiname&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dateinname steht für das ELF-Image welches beim kompilieren erzeugt wurde (techgi3b2a).&lt;br /&gt;
Beim kompilieren entstehen noch zwei weitere Dateien namens techgi3b2a.bin und techgi3b2aBoot.&lt;br /&gt;
Diese funktionieren nicht.&lt;br /&gt;
Das laden dauert eine Weile (bei mir ungefähr 30sec).&lt;br /&gt;
Als letztes startet ihr euer Programm mit:&lt;br /&gt;
&amp;lt;pre&amp;gt;bootelf 4000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TADA!! (oder auch nicht, wenn euer Programm einen Bug hat ;))&lt;/div&gt;</summary>
		<author><name>77.188.53.96</name></author>
	</entry>
</feed>