Using Haiku in a Xen HVM

Forum thread started by maestro371 on Sun, 2006-12-10 04:26

I'm curious to know if anyone has successfully booted Haiku in Xen using full virtualization (HVM). I see an older conversation talking about porting Haiku to use paravirtualization; that would be cool, but it's not what I'm concerned with right now.

I attempted to use full virtualization in Xen using the QEMU image, and was presented with some hopeful information right before a kernel panic. For anyone interested here's the output:

xen:/etc/xen# xm create -c /etc/xen/haiku.hvm

Using config file "/etc/xen/haiku.hvm".
Started domain Haiku
APM version 1.2 available, flags 3.
smp_probe: entry base 0x9fc00, limit 0xa0000
smp_probe: entry base 0xf0000, limit 0x100000
VESA version = 200
oem string: VGABIOS Cirrus extension
Welcome to the Haiku boot loader!
legacy base address 1f0
ATA device, master
number of drives: 1
add_partitions_for(0x001041cc, mountFS = no)
add_partitions_for(fd = 0, mountFS = no)
Partition::Scan()
check for partitioning_system: Amiga Partition Map
check for partitioning_system: Intel Partition Map
intel: pm_identify_partition(1, 1065628: 0, 104857600, 512)
Partition::SetTo(): active: 6f
intel: _ParsePrimary(): partition 0: bad location, ignoring
Partition::SetTo(): active: 74
Partition::SetTo(): active: 0
Partition::SetTo(): active: 0
check for partitioning_system: Intel Extended Partition
check for partitioning_system: Apple Partition Map
boot partition offset: 0
check for file_system: BFS Filesystem
load kernel...
unhandled pheader type 0x6
unhandled pheader type 0x3
kernel entry at 80027e44
Welcome to kernel debugger output!
vm_mark_page_range_inuse: page 0x9f in non-free state 7!
apm_init()
code32: 0xf000, 0x9bc5, length 0xfff0
code16: 0xf000, length 0xfff0
data: 0xf000, length 0xfff0
PANIC: page fault, but interrupts were disabled. Touching address 0x0000005c from eip 0x8002bc6b

Welcome to Kernel Debugging Land...
Running on CPU 0
kdebug>

Comments

Using Haiku in a Xen HVM

You'll want to file a bug report at http://haiku-os.org/trac if you want one of the devs to look into it.

Also, it would be helpful if you could run a stack crawl (sc or bt - i can't remember) from the kdl prompt when posting the output :)

Update: Also, I'll move this to the User Support Forum if that's all right.

Using Haiku in a Xen HVM

umccullough wrote:
You'll want to file a bug report at http://haiku-os.org/trac if you want one of the devs to look into it.

Also, it would be helpful if you could run a stack crawl (sc or bt - i can't remember) from the kdl prompt when posting the output :)

Will do. I'm more curious to know if anyone has had any success yet - I haven't seen anyone imply that Haiku should work with Xen HVM yet, but it would be cool. I'm running Win2k3 on Xen/Linux and I imagine Haiku could be tweaked (maybe without code changes) to work as well .

Using Haiku in a Xen HVM

That sounds suspiciously like http://haiku-os.org/trac/ticket/748 I previously had problems with the kqemu module, and while I know it doesn't do the same thing the problem could be related.[/url]

BeOS 5 Pro works!

I booted a Xen DomU off of a BeOS 5 disk image that I had previously set up according to this procedure. It Just Worked!

This is with the 3.4.0 Xen kernel and the Git xen-tip/next Linux kernel - the bleeding edge development. I needed that to support my AMCC 3ware 9690SA RAID, but the Linux source that comes with the 3.4.0 release should work for most people.

Here is my DomU config. I'm copying the install from the image into a physical partition, for faster performance. You will want to adjust specs for your own setup:

import os, re
arch = os.uname()[4]
if re.search('64', arch):
arch_libdir = 'lib64'
else:
arch_libdir = 'lib'

kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm'
memory = 512

name = "BeOS"

pae=0
acpi=1
apic=1

vif = [ 'type=ioemu, bridge=xenbr0, mac=00:16:3e:0A:00:11' ]

disk = [ 'file:/home/DomU/BeBop.img,hda,w', 'phy:/dev/sda12,hdb,w' ]

device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'

boot="dc"
sdl=1
vnc=0
vncunused=1
vncpasswd='..luis'

stdvga=1
serial='pty'
monitor=1

Note that BeOS 5 Pro will hang if you give it more than 750 MB of physical memory; 512 should be plenty for it.