* mini-os for Xen2
@ 2005-02-11 23:56 Rick
2005-02-12 11:01 ` Rick
0 siblings, 1 reply; 5+ messages in thread
From: Rick @ 2005-02-11 23:56 UTC (permalink / raw)
To: xen-devel
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: mini-os for Xen2
2005-02-11 23:56 mini-os for Xen2 Rick
@ 2005-02-12 11:01 ` Rick
2005-02-12 12:56 ` Keir Fraser
0 siblings, 1 reply; 5+ messages in thread
From: Rick @ 2005-02-12 11:01 UTC (permalink / raw)
To: xen-devel
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* 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; 5+ 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] 5+ 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; 5+ 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] 5+ 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; 5+ 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] 5+ messages in thread
end of thread, other threads:[~2005-02-14 1:37 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-02-11 23:56 mini-os for Xen2 Rick
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.