[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [XenARM] android emulator


  • To: <michael@xxxxxxxxxxxx>
  • From: Caz Yokoyama <cazyokoyama@xxxxxxxxx>
  • Date: Mon, 19 Oct 2009 16:33:22 -0700
  • Cc: xen-arm@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Mon, 19 Oct 2009 16:33:18 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:references:subject:date:message-id:mime-version :content-type:content-transfer-encoding:x-mailer:in-reply-to :thread-index:x-mimeole; b=VoS/g6Wi3FIF2x3ui++gbH7H9u2/OW0RnoXc2gNqzrYBIiYvSSc5oeg6xfJKLR7hG5 YWkeugavus86eb42eOhA7w8YP31iBJgaBkRrtUVUhY9CJmLePXp97g1N6lxGksRGS/SQ 2WwIuGpKZEDnEEjKINvlWwXUX3DKpCK6Y36ec=
  • List-id: Xen ARM development <xen-arm.lists.xensource.com>
  • Thread-index: AcpREpjmJX685gBOTKGeCIqq9oWHcwAAW1+w

Hello Michael,
What the nice idea full linux-2.6.21-arm and Android running upon Xen!
Qualcomm may be interested in.
-caz

-----Original Message-----
From: Michael R. Hines [mailto:michael@xxxxxxxxxxxx] 
Sent: Monday, October 19, 2009 4:19 PM
To: Caz Yokoyama
Cc: xen-arm@xxxxxxxxxxxxxxxxxxx
Subject: 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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.