# -*- 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. #============================================================================ #---------------------------------------------------------------------------- # Kernel image file. kernel = "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 = 3072 # 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 # Whether to transparently share this domain's memory with other domains. # default = 0 # memory_sharing = 0 # A name for your domain. All domains must have different names. name = "winxp" # 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=4 # 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 # Enable/disable extended power management support within HVM guest, i.e., beyond # S3, S4, S5 within guest like exposing battery meter. # 0 (default option, extended power management support disabled) # 1 (pass-through mode; uses pass-through as needed; efficient but limited in scope) # 2 (non pass-through mode; extended scope, likely to work on all applicable environment # but comparitively less efficient than pass-through mode) # xen_extended_power_mgmt=0 # 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 = ["1", "2", "3", "4"] # 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' ] #disk = [ 'file:/home/xen_guest/winxp.img,hda,w', 'file:/root/winxp.iso,hdc:cdrom,r' ] disk = [ 'file:/home/xen_guest/winxp.img,hda,w', 'file:/root/driver.iso,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' #============================================================================ # Device Model to be used device_model = 'qemu-dm' #----------------------------------------------------------------------------- # boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d) # default: hard disk, cd-rom, floppy boot="cd" #----------------------------------------------------------------------------- # 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 # auxbin.xen_configdir() + /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 #---------------------------------------------------------------------------- # 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' #---------------------------------------------------------------------------- # tsc_mode : TSC mode (0=default, 1=native TSC, 2=never emulate, 3=pvrdtscp) # emulate TSC provides synced TSC for all vcpus, but lose perfomrance. # native TSC leverages hardware's TSC(no perf loss), but vcpu's TSC may lose # sync due to hardware's unreliable/unsynced TSC between CPUs. # default intelligently uses native TSC on machines where it is safe, but # switches to emulated if necessary after save/restore/migration # pvrdtscp is for intelligent apps that use special Xen-only paravirtualized # cpuid instructions to obtain offset/scaling/migration info and maximize # performance within pools of machines that support the rdtscp instruction tsc_mode=0 #----------------------------------------------------------------------------- # 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' #----------------------------------------------------------------------------- # Enable/disable xen platform PCI device, default=1 (enabled) #xen_platform_pci=1 #----------------------------------------------------------------------------- # Configure guest CPUID responses: # #cpuid=[ '1:ecx=xxxxxxxxxxx00xxxxxxxxxxxxxxxxxxx, # eax=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' ] # - 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=xxxxxxxx00001010xxxxxxxxxxxxxxxx, # edx=xxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxx', # '0x80000001:ecx=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1x', # '0x80000008:ecx=xxxxxxxxxxxxxxxxxxxxxxxxxx001001'] # - CPUID.1[EBX] : Threads per Core * Cores per Socket (2 * #vcpus) # - CPUID.1[EDX][HT] : Enable HT # - CPUID.0x80000001[CmpLegacy] : Use legacy method # - CPUID.0x80000008[ECX] : #vcpus * 2 - 1 #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=xxxxxxxxxxx0000xx00xxx0000000xx0, # edx=xxx00000xxxxxxx0xxxxxxxxx0xxxxxx', # '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 #----------------------------------------------------------------------------- # Configure passthrough PCI{,-X,e} devices: # # pci=[ '[SSSS:]BB:DD.F[,option1[,option2[...]]]', ... ] # # [SSSS]:BB:DD.F "bus segment:bus:device.function"(1) of the device to # be assigned, bus segment is optional. All fields are # in hexadecimal and no field should be longer than that # as shown in the pattern. Successful assignment may need # certain hardware support and additional configurations # (e.g. VT-d, see docs/misc/vtd.txt for more details). # # (1) bus segment is sometimes also referred to as the PCI "domain", # not to be confused with Xen domain. # # # optionN per-device options in "key=val" format. Current # available options are: # - msitranslate=0|1 # per-device overriden of pci_msitranslate, see below # - power_mgmt=0|1 # per-device overriden of pci_power_mgmt, see below # #pci=[ '07:00.0', '07:00.1' ] # MSI-INTx translation for MSI capable devices: # # If it's set, Xen will enable MSI for the device that supports it even # if the guest don't use MSI. In the case, an IO-APIC type interrupt will # be injected to the guest every time a corresponding MSI message is # received. # If the guest enables MSI or MSI-X, the translation is automatically # turned off. # #pci_msitranslate=1 # PCI Power Management: # # If it's set, the guest OS will be able to program D0-D3hot states of the # PCI device for the purpose of low power consumption. # #pci_power_mgmt=0 # Enable graphics passthrough: # # If it's set, and specify grapchis device BDF in pci passthrough option, # like pci=['xx:xx.x'], it enables graphics passthrough, default=0 (disabled) gfx_passthru=1 pci=['03:00.0'] #pci=['00:19.0'] #----------------------------------------------------------------------------- # Configure PVSCSI devices: # #vscsi=[ 'PDEV, VDEV' ] # # PDEV gives physical SCSI device to be attached to specified guest # domain by one of the following identifier format. # - XX:XX:XX:XX (4-tuples with decimal notation which shows # "host:channel:target:lun") # - /dev/sdxx or sdx # - /dev/stxx or stx # - /dev/sgxx or sgx # - result of 'scsi_id -gu -s'. # ex. # scsi_id -gu -s /block/sdb # 36000b5d0006a0000006a0257004c0000 # # VDEV gives virtual SCSI device by 4-tuples (XX:XX:XX:XX) as # which the specified guest domain recognize. # #vscsi = [ '/dev/sdx, 0:0:0:0' ]