Features Download
From: Thorsten Glaser <tg-vpiyNrvJqjezQB+pC5nmwQ <at> public.gmane.org>
Subject: success running MirBSD (bsd.rd, i386) in Xen/HVM
Newsgroups: gmane.os.miros.general
Date: Monday 22nd October 2007 10:03:23 UTC (over 10 years ago)
Hi everyone… I just played around a little:

MirBSD#10r80 (GENERIC) #1052: Thu Aug 30 07:05:57 UTC 2007
tg-4ZVd3/[email protected]:/usr/src/distrib/generic/obj/build/GENERIC
cpu0: Intel(R) Xeon(R) CPU 5130 @ 2.00GHz ("GenuineIntel" 686-class) 2 GHz
real mem  = 66629632 (65068K)
avail mem = 49258496 (48104K)
using 838 buffers containing 3432448 bytes (3352K) of memory
mainbus0 (root)
bios0 at mainbus0: AT/286+(16) BIOS, date 06/23/99, BIOS32 rev. 0 @ 0xf9e80
apm0 at bios0: Power Management spec V1.2
apm0: AC on, battery charge unknown
apm0: flags 30102 dobusy 0 doidle 1
pcibios0 at bios0: rev 2.1 @ 0xf0000/0x0
pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfa120/128 (6 entries)
pcibios0: PCI Interrupt Router at 000:01:0 ("Intel 82371SB ISA" rev 0x00)
pcibios0: PCI bus #0 is the last bus
bios0: ROM list: 0xc0000/0x8000
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 "Intel 82441FX" rev 0x02
pcib0 at pci0 dev 1 function 0 "Intel 82371SB ISA" rev 0x00
pciide0 at pci0 dev 1 function 1 "Intel 82371SB IDE" rev 0x00: DMA, channel
0 wired to compatibility, channel 1 wired to compatibility
wd0 at pciide0 channel 0 drive 0: 
wd0: 16-sector PIO, LBA48, 32 MiB, CHS = 65/16/63, 65536 sectors
wd0(pciide0:0:0): using PIO mode 0, DMA mode 2
atapiscsi0 at pciide0 channel 1 drive 0
scsibus0 at atapiscsi0: 2 targets
scsi_inqmatch: 2/5/1 <, , >
cd0 at scsibus0 targ 0 lun 0:  SCSI0 5/cdrom
cd0(pciide0:1:0): using PIO mode 0, DMA mode 1
"Cirrus Logic CL-GD5446" rev 0x00 at pci0 dev 2 function 0 not configured
unknown vendor 0x5853 product 0x0001 (class undefined unknown subclass
0x80, rev 0x01) at pci0 dev 3 function 0 not configured
ne3 at pci0 dev 4 function 0 "Realtek 8029" rev 0x00: irq 11
ne3: address 00:16:3e:00:00:11
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard
pmsi0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pmsi0 mux 0
pcdisplay0 at isa0 port 0x3d0/16 iomem 0xb8000/32768
wsdisplay0 at pcdisplay0 mux 1: console (80x25, vt100 emulation), using
pcppi0 at isa0 port 0x61
midi0 at pcppi0: 
spkr0 at pcppi0
sysbeep0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
npx0 at isa0 port 0xf0/16: using exception 16
pccom0 at isa0 port 0x3f8/8 irq 4: ns16450, no fifo
pccom0: console
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
fd0 at fdc0 drive 0: density unknown
fd1 at fdc0 drive 1: density unknown
biomask c0c0 netmask c8c0 ttymask d8c2
rd0: fixed, 8192 blocks
pctr: 686-class user-level performance counters enabled
mtrr: Pentium Pro MTRR support
Kernelised RAIDframe activated
Searching for raid components...
wd0: no disk label
dkcsum: wd0 matches BIOS drive 0x80 (00000000)
root on rd0a
rootdev=0x1100 rrootdev=0x2f00 rawdev=0x2f02
clock: unknown CMOS layout
swapmount: no device

This is a nographic=1, serial console, bsd.rd configuration booted from
the emulated CD. The unconfigured device is XEN_PLATFORM_VENDOR_ID and
XEN_PLATFORM_DEVICE_ID, whatever this means. OpenBSD doesn’t have it in
their pcidevs file either.

Ah. “… is probed for to discover the guest end of the xenbus.”
So it’s probably possible to optimise for the HVM situation, if someone
were interested in that.

As I’m at work, I sadly can’t “waste” any more time on this, but
the mailing lists (only one success report for OpenBSD and a lot of
problems), I thought I’d better mail this out nevertheless.
Ah, yes. NTP, netcat, ssh, etc. work, but I can’t test much more. The
time is off by a second per 5 minutes or so though, of course.

So this means MirBSD works with Xen and HVM and Vanderpool/Pacifica.
Sort of, at least. (This sentence for search engines.)

I had to do some tricky network configuration stuff though:
• comment out the “brctl addif” in Debian’s
• install xen-ioemu-3.0.3-1 and (for tunctl) uml-utilities
• create the tap0 interface manually (tunctl -t tap0)
• after starting the VM, adding tap0 and tap1 to the bridge

No idea how many of these were actually needed, though. Testing with
SDL graphics and reading /var/log/xen/qemu-dm.$$.log helped some, as
did using a hand-made CD image with “set tty com0” in boot.cfg ☺
Booting is slow, wait a while for the output. “xm create -c” doesn’t
always work, use “xm create” followed by “xm console” some secs

I believe no one can invent an algorithm. One just happens to hit upon it
when God enlightens him. Or only God invents algorithms, we merely copy
If you don't believe in God, just consider God as Nature if you won't deny
existence.		-- Coywolf Qi Hunt
CD: 3ms