All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: Re: mini-os for Xen2
  2005-02-12 11:01 Rick
@ 2005-02-12 12:56 ` Keir Fraser
  2005-02-13  2:39   ` Jacob Gorm Hansen
  0 siblings, 1 reply; 6+ messages in thread
From: Keir Fraser @ 2005-02-12 12:56 UTC (permalink / raw)
  To: Rick; +Cc: xen-devel


xm gives the world's most unhelpful error messages. You may well find
a more useful message hidden away in /var/log/xend[-debug].log as
comes straight from the domain builder in libxc.

My guess woul dbe that you do not have a '__xen_guest' section in your
Elf image. Look at the top of
linux-2.6.10-xen-sparse/arch/xen/i386/kernel/head.S for an example of
how to specify one.

 -- Keir

> Hi,
> 
> I am trying to get a program to load and run directly on XEN. I've
> been looking at mini-os but I have not been able to compile it.
> Anyhow, right now I am just trying to get a program to load and print
> "Hello World". So I've modified mini-os and removed everything from
> the compilation except for the files head.S and the function
> start_kernel() in kernel.c.
> 
> my start_kernel() function looks like this:
> ===========================================================
> void start_kernel(start_info_t *si)
> {
> 
>    HYPERVISOR_console_io (CONSOLEIO_write, 11, "Hello World");
>    HYPERVISOR_shutdown();
> }
> ===========================================================
> 
> my head.S file looks like this:
> ===========================================================
> #include <os.h>
> 
> .globl _start, shared_info
> 
> _start:
>         cld
>         lss stack_start,%esp
>         push $shared_info
>         call start_kernel
> 
> stack_start:
>         .long stack_start+8192, __KERNEL_DS
> 
>         /* Unpleasant -- the PTE that maps this page is actually overwritten */
>         /* to map the real shared-info page! :-)                             */
>         .org 0x1000
> shared_info:
>         .org 0x2000
> ===========================================================
> 
> In head.S I changed 
> 
> =================================
> stack_start:
>         .long stack+8192, __KERNEL_DS
> =================================
> to 
> =================================
> stack_start:
>         .long stack_start+8192, __KERNEL_DS
> =================================
> because there were no symbols called "stack"
> 
> When I try to load this program with XEN using "xm create" I get the
> following error:
> 
> Error: Error creating domain: (0, 'Error')
> 
> Is there something wrong with the Makefile and linking process that
> comes with mini-os ?
> 
> Any help will be much appreciated.
> 
> Thanks
> Rick
> 
> 
> 
> 
> 
> On Fri, 11 Feb 2005 18:56:19 -0500, Rick <judicator3@gmail.com> wrote:
> > Hello,
> > 
> > I am trying to compile the mini-os under xen2
> > I am getting lot's of errors and I guess mini-os was written for a
> > much earlier version of xen. Is there an updated version of mini-os
> > somewhere ? Do you stop supporting mini-os ?
> > 
> > Rick
> >
> 
> 
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real users.
> Discover which products truly live up to the hype. Start reading now.
> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/xen-devel
> 



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Re: mini-os for Xen2
  2005-02-12 12:56 ` Keir Fraser
@ 2005-02-13  2:39   ` Jacob Gorm Hansen
  2005-02-14  1:37     ` Rick
  0 siblings, 1 reply; 6+ messages in thread
From: Jacob Gorm Hansen @ 2005-02-13  2:39 UTC (permalink / raw)
  To: Keir Fraser; +Cc: Rick, xen-devel

Keir Fraser wrote:
> xm gives the world's most unhelpful error messages. You may well find
> a more useful message hidden away in /var/log/xend[-debug].log as
> comes straight from the domain builder in libxc.
> 
> My guess woul dbe that you do not have a '__xen_guest' section in your
> Elf image. Look at the top of
> linux-2.6.10-xen-sparse/arch/xen/i386/kernel/head.S for an example of
> how to specify one.
> 

The new vm-tools that were just announced will probably be easier to use 
for this kind of debugging than xn/xend. Also, I used to re-create the 
HYPERVISOR_console_write syscall, and configure Xen to allow unpriv 
domains to write to the serial console. I think the new 
HYPERVISOR_console_io syscall can be convinced to do the same thing.

In my xen tarball at http://www.diku.dk/~jacobg/self-migration/ you can 
find the source of 'mstrap' which is very much like mini-os, but perhaps 
a little more up to date. The network driver is not working in Xen2, but 
the elf-image should at least load using the recent tools.

Jacob


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Re: mini-os for Xen2
  2005-02-13  2:39   ` Jacob Gorm Hansen
@ 2005-02-14  1:37     ` Rick
  0 siblings, 0 replies; 6+ messages in thread
From: Rick @ 2005-02-14  1:37 UTC (permalink / raw)
  To: xen-devel

Hi Keir,

You were right, I was missing the section __xen_guest.
So now when I create the domain I do not get any error message and I
do get a console.
So the 1st thing I am doing is just trying to write something on the
console with the hypervisor call "console_io". However, I do not see
anything on the console. In order to use the hypervisor calls, do I
have to first set up the trap tables, page tables and parse the shared
struct info etc ... ?  Also, is it important where I load the image ?
Right now my lds script specifies "0xC0000000" as the starting
address. I also tried "0xC0000000 + 0x100000" which I saw in the linux
lds script.

My head.S file is very simple and I invoke the hypervisor calls by
issuing the interrupts directly:

#define ENTRY(X) .globl X ; X :

.section __xen_guest
	.ascii"GUEST_OS=linux,GUEST_VER=2.6,XEN_VER=2.0,VIRT_BASE=0xC0000000"
	.ascii	",LOADER=generic"
	.ascii	",PT_MODE_WRITABLE"
	.byte	0

.text

/*
 * References to members of the new_cpu_data structure.
 */

	.globl _start
_start:
	cld


	movl    $18,%eax                        # __HYPERVISOR_console_io
        movl	$0, %ebx		         #  arg1 = 0 for write	
	movl    $hello_message_len,%ecx #  arg2 = buffer length
	movl    $hello_message,%edx       #  arg3 = buffer virtual address
        int     $0x82

        
        movl    $6,%eax                 # __HYPERVISOR_sched_op
        movl    $2,%ebx                 # shutdown
        int     $0x82

hang:   jmp     hang                    # shouldn't get here


hello_message:  .ascii  "This is the hello world program\n"
hello_message_len = . - hello_message


Thanks
Richard



On Sat, 12 Feb 2005 18:39:07 -0800, Jacob Gorm Hansen <jacobg@diku.dk> wrote:
> Keir Fraser wrote:
> > xm gives the world's most unhelpful error messages. You may well find
> > a more useful message hidden away in /var/log/xend[-debug].log as
> > comes straight from the domain builder in libxc.
> >
> > My guess woul dbe that you do not have a '__xen_guest' section in your
> > Elf image. Look at the top of
> > linux-2.6.10-xen-sparse/arch/xen/i386/kernel/head.S for an example of
> > how to specify one.
> >
> 
> The new vm-tools that were just announced will probably be easier to use
> for this kind of debugging than xn/xend. Also, I used to re-create the
> HYPERVISOR_console_write syscall, and configure Xen to allow unpriv
> domains to write to the serial console. I think the new
> HYPERVISOR_console_io syscall can be convinced to do the same thing.
> 
> In my xen tarball at http://www.diku.dk/~jacobg/self-migration/ you can
> find the source of 'mstrap' which is very much like mini-os, but perhaps
> a little more up to date. The network driver is not working in Xen2, but
> the elf-image should at least load using the recent tools.
> 
> Jacob
>


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: Re: mini-os for Xen2
@ 2005-02-14  1:50 Ian Pratt
  2005-02-14  2:52 ` Rick
  0 siblings, 1 reply; 6+ messages in thread
From: Ian Pratt @ 2005-02-14  1:50 UTC (permalink / raw)
  To: Rick, xen-devel; +Cc: ian.pratt

 
> You were right, I was missing the section __xen_guest.
> So now when I create the domain I do not get any error message and I
> do get a console.
> So the 1st thing I am doing is just trying to write something on the
> console with the hypervisor call "console_io". However, I do not see
> anything on the console. 

You need to be using a debug=y build of Xen to use console_io from an
unprivileged domain. 

Ian


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id\x14396&op=click

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Re: mini-os for Xen2
  2005-02-14  1:50 Re: mini-os for Xen2 Ian Pratt
@ 2005-02-14  2:52 ` Rick
  2005-02-15  1:32   ` Rick
  0 siblings, 1 reply; 6+ messages in thread
From: Rick @ 2005-02-14  2:52 UTC (permalink / raw)
  To: xen-devel

Hi Ian,

Thanks for the info.
I recompiled XEN with "make debug=y". I also tried by changing the
xen/Rules.mk file and put "degug ?= y". Now I am stuck in the boot
process. I see XEN starting to load, but then it stops and does not
want to boot into domain0. My domain0 is based on a Fedora Core 3
installation

During the boot process XEN stops at the following line:
=================================================
...
...
(XEN) .... System Time : 10640414ns
(XEN) .... Cpu_freq : 00000000:B2BB4F10
(XEN) .... Scale : 00000001:557D8C01
(XEN) .... Wallclock : 1108330382s 160000us

--- It hangs here ---
=================================================

Thanks
Rick




On Mon, 14 Feb 2005 01:50:11 -0000, Ian Pratt <m+Ian.Pratt@cl.cam.ac.uk> wrote:
> 
> > You were right, I was missing the section __xen_guest.
> > So now when I create the domain I do not get any error message and I
> > do get a console.
> > So the 1st thing I am doing is just trying to write something on the
> > console with the hypervisor call "console_io". However, I do not see
> > anything on the console.
> 
> You need to be using a debug=y build of Xen to use console_io from an
> unprivileged domain.
> 
> Ian
>


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Re: mini-os for Xen2
  2005-02-14  2:52 ` Rick
@ 2005-02-15  1:32   ` Rick
  0 siblings, 0 replies; 6+ messages in thread
From: Rick @ 2005-02-15  1:32 UTC (permalink / raw)
  To: xen-devel

> > You need to be using a debug=y build of Xen to use console_io from an
> > unprivileged domain.
> >
> > Ian

Hello,

I was having some problems to boot XEN when it was compiled with
'debug=y'. But I was able to slove that. I just had to remove some of
the extra messages that get printed during the boot process when
'debug=y' is turned on and that seemed to solve the problem.

However, I still cannot get my mini-os to print something to the console. 
I modified the function "do_console_io()" in the file
xen/drivers/char/console.c  to catch whenever the mini-os tries to
write to the console.  "do_console_io()" is being invoked correctly
and the check that (current->id == 0 ) is NOT being performed since I
compiled with "debug=y".

So everything should be fine and the unprivileged mini-os should be
able to write to the console. But in the function call
"serial_puts(sercon_handle, kbuf)", sercon_handle is -1. So the
serial_puts() function is not being executed correctly.

Are there some initial setup I need to do in my mini-os in order to
use the console_io hypercalls.

Thanks
Rick


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2005-02-15  1:32 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-14  1:50 Re: mini-os for Xen2 Ian Pratt
2005-02-14  2:52 ` Rick
2005-02-15  1:32   ` Rick
  -- strict thread matches above, loose matches on Subject: below --
2005-02-12 11:01 Rick
2005-02-12 12:56 ` Keir Fraser
2005-02-13  2:39   ` Jacob Gorm Hansen
2005-02-14  1:37     ` Rick

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.