mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik mit qemu Arm (Mini2440) emulieren


Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

versuche grade unter XP mit qemu eine Emulation vom Mini2440 mit arm 
Prozessor hin zu bekommen.
Gibst da irgentwo ne detalierte anleitung wie man das hin bekommt ? Habe 
eine für X86 gefunden
(http://qemu-forum.ipi.fi/viewtopic.phpf=22&t=5308&...) und 
versucht die für einen arm anzuwenden klappt aber nicht.

Gruß Dizzy

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist wohl auch kein Wunder: qemu ist eine virtuelle Maschine, kein 
Prozessorsimulator und kann deswegen nur Code für den Host-Prozessor 
ausführen.

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe grade das hier gefunden http://repo.or.cz/w/linux-2.6/mini2440.git.
Habe mich vileicht grader falsch ausgedrückt auf jeden fall will ich ein 
Betriebssystem in diese umgebung emulieren.

Autor: O. Hagendorf (ohagendorf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
QEMU ist beides, sowohl Prozessorsimulator als auch Virtualisierer, 
siehe http://wiki.qemu.org/Main_Page

Genau dort steht auch gleich im zweiten Satz, dass ein ARM Prozessor auf 
einem PC mit QEMU simuliert werden kann. Es sollte also rein prinzipiell 
funktionieren.

Autor: Andreas Watterott (andreasw) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://trac.mixam.info/mini2440/wiki/Qemu

Es gibt, glaube ich, noch eine Seite zum Mini2440+Qemu, schau mal in den 
Links hier: http://code.google.com/p/friendlyarm/wiki/Links

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja genau so etwas habe ich gesucht! Danke !

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
komme nicht weiter und dass schon viel zu Lange.

wenn ich vorgehe wie hier beschrieben:
http://trac.mixam.info/mini2440/wiki/Qemu

und diese mini2440_start.sh ausführe kommt:

$ ./mini2440_start.sh
Starting in .
./mini2440_start.sh : creating NAND empty image : ./mini2440_nand.bin
C:\create\1.0\mingw\bin\dd.exe: /dev/zero: No such file or directory
./../arm-softmmu/qemu-system-arm -M mini2440 -drive 
file=./mini2440_snapshots.im
g,snapshot=on -serial stdio -kernel /tftpboot/uImage -mtdblock 
./mini2440_nand.b
in -show-cursor -usb -usbdevice keyboard -usbdevice mouse -net 
nic,vlan=0 -net t
ap,vlan=0,ifname=tap0 -monitor telnet::5555,server,nowait
tap: Could not open 'tap0'
Could not initialize device 'tap'

was bedeutet dass? was kann ich tuen ?

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist es denn soo kompliziert dieses qemu zum laufen zu bringen? Hat das 
schon mal jemand gemacht mit nem arm oder besser noch mit mini2440?
Was ist mit dieser GUI für windows krigt man das Damit auch hin? _Hab 
die Runtergeladen und ausprobiert weis da aber nicht was ich als "Kernal 
image" und was als "Ram Disk" wählen soll.

Autor: Tim T. (tim_taylor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da du anscheinend nichtmal in der Lage bist absolut aussagekräftige 
(Fehler-)Meldungen zu verstehen, ist es für dich anscheinend in der Tat 
zu kompliziert.

Da du das aber wohl nicht wahrhaben willst, empfehle ich dir mal deine 
System Devices zu checken (/dev/zero) und das TAP-Device einzurichten.

Autor: Nils S. (kruemeltee) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>versuche grade unter XP mit qemu
Vergiss das mal lieber, die ARM Emulation mit Qemu auf Windows ist nie 
aktuell und murks, nix läuft wies soll, dauernd abstürze.

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach ich nur ungern.
Hast du es denn überhaut zu laufen bekommen ?
Naja dann istallier ich jetz ma linux.
hmm kann man eigenlich ne Virtuelleumgebung in einer virtuellen umgebung 
erzeugen (-:?

Autor: Nils S. (kruemeltee) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hast du es denn überhaut zu laufen bekommen ?
Nach Tagen rumgebastel und Code flicken, eine etwas ältere ARM Version. 
Das Qemu-Mini2440 hab ich gar nie versucht.

>hmm kann man eigenlich ne Virtuelleumgebung in einer virtuellen umgebung
>erzeugen (-:?
Wieso nich?

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir jetzt unbutu installiert und hir noch mal versucht.
Habe zur übung das das ganze mit reactOS durchgezogen war Problemlos.

Jetz henge ich beim aufruf von qemu.ich finde nicht raus wie das für den 
arm geht.

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie benutzt man zImage.integrator oder uImage.integrator die sind soweit 
ich das verstanden habe für den veränderten bootablauf beim arm.

wenn ich dass  wie beschrieben versuche:
 qemu-system-arm -kernel zImage.integrator -initrd arm_root.img

kommt:zImage.integrator: No such file or directory
qemu: could not load kernel 'zImage.integrator'

habe ich da irgentein Package nicht istalliert ?

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vergesst mal den letzten Eintrag. Da war ich etwas Übermüdet.

Aber ich habe immer noch das selbe Problem dass ich die Virtuelle 
Netzwerkkarte nicht ans laufen bekomme.

wenn ich die Minni2440_start.sh:

#!/bin/bash

base=$(dirname $0)

echo Starting in $base

name_nand="$base/mini2440_nand.bin"
name_snapshots="$base/mini2440_snapshots.img"

if [ ! -f "$name_nand" ]; then
  echo $0 : creating NAND empty image : "$name_nand"
  dd if=/dev/zero of="$name_nand" bs=528 count=131072
fi
if [ ! -f "$name_snapshots" ]; then
  echo $0 : creating empty snapshot image : "$name_snapshots"
  qemu-img create "$name_snapshots" 100MB
fi


führt das zu folgender Ausgabe

cmd="$base/../arm-softmmu/qemu-system-arm \
  -M mini2440 $* \
  -drive file=$name_snapshots,snapshot=on \
  -serial stdio \
  -kernel /tftpboot/uImage \
  -mtdblock "$name_nand" \
  -show-cursor \
  -usb -usbdevice keyboard -usbdevice mouse \
  -net nic,vlan=0 \
  -net tap,vlan=0,ifname=tap0 \
  -monitor telnet::5555,server,nowait"

# cmd="gdbserver :3333 $cmd"
#  -monitor unix:.mini2440_monitor,server,nowait"

echo $cmd
$cmd

ausführe Passiert dass :

./../arm-softmmu/qemu-system-arm -M mini2440 -drive 
file=./mini2440_snapshots.img,snapshot=on -serial stdio -kernel 
/tftpboot/uImage -mtdblock ./mini2440_nand.bin -show-cursor -usb 
-usbdevice keyboard -usbdevice mouse -net nic,vlan=0 -net 
tap,vlan=0,ifname=tap0 -monitor telnet::5555,server,nowait
can't add tap0 to bridge eth1: Operation not supported
/etc/qemu-ifup: could not launch network script
Could not initialize device 'tap'

ich habe gelesen das dass an der quem-ifup liegen kann/soll, weis aber 
leider nicht was ich da ändern soll damit es klappt.

Autor: Robert Weber (rweber)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

so wie es aussieht, kann er den tap Treiber nicht auf das eth1 
"drüberlegen". Du bist root? Hast du denn auch ein eth1? Was zeigt

# ifconfig eth1

Gruss,
Robert

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ich habe nur einen eth1. eth0 ist meine Onbordkarte die habe ich 
aber wegen nem treiberproblem deaktiviert.
Arbeite unter ubuntu hab alles mit sudo ausgeführt.

ifconfig eth1
eth1      Link encap:Ethernet  Hardware Adresse 00:50:bf:d8:af:23
          inet Adresse:192.168.2.6  Bcast:192.168.2.255 
Maske:255.255.255.0
          inet6-Adresse: fe80::250:bfff:fed8:af23/64 
Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:18501 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17362 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:18328844 (18.3 MB)  TX bytes:3304638 (3.3 MB)
          Interrupt:19 Basisadresse:0xa400

Autor: Nils S. (kruemeltee) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Operation not supported" sieht mir nach fehlendet Unterstützung im 
Kernel aus. Schau mal, was modprobe -l | grep -i tap bringt. Bei Bedarf 
die module mit modprobe <modul> laden. Natürlich als root.

Ansonsten schmeiss die Netzwerkkarte testweise mal aus dem Script raus.

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mini2440:$: modprobe -l | grep -i tap
kernel/drivers/net/wireless/hostap/hostap.ko
kernel/drivers/net/wireless/hostap/hostap_cs.ko
kernel/drivers/net/wireless/hostap/hostap_plx.ko
kernel/drivers/net/wireless/hostap/hostap_pci.ko


Ohne nic

cmd="$base/../arm-softmmu/qemu-system-arm \
  -M mini2440 $* \
  -drive file=$name_snapshots,snapshot=on \
  -serial stdio \
  -kernel /tftpboot/uImage \
  -mtdblock "$name_nand" \
  -show-cursor \
  -usb -usbdevice keyboard -usbdevice mouse \
  -net nic none \
  -monitor telnet::5555,server,nowait"

kommt dass:

vice mouse -net nic none -monitor telnet::5555,server,nowait
Warning: vlan 0 is not connected to host network
S3C: CLK=240 HCLK=240 PCLK=240 UCLK=57
QEMU: ee24c08_init
DM9000: INIT QEMU MAC : 52:54:00:12:34:56
QEMU mini2440_reset: loaded default u-boot from NAND
QEMU mini2440_reset: loaded override u-boot (size 0)
QEMU mini2440_reset: loaded /tftpboot/uImage (size 0)
S3C: CLK=240 HCLK=240 PCLK=240 UCLK=57
QEMU mini2440_reset: loaded default u-boot from NAND
QEMU mini2440_reset: loaded override u-boot (size 0)
QEMU mini2440_reset: loaded /tftpboot/uImage (size 0)
qemu: fatal: Trying to execute code outside RAM or ROM at 0x34000000

R00=00000000 R01=00000000 R02=00000000 R03=00000000
R04=00000000 R05=00000000 R06=00000000 R07=00000000
R08=00000000 R09=00000000 R10=00000000 R11=00000000
R12=00000000 R13=00000000 R14=00000000 R15=34000000
PSR=400001d3 -Z-- A svc32
./mini2440_start.sh: Zeile 35:  3598 Aborted                 $cmd

kommt  dass .


oder muss ich noch mehr kicken?

ich denke mal dass dann die grösse im ram nciht mehr stimmt und ich die 
in uboot neu festlegen müsste?!

Autor: Nils S. (kruemeltee) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oooooh wie oft ich den Fehler beim OS-Coding hatte :D Da werden 
Erinnerungen an hunderte Fehler, hauptsächlich im Zusammenhang mit 
Pointer(Arrays) wach und lebendig :D

Das dürfte eigentlich nicht passieren. Das ist höchstwahrscheinlcih ein 
kaputtes Image.

Ist das Kernel Image eines für Uboot, ein uImage, bzImage, zImage, ... 
... ?

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe die ganze "toolchain" mit einer leicht modifizierten
mini2440-bootstrap-v2.sh 
(http://code.google.com/p/mini2440/downloads/detail...) 
erstellt hab das ganze aber voher auch schon anders versucht und den 
Fehler hatte ich immer wenn ich die Nic weg gelassen haben.

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist das richtig ?

> QEMU mini2440_reset: loaded override u-boot (size 0)
> QEMU mini2440_reset: loaded /tftpboot/uImage (size 0)

size 0 klingt wie nix geladen, kein wunder das dann

> qemu: fatal: Trying to execute code outside RAM or ROM at 0x34000000

kommt.

Steht doch hier http://trac.mixam.info/mini2440/wiki/Qemu

If you have something like :
 qemu: fatal: Trying to execute code outside RAM or ROM at 0x00001000
verify that u-boot.bin if well loaded

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja aber warum wird die uboot.bin denn nicht ordentlich geladen 
vorahanden ist ja ?

Sorry bin ein bisschen Planlos

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
muss man irgendwo den Pfad für die qemu.bin ändern wenn ich die nählich 
umbenenne ändert sich gar nichts.

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Drück

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dizzy schrieb:
> ja aber warum wird die uboot.bin denn nicht ordentlich geladen
> vorahanden ist ja ?
>
> Sorry bin ein bisschen Planlos

In order to load the u-boot.bin correctly it must be placed in the 
script directory

:lesen muss du schon selber, steht doch alles beschrieben. Wenn die 
pfade und file name nicht stimmen und die u-boot.bin nicht vorhanden ist 
im script dir dann wird qemu nix laden können .. steht aber alles da

http://trac.mixam.info/mini2440/wiki/Qemu

Autor: Dizzy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gelesen habe ich es, registriert aber nicht.

Gut, habe die qemu.bin ins selbe Verzeichnis wie das Skript verschoben.
leider klappts immer noch nicht.

ohne (Nic) passiert folgendes:

Starting in .
./../arm-softmmu/qemu-system-arm -M mini2440 -drive 
file=./mini2440_snapshots.img,snapshot=on -serial stdio -kernel 
/tftpboot/uImage -mtdblock ./mini2440_nand.bin -show-cursor -usb 
-usbdevice keyboard -usbdevice mouse -net none -monitor 
telnet::5555,server,nowait
S3C: CLK=240 HCLK=240 PCLK=240 UCLK=57
QEMU: ee24c08_init
DM9000: INIT QEMU MAC : 00:00:00:00:00:00
./mini2440_start.sh: Zeile 35:  2997 Segmentation fault      $cmd

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.