Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
ARMv7 mit QEMU emulieren
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1497
Location: Schweiz

PostPosted: Mon Mar 30, 2015 8:18 am    Post subject: ARMv7 mit QEMU emulieren Reply with quote

Ich möchte mir in einer QEMU-VM ein ARMv7 Gentoo hochziehen, scheitere da aber an zwei Punkten.

- erstes Problem: Maschinentyp
QEMU bietet ja einige Maschinentypen zur Auswahl, nur welcher wäre für ein "stage3-armv7a_hardfp" besten geeignet?
Code:
Supported machines are:
akita                Akita PDA (PXA270)
borzoi               Borzoi PDA (PXA270)
canon-a1100          Canon PowerShot A1100 IS
cheetah              Palm Tungsten|E aka. Cheetah PDA (OMAP310)
collie               Collie PDA (SA-1110)
connex               Gumstix Connex (PXA255)
cubieboard           cubietech cubieboard
highbank             Calxeda Highbank (ECX-1000)
integratorcp         ARM Integrator/CP (ARM926EJ-S)
kzm                  ARM KZM Emulation Baseboard (ARM1136)
lm3s6965evb          Stellaris LM3S6965EVB
lm3s811evb           Stellaris LM3S811EVB
mainstone            Mainstone II (PXA27x)
midway               Calxeda Midway (ECX-2000)
musicpal             Marvell 88w8618 / MusicPal (ARM926EJ-S)
n800                 Nokia N800 tablet aka. RX-34 (OMAP2420)
n810                 Nokia N810 tablet aka. RX-44 (OMAP2420)
none                 empty machine
nuri                 Samsung NURI board (Exynos4210)
realview-eb          ARM RealView Emulation Baseboard (ARM926EJ-S)
realview-eb-mpcore   ARM RealView Emulation Baseboard (ARM11MPCore)
realview-pb-a8       ARM RealView Platform Baseboard for Cortex-A8
realview-pbx-a9      ARM RealView Platform Baseboard Explore for Cortex-A9
smdkc210             Samsung SMDKC210 board (Exynos4210)
spitz                Spitz PDA (PXA270)
sx1                  Siemens SX1 (OMAP310) V2
sx1-v1               Siemens SX1 (OMAP310) V1
terrier              Terrier PDA (PXA270)
tosa                 Tosa PDA (PXA255)
verdex               Gumstix Verdex (PXA270)
versatileab          ARM Versatile/AB (ARM926EJ-S)
versatilepb          ARM Versatile/PB (ARM926EJ-S)
vexpress-a15         ARM Versatile Express for Cortex-A15
vexpress-a9          ARM Versatile Express for Cortex-A9
virt                 ARM Virtual Machine
xilinx-zynq-a9       Xilinx Zynq Platform Baseboard for Cortex-A9
z2                   Zipit Z2 (PXA27x)


- zweites Problem: Kernel
Da crossdev bei mir nicht funktioniert (bitte nicht fragen warum ich weiß es auch nicht) bräuchte ich einen fertig kompilierten Kernel mit dessen Hilfe ein erster boot erfolgreich über die Bühne gehen kann, nur wo findet man sowas?
_________________
GPG: 3FC78AEE51E5FB95
Back to top
View user's profile Send private message
Yamakuzure
Advocate
Advocate


Joined: 21 Jun 2006
Posts: 2209
Location: Bardowick, Germany

PostPosted: Mon Mar 30, 2015 10:10 am    Post subject: Reply with quote

Das Problem hatte ich auch. qemu kann schlicht keinen Cortex-A8. Die Plattform, mit der ich am weitesten kam, war "cubieboard", aber gebootet wurde dann leider nichts. (Hatte versucht einen Raspberry Pi 2 zu emulieren.)
... vielleicht war mein Kernel auch nicht in Ordnung...

Beim Crossdev gibt es das Problem, zumindest war das bei mir so, dass das mit gcc-4.9 nicht ging. Also habe ich derzeit:
Code:
 ~ $ eix -I -e gcc -c
[I] cross-armv7a-hardfloat-linux-gnueabi/gcc [1] (4.8.3(4.8.3)@27.02.2015): The GNU Compiler Collection
[I] sys-devel/gcc (4.9.2-r100(4.9)[3]@09.12.2014): The GNU Compiler Collection
mit dem 4.8.3 liefs dann wunderbar nach Anleitung, nachdem ich das Folgende gemacht hatte:
  1. crossbuild toolchain auf gcc-4.8 limitieren (4.9 schlicht maskieren)
  2. Wenn glibc-headers gebaut werden, mit strg+z anhalten, sobald die "prepare" Phase durch ist.
  3. Im build Verzeichnis in der Datei dir/sysdeps/arm/sysdep.h die Zeile
    "#define __ARM_ARCH_7A__"
    hinzufügen. Sonst beendet sich der ganze Krempel mit "unknown architecture" und der ganze Spaß scheitert dann an späterer Stelle.
  4. mit "fg" fortführen.
(Die "spätere Stelle" ist dann glibc selber, da beendet sich das Konfigurieren mit
Code:
checking for .preinit_array/.init_array/.fini_array support... no
configure: error: Need linker with .init_array/.fini_array support.
was mich so einige graue Haare gekostet hat.)
_________________
Yeah, If you're going through hell
Keep on moving, Face that fire
Walk right through it, You might get out
Before the devil even knows you're there
Back to top
View user's profile Send private message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1497
Location: Schweiz

PostPosted: Mon Mar 30, 2015 10:27 am    Post subject: Reply with quote

Selbst wenn crossdev bei mir funktionieren würde hätte ich wenig Bock damit mein System zuzumüllen. Echt scheiße das der QEMU keinen Raspberry Pi, geschweige denn Version 2, simulieren kann denn dann müsste man nur ein Abbild der SD-Karte einbinden und könnte sofort loslegen.
_________________
GPG: 3FC78AEE51E5FB95
Back to top
View user's profile Send private message
Yamakuzure
Advocate
Advocate


Joined: 21 Jun 2006
Posts: 2209
Location: Bardowick, Germany

PostPosted: Mon Mar 30, 2015 1:33 pm    Post subject: Reply with quote

schmidicom wrote:
Selbst wenn crossdev bei mir funktionieren würde hätte ich wenig Bock damit mein System zuzumüllen. Echt scheiße das der QEMU keinen Raspberry Pi, geschweige denn Version 2, simulieren kann denn dann müsste man nur ein Abbild der SD-Karte einbinden und könnte sofort loslegen.
Oh, Version 1 funktioniert wunderbar:Installing Gentoo on Raspberry Pi

Und zumüllen, naja, ich will das Teil ja auch aktualisieren können ohne dauernd die SD-Karte umhängen zu müssen, also habe ich mir den Cross-Dev-Kram halt angetan...
_________________
Yeah, If you're going through hell
Keep on moving, Face that fire
Walk right through it, You might get out
Before the devil even knows you're there
Back to top
View user's profile Send private message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1497
Location: Schweiz

PostPosted: Tue Mar 31, 2015 12:57 pm    Post subject: Reply with quote

Yamakuzure wrote:
schmidicom wrote:
Selbst wenn crossdev bei mir funktionieren würde hätte ich wenig Bock damit mein System zuzumüllen. Echt scheiße das der QEMU keinen Raspberry Pi, geschweige denn Version 2, simulieren kann denn dann müsste man nur ein Abbild der SD-Karte einbinden und könnte sofort loslegen.
Oh, Version 1 funktioniert wunderbar:Installing Gentoo on Raspberry Pi

Was da aber simuliert wird ist ein "versatilepb" und kein raspberry pi. Mag sein das die sich ähnlich genug sind um den selben Userspace laufen lassen zu können aber deswegen ist es trotzdem noch kein raspberry pi.
Yamakuzure wrote:
Und zumüllen, naja, ich will das Teil ja auch aktualisieren können ohne dauernd die SD-Karte umhängen zu müssen, also habe ich mir den Cross-Dev-Kram halt angetan...
Zumüllen war vermutlich etwas zu emotional ausgedrückt aber ich will bei meiner x86 Softwareauswahl nicht auch noch auf crossdev Rücksicht nehmen müssen. Und nur deswegen ein weiteres Gentoo aufsetzen sehe ich irgendwie auch nicht ein.
_________________
GPG: 3FC78AEE51E5FB95
Back to top
View user's profile Send private message
musv
Advocate
Advocate


Joined: 01 Dec 2002
Posts: 3199
Location: de

PostPosted: Tue Mar 31, 2015 9:42 pm    Post subject: Reply with quote

Das ist interessant. Ich hatte mit Crossdev-ARM mal vor 2 Jahren rumgespielt. Wollte damals für einen ARMv5 und für mein Notebook (x86 Atom) compilieren.

Es war ein Desaster. Die damalige Anleitung war unvollständig. Und selbst hier im Forum konnten die letzten Probleme nicht gelöst werden.

Manche Pakete hab ich durchaus dazu bewegen können erfolgreich zu bauen. Bei vielen Paketen tauchten jedoch Probleme auf, dass die Configure-Scripte nicht mit den Cross-Dev-Pfaden zurecht kamen und irgendwelche Abhängigkeiten nicht finden konnten, obwohl die entsprechenden Pakete installiert waren.

Bei Qemu bin ich ebenfalls daran gescheitert, dass ich damals nichts für ARMv5tel gefunden hab.

Gibt's mittlerweile eine brauchbare Anleitung?
Back to top
View user's profile Send private message
Yamakuzure
Advocate
Advocate


Joined: 21 Jun 2006
Posts: 2209
Location: Bardowick, Germany

PostPosted: Thu Apr 02, 2015 9:01 am    Post subject: Reply with quote

schmidicom wrote:
Was da aber simuliert wird ist ein "versatilepb" und kein raspberry pi. Mag sein das die sich ähnlich genug sind um den selben Userspace laufen lassen zu können aber deswegen ist es trotzdem noch kein raspberry pi.
Kleines Mißbverständnis? Was da simuliert wird ist das Board, nicht das Endgerät. ;-)

schmidicom wrote:
Zumüllen war vermutlich etwas zu emotional ausgedrückt aber ich will bei meiner x86 Softwareauswahl nicht auch noch auf crossdev Rücksicht nehmen müssen. Und nur deswegen ein weiteres Gentoo aufsetzen sehe ich irgendwie auch nicht ein.
Du brauchst auf nichts Rücksicht nehmen. In /etc/portage müssen einige Dateien in Verzeichnisse umbenannt werden, dann hat crossdev seine eigenen Versionen von sachen wie keywords und USE flags:
Code:
 ~ $ ls -1 /etc/portage/*/cross*
/etc/portage/package.env/cross-armv7a-hardfloat-linux-gnueabi
/etc/portage/package.keywords/cross-armv7a-hardfloat-linux-gnueabi
/etc/portage/package.mask/crossdev.mask
/etc/portage/package.use/cross-armv7a-hardfloat-linux-gnueabi

/etc/portage/env/cross-armv7a-hardfloat-linux-gnueabi:
binutils.conf
gcc.conf
gdb.conf
glibc.conf
linux-headers.conf
Das ist alles komplett außerhalb deiner normalen Systemverwaltung.
_________________
Yeah, If you're going through hell
Keep on moving, Face that fire
Walk right through it, You might get out
Before the devil even knows you're there
Back to top
View user's profile Send private message
Funitarzer
n00b
n00b


Joined: 08 Feb 2018
Posts: 1
Location: Leverkusen

PostPosted: Thu Feb 08, 2018 9:54 am    Post subject: Reply with quote

Yamakuzure wrote:
Das Problem hatte ich auch. qemu kann schlicht keinen Cortex-A8. Die Plattform, mit der ich am weitesten kam, war "cubieboard", aber gebootet wurde dann leider nichts. (Hatte versucht einen Raspberry Pi 2 zu emulieren.)
... vielleicht war mein Kernel auch nicht in Ordnung...

Beim Crossdev gibt es das Problem, zumindest war das bei mir so, dass das mit gcc-4.9 nicht ging. Also habe ich derzeit:
Code:
 ~ $ eix -I -e gcc -c
[I] cross-armv7a-hardfloat-linux-gnueabi/gcc [1] (4.8.3(4.8.3)@27.02.2015): The GNU Compiler Collection
[I] sys-devel/gcc (4.9.2-r100(4.9)[3]@09.12.2014): The GNU Compiler Collection
mit dem 4.8.3 liefs dann wunderbar nach Anleitung, nachdem ich das Folgende gemacht hatte:
  1. crossbuild toolchain auf gcc-4.8 limitieren (4.9 schlicht maskieren)
  2. Wenn glibc-headers gebaut werden, mit strg+z anhalten, sobald die "prepare" Phase durch ist.
  3. Im build Verzeichnis in der Datei dir/sysdeps/arm/sysdep.h die Zeile
    "#define __ARM_ARCH_7A__"
    hinzufügen. Sonst beendet sich der ganze Krempel mit "unknown architecture" und der ganze Spaß scheitert dann an späterer Stelle.
  4. mit "fg" fortführen.
(Die "spätere Stelle" ist dann glibc selber, da beendet sich das Konfigurieren mit
Code:
checking for .preinit_array/.init_array/.fini_array support... no
configure: error: Need linker with .init_array/.fini_array support.
was mich so einige graue Haare gekostet hat und es ist sogar ohne propecia (finasterid 1mg und 5mg) rezeptfrei kaufen auf web)


Und wenn nicht Cortex-A8 aber der frühe Modellansatz ist der gleiche?
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum