|
|
|
|
|
|
|
|
|
|
xen-arm
Re: [XenARM] android emulator
Actually, I got it to work. The problem was that that I was compiling on
a 64-bit version of the ARM-ported emulator instead of a 32-bit version,
so I logged into a 32-bit machine and attempted to compile it.
However, there was one snag before it worked: a patch is needed:
--- Taken from http://code.google.com/p/android/issues/detail?id=838
1.) A -msse2 cflags is missing in Makefile.target which make _mm_add_si64
cannot be found:
/android-emulator-20080826/qemu/skins/skin_argb.h:286: warning: implicit
declaration of function ‘_mm_add_si64’
/android-emulator-20080826/qemu/skins/skin_argb.h:286: error: incompatible
types in assignment
2.) The error comment in build-emulator.sh is wrong.
Patch:
--- qemu.orig/Makefile.target 2008-08-29 10:01:41.000000000 +0800
+++ qemu/Makefile.target 2008-08-29 10:01:24.000000000 +0800
@@ -39,7 +39,7 @@ endif
ifeq ($(ARCH),i386)
OP_CFLAGS=$(CFLAGS) -O2 -fomit-frame-pointer
-CFLAGS+=-DUSE_MMX -mmmx
+CFLAGS+=-DUSE_MMX -mmmx -msse2
ifneq ($(CONFIG_DARWIN),yes)
OP_CFLAGS+= -mpreferred-stack-boundary=2
else
Once I applied this on a 32-bit Ubuntu 9.04 server box, the compile
succeeded
and the two mini-os domains started running inside the emulator.
Cool stuff! Thank you very much for your quick response.
What is the possibility of getting a full linux-2.6.21-arm running
inside the emulator?
Is that possible right now?
- Michael
Caz Yokoyama wrote:
Hello Michael,
What optimization option do you use? -O2? -O0? Don't use -O0. You will have
segfault. Could you run backtrace command on segfault? In addition, please
provide more detail of your environment.
-caz
P.S. You may not hear from anybody other than me. This is a very quiet
mailing list.
-----Original Message-----
From: xen-arm-bounces@xxxxxxxxxxxxxxxxxxx
[mailto:xen-arm-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Michael R. Hines
Sent: Monday, October 19, 2009 12:58 PM
To: xen-arm@xxxxxxxxxxxxxxxxxxx
Subject: [XenARM] android emulator
Greetings,
I have followed all the instructions in the Secure XenARM manual and I
went through section A.2 on how to build XenARM for the Android
emulator. I successfully built the arm-port of Xen as well as the
arm-port of mini-os and I built the patched version of QEMU 0.82.
When I tried to run the emulator, I get a segfault - From what I can
tell, the fault occurs at the very first instruction when QEMU attempts
to start running the Xen hypervisor.
Here is the output of a sample GDB session:
$ gdb emulator
$ (gdb) run -guest0 0x01c00000 mini-os.elf -guest1 0x02c00000
mini-os.elf -show-kernel -system ./images -shell -qemu -s
Starting program: ../android-emulator-xen_arm/emulator -guest0
0x01c00000 mini-os.elf -guest1 0x02c00000 mini-os.elf -show-kernel
-system ./images -shell -qemu -s
[Thread debugging using libthread_db enabled]
guest0 - mini-os.elf
guest1 - mini-os.elf
[New Thread 0x7f32a807c6f0 (LWP 5913)]
[New Thread 0x7f329e9f0950 (LWP 5916)]
[New Thread 0x7f329e1ef950 (LWP 5917)]
Waiting gdb connection on port 1234
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f32a807c6f0 (LWP 5913)]
0x0000000000000000 in ?? ()
(gdb)
Any ideas on where I could start debugging this? Or are there updated
patches to make this work?
--
/*
* Michael R. Hines
* Post-Doc, Dept. of Computer Science
* http://www.cs.columbia.edu/~mhines/
* Live long and prosper...
*/
_______________________________________________
Xen-arm mailing list
Xen-arm@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-arm
|
|
|
|
|