View previous topic :: View next topic |
Author |
Message |
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1915 Location: Schweiz
|
Posted: Mon Mar 30, 2015 8:18 am Post subject: ARMv7 mit QEMU emulieren |
|
|
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? _________________ Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW |
|
Back to top |
|
|
Yamakuzure Advocate
Joined: 21 Jun 2006 Posts: 2280 Location: Adendorf, Germany
|
Posted: Mon Mar 30, 2015 10:10 am Post subject: |
|
|
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:- crossbuild toolchain auf gcc-4.8 limitieren (4.9 schlicht maskieren)
- Wenn glibc-headers gebaut werden, mit strg+z anhalten, sobald die "prepare" Phase durch ist.
- 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. - 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.) _________________ Important German:- "Aha" - German reaction to pretend that you are really interested while giving no f*ck.
- "Tja" - German reaction to the apocalypse, nuclear war, an alien invasion or no bread in the house.
|
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1915 Location: Schweiz
|
Posted: Mon Mar 30, 2015 10:27 am Post subject: |
|
|
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. _________________ Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW |
|
Back to top |
|
|
Yamakuzure Advocate
Joined: 21 Jun 2006 Posts: 2280 Location: Adendorf, Germany
|
Posted: Mon Mar 30, 2015 1:33 pm Post subject: |
|
|
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... _________________ Important German:- "Aha" - German reaction to pretend that you are really interested while giving no f*ck.
- "Tja" - German reaction to the apocalypse, nuclear war, an alien invasion or no bread in the house.
|
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1915 Location: Schweiz
|
Posted: Tue Mar 31, 2015 12:57 pm Post subject: |
|
|
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. _________________ Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW |
|
Back to top |
|
|
musv Advocate
Joined: 01 Dec 2002 Posts: 3333 Location: de
|
Posted: Tue Mar 31, 2015 9:42 pm Post subject: |
|
|
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 |
|
|
Yamakuzure Advocate
Joined: 21 Jun 2006 Posts: 2280 Location: Adendorf, Germany
|
Posted: Thu Apr 02, 2015 9:01 am Post subject: |
|
|
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. _________________ Important German:- "Aha" - German reaction to pretend that you are really interested while giving no f*ck.
- "Tja" - German reaction to the apocalypse, nuclear war, an alien invasion or no bread in the house.
|
|
Back to top |
|
|
Funitarzer n00b
Joined: 08 Feb 2018 Posts: 1 Location: Leverkusen
|
Posted: Thu Feb 08, 2018 9:54 am Post subject: |
|
|
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:- crossbuild toolchain auf gcc-4.8 limitieren (4.9 schlicht maskieren)
- Wenn glibc-headers gebaut werden, mit strg+z anhalten, sobald die "prepare" Phase durch ist.
- 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. - 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 |
|
|
|
|
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
|
|