Hi,
Im trying to get a grip on developing with xen and I'm trying to
create my own
guest os. The OS is very simple, it prints out a message and then
exits.
Source listing below.
When I try to boot this image with xm create -c hello (hello just
points
kernel to ivanos) one of two things happen.
1)
It prints:
Using config file "hello".
Started domain IvanOS, console on port 9627
************ REMOTE CONSOLE: CTRL-] TO QUIT ********
I press return twice and it prints
************ REMOTE CONSOLE EXITED *****************
2)
it prints:
Using config file "hello".
Started domain IvanOS, console on port 9628
************ REMOTE CONSOLE: CTRL-] TO QUIT ********
************ REMOTE CONSOLE EXITED *****************
(104, 'Connection reset by peer')
Error: Error connecting to xend, is xend running?
xend is running. in both cases xend.log shows
--SNIP--
[2005-10-02 19:10:32 xend] INFO (XendRoot:112) EVENT>
xend.console.create [13,
28, 9628]
[2005-10-02 19:10:32 xend] DEBUG (blkif:155) Connecting blkif
<BlkifBackendInterface 28 0>
[2005-10-02 19:10:32 xend] INFO (XendRoot:112) EVENT>
xend.domain.create
['IvanOS', '28']
[2005-10-02 19:10:32 xend] INFO (XendRoot:112) EVENT>
xend.domain.unpause
['IvanOS', '28']
[2005-10-02 19:10:32 xend] DEBUG (XendDomain:244) XendDomain>reap>
domain died
name=IvanOS id=28
[2005-10-02 19:10:32 xend] INFO (XendDomain:564) Destroying domain:
name=IvanOS
[2005-10-02 19:10:32 xend] DEBUG (XendDomainInfo:665) Destroying
vifs for
domain 28
--END SNIP--
If someone could point out where im going wrong it would be very much
appreciated. Is there any way to get a more detailed trace of what
xen is
doing?
Best regards
Ivan Kelly
--SNIP go.S--
.section __xen_guest
.ascii
"GUEST_OS=ivanos,GUEST_VER=2.0,XEN_VER=2.0,LOADER=generic"
.byte 0
.text
.globl start
start:
cld
movl $18,%eax
movl $0,%ebx
movl $hello_len,%ecx
movl $ivanhello,%edx
int $0x82
movl $6,%eax
movl $2,%ebx
movl $0,%ecx
int $0x82
hang: jmp hang
ivanhello: .ascii "Welcome to Ivan Os. Have fun!\n"
hello_len = . - ivanhello
--END SNIP--
--SNIP Makefile--
CC := gcc
LD := ld
# Linker should relocate monitor to this address
MONITOR_BASE := 0xE0100000
# NB. '-Wcast-qual' is nasty, so I omitted it.
CFLAGS := -fno-builtin -O3 -Wall -I. -Wredundant-decls
CFLAGS += -Wstrict-prototypes -Wnested-externs -Wpointer-arith -
Winline -ansi
OBJS :=
TARGET := ivanos
default: $(TARGET)
$(TARGET): go.o $(OBJS)
$(LD) -N -Txen.lds go.o $(OBJS) -o $@.elf
objcopy -R .note -R .comment $@.elf $@
gzip -f -9 -c $@ >$@.gz
clean:
find . -type f -name '*.o' | xargs rm -f
rm -f *.o *~ core $(TARGET).elf $(TARGET).raw $(TARGET) $
(TARGET).gz
find . -type l | xargs rm -f
%.o: %.c $(HDRS) Makefile
$(CC) $(CFLAGS) -c $< -o $@
%.o: %.S $(HDRS) Makefile
$(CC) $(CFLAGS) -D__ASSEMBLY__ -c $< -o $@
--END SNIP--
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel