FreeBSD/Xen DOMU w/PAE support

Becky Hester becky at 3tera.com
Fri Sep 21 11:17:26 PDT 2007


I am currently trying to get FreeBSD 7-CURRENT running as DomU under
CentOS 4.4 and XEN 3.0.4.  However, the kernel provided at
http://www.fsmware.com/xenofreebsd/7.0/download/ does not include PAE
support.  I have a few questions related to building the kernel from
sources:

I currently have FreeBSD 7-CURRENT installed on native hardware -
FreeBSD 7.0-CURRENT-200708 - and was able to successfully rebuild the
kernel w/o xen support and w/ PAE support resulting in FreeBSD being
able to see all 8G of memory on the machine.

I downloaded the sources from www.fsmware.com (fbsd_xen3.tgz) and tried
to build the kernel with the following commands:
cd /usr/src/sys/i386-xen/conf
config XENCONF
cd ../compile/XENCONF
make cleandepend
make depend 

The 'make depend' command fails  (see below for output of make depend as
well as the contents of the kernel configuration file.

Any help/suggestions would be appreciated.


Here is the last part of the output from 'make depend'

===> xl (obj)
/usr/src/sys.both/i386-xen/compile/XENCONF/modules/usr/src/sys.both/modu
les/xl created for /usr/src/sys.both/modules/xl
===> zlib (obj)
/usr/src/sys.both/i386-xen/compile/XENCONF/modules/usr/src/sys.both/modu
les/zlib created for /usr/src/sys.both/modules/zlib
cd ../../../modules;
MAKEOBJDIRPREFIX=/usr/src/sys.both/i386-xen/compile/XENCONF/modules
KMODDIR=/boot/kernel DEBUG_FLAGS="-g" MACHINE=i386-xen
KERNBUILDDIR="/usr/src/sys.both/i386-xen/compile/XENCONF" make  depend
===> 3dfx (depend)
@ -> /usr/src/sys.both
machine -> /usr/src/sys.both/i386-xen/include
i386 -> /usr/src/sys.both/i386/include
awk -f @/tools/makeobjops.awk @/kern/bus_if.m -h
awk -f @/tools/makeobjops.awk @/dev/pci/pci_if.m -h
awk -f @/tools/makeobjops.awk @/kern/device_if.m -h
rm -f .depend
mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -I-
-DHAVE_KERNEL_OPTION_HEADERS -I. -I@ -I@/contrib/altq
-I/usr/src/sys.both/i386-xen/compile/XENCONF
/usr/src/sys.both/modules/3dfx/../../dev/tdfx/tdfx_pci.c
cc1: note: obsolete option -I- used, please use -iquote instead
===> 3dfx_linux (depend)
@ -> /usr/src/sys.both
machine -> /usr/src/sys.both/i386-xen/include
i386 -> /usr/src/sys.both/i386/include
rm -f .depend
mkdep -f .depend -a   -nostdinc -D_KERNEL -DKLD_MODULE -I-
-DHAVE_KERNEL_OPTION_HEADERS -I. -I@ -I@/contrib/altq
-I/usr/src/sys.both/i386-xen/compile/XENCONF
/usr/src/sys.both/modules/3dfx_linux/../../dev/tdfx/tdfx_linux.c
cc1: note: obsolete option -I- used, please use -iquote instead
In file included from
/usr/src/sys.both/modules/3dfx_linux/../../dev/tdfx/tdfx_linux.c:37:
@/dev/tdfx/tdfx_linux.h:35:36: error: machine/../linux/linux.h: No such
file or directory
@/dev/tdfx/tdfx_linux.h:36:42: error: machine/../linux/linux_proto.h: No
such file or directory
mkdep: compile failed
*** Error code 1

Stop in /usr/src/sys.both/modules/3dfx_linux.
*** Error code 1

Stop in /usr/src/sys.both/modules.
*** Error code 1

Here are the contents of my config file: (ultimately I would like to
build it with SMP & PAE support)

#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
#
http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-c
onfig.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ../../conf/NOTES and NOTES files.
# If you are in doubt as to the purpose or necessity of a line, check
first
# in NOTES.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.394.2.3 2004/01/26 19:42:11
nectar Exp $

machine         i386-xen
cpu             I686_CPU
ident           XEN

#To statically compile in device wiring instead of /boot/device.hints
#hints          "GENERIC.hints"         #Default places to look for
devices.

makeoptions     DEBUG=-g                #Build kernel with gdb(1) debug
symbols

options         SCHED_4BSD              #4BSD scheduler
options         INET                    #InterNETworking
options         INET6                   #IPv6 communications protocols
options         FFS                     #Berkeley Fast Filesystem
options         SOFTUPDATES             #Enable FFS soft updates support
options         UFS_ACL                 #Support for access control
lists
options         UFS_DIRHASH             #Improve performance on big
directories
options         MD_ROOT                 #MD is a potential root device
options         NFSCLIENT               #Network Filesystem Client
options         NFSSERVER               #Network Filesystem Server
# options       NFS_ROOT                #NFS usable as /, requires
NFSCLIENT
#options        MSDOSFS                 #MSDOS Filesystem
#options        CD9660                  #ISO 9660 Filesystem
options         PROCFS                  #Process filesystem (requires
PSEUDOFS)
options         PSEUDOFS                #Pseudo-filesystem framework
options         COMPAT_43               #Compatible with BSD 4.3 [KEEP
THIS!]
options         COMPAT_FREEBSD4         #Compatible with FreeBSD4
options         SCSI_DELAY=15000        #Delay (in ms) before probing
SCSI
options         KTRACE                  #ktrace(1) support
options         SYSVSHM                 #SYSV-style shared memory
options         SYSVMSG                 #SYSV-style message queues
options         SYSVSEM                 #SYSV-style semaphores
options         _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time
extensions
options         KBD_INSTALL_CDEV        # install a CDEV entry in /dev
options         CPU_DISABLE_SSE         # don't turn on SSE framework
with Xen
#options        PFIL_HOOKS              # pfil(9) framework

# Debugging for use in -current
options         KDB                     #Enable the kernel debugger
options         INVARIANTS              #Enable calls of extra sanity
checking
options         INVARIANT_SUPPORT       #Extra sanity checks of internal
structures, required by INVARIANTS
#options        WITNESS                 #Enable checks to detect
deadlocks and cycles
#options        WITNESS_SKIPSPIN        #Don't run witness on spinlocks
for speed

# To make an SMP kernel, the next two are needed
#options        SMP             # Symmetric MultiProcessor Kernel
device          apic            # I/O APIC

# Bus support
device          pci

# SCSI peripherals
device          scbus           # SCSI bus (required for SCSI)
#device         ch              # SCSI media changers
device          da              # Direct Access (disks)
#device         sa              # Sequential Access (tape etc)
#device         cd              # CD
device          pass            # Passthrough device (direct SCSI
access)
#device         ses             # SCSI Environmental Services (and
SAF-TE)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device          atkbdc          # AT keyboard controller
device          atkbd           # AT keyboard
device          psm             # PS/2 mouse

device          vga     # VGA video card driver

#device         splash          # Splash screen and screen saver support

# syscons is the default console driver, resembling an SCO console
device          sc

# Enable this for the pcvt (VT220 compatible) console driver
#device         vt
#options        XSERVER                 # support for X server on a vt
console
#options        FAT_CURSOR              # start with block cursor

#device         agp             # support several AGP chipsets



#defaults
# Floating point support - do not disable.
device          npx

device          isa

device          mem
device          io

#######################################



# Serial (COM) ports
#device         sio             # 8250, 16[45]50 based serial ports

# Parallel port
#device         ppc
#device         ppbus           # Parallel port bus (required)
#device         lpt             # Printer
#device         plip            # TCP/IP over parallel
#device         ppi             # Parallel port interface device
#device         vpo             # Requires scbus and da

# If you've got a "dumb" serial or parallel PCI card that is
# supported by the puc(4) glue driver, uncomment the following
# line to enable it (connects to the sio and/or ppc drivers):
#device         puc


# Pseudo devices - the number indicates how many units to allocate.
device          random          # Entropy device
device          loop            # Network loopback
device          ether           # Ethernet support
device          tun             # Packet tunnel.
device          pty             # Pseudo-ttys (telnet etc)
device          md              # Memory "disks"
device          gif             # IPv6 and IPv4 tunneling
device          faith           # IPv6-to-IPv4 relaying (translation)

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
device          bpf             # Berkeley packet filter

options         XEN
options         XEN_PHYSDEV_ACCESS
options         XEN_PRIVILEGED_GUEST
options         MCLSHIFT=12     # this has to be enabled for Xen as we
can only have one cluster per page
options         MSIZE=256
options         DIAGNOSTIC
options         MAXMEM=(256*1024)
#options                NOXENDEBUG=1            # Turn off Debugging
printfs
options         DDB

# Our stuff for testing
device          em              # Intel PRO/1000 adapter Gigabit
Ethernet Card
device          if_bridge       # Bridging
options         XEN_NETDEV_BACKEND
#options        XEN_BLKDEV_BACKEND
options         XEN_PCIDEV_FRONTEND




More information about the freebsd-current mailing list