FreeBSD HOWTO This assumes that you are running Xen 2.0 or the unstable as of a week ago. Running the current image: 1) download kernel-5.2.1.bz2, mdroot.gz, freebsd.sample, and xenargs.sample 2) uncompress the kernel and mdroot (the mdroot requires 1.4GB uncompressed) 3) export the mdroot as a loopback device: > /sbin/losetup /dev/loopa /var/mdroot (This may not work if you have an older losetup - FC2 is known to work) 4) localize the freebsd.sample to your environment 5) run the xenargs.sample script 6) The root password is sundance -- If you have problems you can boot into single user mode (look at the options in freebsd.sample) and edit /etc/rc.conf to reflect your environment Building the current image: 1) on a machine running FreeBSD 5.x download sys-5.2.1.tbz and i386-xeno_<latest>.tbz kmacy@freebird tar xjf sys-5.2.1.tbz kmacy@freebird cd sys-5.2.1 kmacy@freebird tar xjf ../i386-xeno_041030.tbz kmacy@freebird ln -s i386-xeno_041030 i386-xeno kmacy@freebird cd i386-xeno/ # check out sources kmacy@freebird bk -r get kmacy@freebird cd conf/ # create compile directory kmacy@freebird config XENCONF Kernel build directory is ../compile/XENCONF Don't forget to do a ``make depend'' kmacy@freebird cd ../../include/ # link in xen interface headers kmacy@freebird ln -s /t/niners/users/xen/xen-2.0.bk/xen/include/hypervisor-ifs kmacy@freebird cd - # work around the fact the fact that xen assumes that object files are generated # in the same directory as the source, but they aren't on FreeBSD kmacy@freebird foreach file (../../include/hypervisor-ifs/*) foreach? ln -s $file foreach? end # generate dependencies file kmacy@freebird make kernel-depend # build kernel kmacy@freebird make -j4 kernel <...> linking kernel.debug text data bss dec hex filename 2057881 135964 179472 2373317 2436c5 kernel.debug objcopy --strip-debug kernel.debug kernel running gdbserver: - as root > ./gdbserver <hostname>:<port> --attach <domid> - from host on the same network > gdb kernel.debug (gdb) target remote <hostname>:<port>