mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
285 lines
11 KiB
Python
285 lines
11 KiB
Python
# -*- mode: python; -*-
|
|
#============================================================================
|
|
# Python configuration setup for 'xm create'.
|
|
# This script sets the parameters used when a domain is created using 'xm create'.
|
|
# You use a separate script for each domain you want to create, or
|
|
# you can set the parameters for the domain on the xm command line.
|
|
#============================================================================
|
|
|
|
import os, re
|
|
arch = os.uname()[4]
|
|
if re.search('64', arch):
|
|
arch_libdir = 'lib64'
|
|
else:
|
|
arch_libdir = 'lib'
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Kernel image file.
|
|
kernel = "/usr/lib/xen/boot/hvmloader"
|
|
|
|
# The domain build function. HVM domain uses 'hvm'.
|
|
builder='hvm'
|
|
|
|
# Initial memory allocation (in megabytes) for the new domain.
|
|
#
|
|
# WARNING: Creating a domain with insufficient memory may cause out of
|
|
# memory errors. The domain needs enough memory to boot kernel
|
|
# and modules. Allocating less than 32MBs is not recommended.
|
|
memory = 128
|
|
|
|
# Shadow pagetable memory for the domain, in MB.
|
|
# If not explicictly set, xend will pick an appropriate value.
|
|
# Should be at least 2KB per MB of domain memory, plus a few MB per vcpu.
|
|
# shadow_memory = 8
|
|
|
|
# A name for your domain. All domains must have different names.
|
|
name = "ExampleHVMDomain"
|
|
|
|
# 128-bit UUID for the domain. The default behavior is to generate a new UUID
|
|
# on each call to 'xm create'.
|
|
#uuid = "06ed00fe-1162-4fc4-b5d8-11993ee4a8b9"
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# The number of cpus guest platform has, default=1
|
|
#vcpus=1
|
|
|
|
# Enable/disable HVM guest PAE, default=1 (enabled)
|
|
#pae=1
|
|
|
|
# Enable/disable HVM guest ACPI, default=1 (enabled)
|
|
#acpi=1
|
|
|
|
# Enable/disable HVM APIC mode, default=1 (enabled)
|
|
# Note that this option is ignored if vcpus > 1
|
|
#apic=1
|
|
|
|
# List of which CPUS this domain is allowed to use, default Xen picks
|
|
#cpus = "" # leave to Xen to pick
|
|
#cpus = "0" # all vcpus run on CPU0
|
|
#cpus = "0-3,5,^1" # all vcpus run on cpus 0,2,3,5
|
|
#cpus = ["2", "3"] # VCPU0 runs on CPU2, VCPU1 runs on CPU3
|
|
|
|
# Optionally define mac and/or bridge for the network interfaces.
|
|
# Random MACs are assigned if not given.
|
|
#vif = [ 'type=ioemu, mac=00:16:3e:00:00:11, bridge=xenbr0, model=ne2k_pci' ]
|
|
# type=ioemu specify the NIC is an ioemu device not netfront
|
|
vif = [ 'type=ioemu, bridge=xenbr0' ]
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Define the disk devices you want the domain to have access to, and
|
|
# what you want them accessible as.
|
|
# Each disk entry is of the form phy:UNAME,DEV,MODE
|
|
# where UNAME is the device, DEV is the device name the domain will see,
|
|
# and MODE is r for read-only, w for read-write.
|
|
|
|
#disk = [ 'phy:hda1,hda1,r' ]
|
|
disk = [ 'file:/var/images/min-el3-i386.img,hda,w', ',hdc:cdrom,r' ]
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Configure the behaviour when a domain exits. There are three 'reasons'
|
|
# for a domain to stop: poweroff, reboot, and crash. For each of these you
|
|
# may specify:
|
|
#
|
|
# "destroy", meaning that the domain is cleaned up as normal;
|
|
# "restart", meaning that a new domain is started in place of the old
|
|
# one;
|
|
# "preserve", meaning that no clean-up is done until the domain is
|
|
# manually destroyed (using xm destroy, for example); or
|
|
# "rename-restart", meaning that the old domain is not cleaned up, but is
|
|
# renamed and a new domain started in its place.
|
|
#
|
|
# In the event a domain stops due to a crash, you have the additional options:
|
|
#
|
|
# "coredump-destroy", meaning dump the crashed domain's core and then destroy;
|
|
# "coredump-restart', meaning dump the crashed domain's core and the restart.
|
|
#
|
|
# The default is
|
|
#
|
|
# on_poweroff = 'destroy'
|
|
# on_reboot = 'restart'
|
|
# on_crash = 'restart'
|
|
#
|
|
# For backwards compatibility we also support the deprecated option restart
|
|
#
|
|
# restart = 'onreboot' means on_poweroff = 'destroy'
|
|
# on_reboot = 'restart'
|
|
# on_crash = 'destroy'
|
|
#
|
|
# restart = 'always' means on_poweroff = 'restart'
|
|
# on_reboot = 'restart'
|
|
# on_crash = 'restart'
|
|
#
|
|
# restart = 'never' means on_poweroff = 'destroy'
|
|
# on_reboot = 'destroy'
|
|
# on_crash = 'destroy'
|
|
|
|
#on_poweroff = 'destroy'
|
|
#on_reboot = 'restart'
|
|
#on_crash = 'restart'
|
|
|
|
#============================================================================
|
|
|
|
# New stuff
|
|
device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d)
|
|
# default: hard disk, cd-rom, floppy
|
|
#boot="cda"
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# write to temporary files instead of disk image files
|
|
#snapshot=1
|
|
|
|
#----------------------------------------------------------------------------
|
|
# enable SDL library for graphics, default = 0
|
|
sdl=0
|
|
|
|
#----------------------------------------------------------------------------
|
|
# enable OpenGL for texture rendering inside the SDL window, default = 1
|
|
# valid only if sdl is enabled.
|
|
opengl=1
|
|
|
|
#----------------------------------------------------------------------------
|
|
# enable VNC library for graphics, default = 1
|
|
vnc=1
|
|
|
|
#----------------------------------------------------------------------------
|
|
# address that should be listened on for the VNC server if vnc is set.
|
|
# default is to use 'vnc-listen' setting from /etc/xen/xend-config.sxp
|
|
#vnclisten="127.0.0.1"
|
|
|
|
#----------------------------------------------------------------------------
|
|
# set VNC display number, default = domid
|
|
#vncdisplay=1
|
|
|
|
#----------------------------------------------------------------------------
|
|
# try to find an unused port for the VNC server, default = 1
|
|
#vncunused=1
|
|
|
|
#----------------------------------------------------------------------------
|
|
# enable spawning vncviewer for domain's console
|
|
# (only valid when vnc=1), default = 0
|
|
#vncconsole=0
|
|
|
|
#----------------------------------------------------------------------------
|
|
# set password for domain's VNC console
|
|
# default is depents on vncpasswd in xend-config.sxp
|
|
vncpasswd=''
|
|
|
|
#----------------------------------------------------------------------------
|
|
# no graphics, use serial port
|
|
#nographic=0
|
|
|
|
#----------------------------------------------------------------------------
|
|
# enable stdvga, default = 0 (use cirrus logic device model)
|
|
stdvga=0
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# serial port re-direct to pty deivce, /dev/pts/n
|
|
# then xm console or minicom can connect
|
|
serial='pty'
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Qemu Monitor, default is disable
|
|
# Use ctrl-alt-2 to connect
|
|
#monitor=1
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# enable sound card support, [sb16|es1370|all|..,..], default none
|
|
#soundhw='sb16'
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# set the real time clock to local time [default=0 i.e. set to utc]
|
|
#localtime=1
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# set the real time clock offset in seconds [default=0 i.e. same as dom0]
|
|
#rtc_timeoffset=3600
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# start in full screen
|
|
#full-screen=1
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Enable USB support (specific devices specified at runtime through the
|
|
# monitor window)
|
|
#usb=1
|
|
|
|
# Enable USB mouse support (only enable one of the following, `mouse' for
|
|
# PS/2 protocol relative mouse, `tablet' for
|
|
# absolute mouse)
|
|
#usbdevice='mouse'
|
|
#usbdevice='tablet'
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Set keyboard layout, default is en-us keyboard.
|
|
#keymap='ja'
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Configure guest CPUID responses:
|
|
#
|
|
#cpuid=[ '1:ecx=xxxxxxxxxxx00xxxxxxxxxxxxxxxxxxx,
|
|
# eax=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' ]
|
|
# - Unset the SSE4 features (CPUID.1[ECX][20-19])
|
|
# - Default behaviour for all other bits in ECX And EAX registers.
|
|
#
|
|
# Each successive character represent a lesser-significant bit:
|
|
# '1' -> force the corresponding bit to 1
|
|
# '0' -> force to 0
|
|
# 'x' -> Get a safe value (pass through and mask with the default policy)
|
|
# 'k' -> pass through the host bit value
|
|
# 's' -> as 'k' but preserve across save/restore and migration
|
|
#
|
|
# Expose to the guest multi-core cpu instead of multiple processors
|
|
# Example for intel, expose a 8-core processor :
|
|
#cpuid=['1:edx=xxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxx,
|
|
# ebx=xxxxxxxx00010000xxxxxxxxxxxxxxxx',
|
|
# '4,0:eax=001111xxxxxxxxxxxxxxxxxxxxxxxxxx']
|
|
# - CPUID.1[EDX][HT] : Enable HT
|
|
# - CPUID.1[EBX] : Number of vcpus * 2
|
|
# - CPUID.4,0[EAX] : Number of vcpus * 2 - 1
|
|
#vcpus=8
|
|
#
|
|
# Example for amd, expose a 5-core processor :
|
|
# cpuid = ['1:ebx=xxxxxxxx00000001xxxxxxxxxxxxxxxx,
|
|
# edx=xxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
# '0x80000008:ecx=xxxxxxxxxxxxxxxx0000xxxx00001010']
|
|
# - CPUID.1[EBX] : (Thread * Cores ) per processors
|
|
# - CPUID.1[EDX][HT] : Enable HT
|
|
# - CPUID.0x80000008[ECX] : Number of vcpus * 2
|
|
#vcpus=5
|
|
#
|
|
# Downgrade the cpuid to make a better compatibility for migration :
|
|
# Look like a generic 686 :
|
|
# cpuid = [ '0:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0',
|
|
# '1:eax=0x06b1,
|
|
# ecx=xxxxxxxxxx0000xx00xxx0000000xx0,
|
|
# edx=xx00000xxxxxxx0xxxxxxxxx0xxxxxx',
|
|
# '4:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0',
|
|
# '0x80000000:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0']
|
|
# with the highest leaf
|
|
# - CPUID.0[EAX] : Set the highest leaf
|
|
# - CPUID.1[EAX] : 686
|
|
# - CPUID.1[ECX] : Mask some features
|
|
# - CPUID.1[EDX] : Mask some features
|
|
# - CPUID.4 : Reply like the highest leaf, in our case CPUID.3
|
|
# - CPUID.0x80000000 : No extension we are on a Pentium III, reply like the
|
|
# highest leaf (CPUID.3).
|
|
#
|
|
# Configure host CPUID consistency checks, which must be satisfied for this
|
|
# VM to be allowed to run on this host's processor type:
|
|
#cpuid_check=[ '1:ecx=xxxxxxxxxxxxxxxxxxxxxxxxxx1xxxxx' ]
|
|
# - Host must have VMX feature flag set
|
|
#
|
|
# The format is similar to the above for 'cpuid':
|
|
# '1' -> the bit must be '1'
|
|
# '0' -> the bit must be '0'
|
|
# 'x' -> we don't care (do not check)
|
|
# 's' -> the bit must be the same as on the host that started this VM
|